Import PDFs into Notion as Clean Markdown
Notion can import a PDF — but it dumps it as a single embedded preview tile. The text inside isn't editable, isn't part of Notion's search index, and can't be linked to from anywhere else. Convert to Markdown first and the same content becomes native Notion blocks: headings, lists, tables, code, all editable inline. Here's the complete workflow.
Notion's native PDF import — what's wrong with it
If you upload a PDF to a Notion page, it appears as a viewer tile. You can scroll through it inside the page, but:
- The text inside the PDF isn't searchable through Notion's search
- You can't link from elsewhere to a specific section of the PDF
- You can't edit the content without re-uploading the entire file
- Database properties don't index PDF content
- The PDF tile is essentially a bookmark to a stored file
For PDFs you only need to read once or twice, the embed is fine. For anything you'll reference repeatedly, search across, or treat as part of your team's knowledge base, the embed is a dead end.
Convert first, then import
Step 1: convert the PDF to Markdown
Drop the PDF into our PDF to Markdown for Notion converter. Download the resulting .md file or copy the text.
Step 2: paste or import into Notion
Two ways:
- Paste directly: open the target Notion page, paste the Markdown into the body. Notion auto-converts every Markdown construct into native blocks: headings, lists, code, tables.
- File import: in any Notion page, click "..." menu > Import > Markdown & CSV > select your
.mdfile. Same result, useful when the Markdown is too long to comfortably paste.
Either way, the output is editable Notion blocks, not an embedded preview. Each heading is its own block. Each list item is its own block. Each table cell is editable.
Preserving blocks and toggles
Notion's block model maps cleanly to Markdown for the most part:
#/##/###→ Heading 1 / 2 / 3 blocks-/1.→ Bulleted / numbered list blocks>→ Quote block- Fenced code → Code block (with detected language for syntax highlighting)
- Pipe tables → Native Notion table blocks
**bold**/*italic*→ inline formatting- Links → linked text
Converting headings to toggle headings
Notion has "toggle headings" — collapsible sections, very useful for long documents. Markdown doesn't have a syntax for them, but after import you can right-click any heading block in Notion and choose "Turn into" → "Toggle heading". For long converted documents, bulk-toggling chapter-level headings makes the page much more navigable.
Callouts and admonitions
Notion's callout block (the colored boxes with icons) doesn't have a direct Markdown equivalent. After import, convert any blockquote that should be a callout: select the quote block, type /callout, choose icon and color. Best for warnings, notes, and tips.
Database integration patterns
The real power: combining converted Markdown with Notion databases. Pattern:
- Create a Notion database (e.g., "Sources" or "Knowledge Base")
- For each PDF, create one row in the database
- Convert the PDF to Markdown, paste into the row's page body
- Fill in database properties: type (Article / Spec / Report), date, author, tags, status
- Add cross-page links from your team wiki, projects, etc.
The result: a fully searchable, filterable knowledge library where every page is editable Markdown content rather than an embedded PDF preview. Notion's database views (gallery, board, table) become a real document library — search across all bodies, filter by metadata, link from anywhere.
Bulk import workflow
For migrating a folder of legacy PDFs:
- Batch-convert with our API (see batch convert 100+ PDFs to Markdown)
- Save the converted
.mdfiles to a folder - In Notion, create your target database
- Import each
.mdfile as a new database entry (Notion's import accepts.mdfor database creation) - Bulk-edit properties to add metadata
For very large migrations (1000+ documents), Notion's API combined with their import endpoint can automate the database row creation entirely. The bottleneck is usually metadata enrichment — bring in everything from PDF metadata first, then enrich manually as needed.
What about images and figures?
Our converter extracts images from PDFs and saves them as separate files alongside the Markdown. When you paste the Markdown into Notion, the image links resolve as broken (relative paths don't work in Notion). Two options:
- Upload images manually: drop each image into the Notion page where you want it; faster than it sounds for documents with few images
- Host images externally: upload the image folder to S3 / Cloudflare R2 / GitHub, replace relative links with absolute URLs in the Markdown before pasting
For text-only documents (specs, contracts, articles), this isn't an issue. For figure-heavy content (slides, illustrated reports), the image workflow adds 5-10 minutes per document.
Why this beats Notion AI's PDF chat
Notion AI now offers chat-with-PDF for embedded files — useful for quick questions, but limited to that one PDF inside that one page. Converting to Markdown gives you the same content as native Notion, indexable across your entire workspace, query-able by Notion AI in any context, and linkable from anywhere.
For one-shot questions about a single PDF, Notion AI on the embed is fine. For everything else (knowledge bases, repeated reference, team-wide documentation), converted Markdown is the right pattern. See our companion guide on PDF to Markdown for Obsidian for a similar workflow in a different tool.