PDF to Markdown
Drop a PDF here, paste, or click to browse
Processed on your device — nothing is uploaded. Verify in your network tab.
Drop a PDF and get Markdown back — not a flat wall of text, but structured Markdown with headings, lists, and paragraphs reconstructed as faithfully as the source allows. It is built for the job most people converting PDFs now have: getting a document into a shape an LLM can actually use, whether that is pasting context into a chat, chunking files for a retrieval pipeline, or keeping clean source notes in a Markdown editor.
The conversion runs entirely inside your browser tab. Your PDF is opened in a Web Worker on your own machine, parsed there, and never sent to a server. You can verify that yourself: open the network tab before you convert and watch that no upload request fires. That is the whole point for confidential material — internal reports, contracts, research under NDA, financials — the kind of document you cannot legally or comfortably paste into a random web uploader still converts here, because it never leaves your device.
Structure reconstruction is best-effort and we are honest about where the seams are. Clean, single-column documents come out looking like hand-written Markdown; dense multi-column layouts and complex tables are approximated rather than perfectly preserved. If you are wiring this into a pipeline, a metered REST API and a hosted MCP server are on the way so you can call the same conversion from your own code and agents instead of doing it a file at a time.
How it works
- 01
Drop your PDF
Drag a PDF onto the page or click to select one. The file is handed straight to a Web Worker in your browser — it is not uploaded anywhere. Single-page memos and multi-hundred-page reports both work, limited only by your device's memory.
- 02
Let it rebuild the structure
The tool reads the PDF's text layer and infers document structure from it — promoting large or bold lines to headings, turning bulleted and numbered runs into Markdown lists, and keeping paragraph breaks. This all happens locally, in a background worker, so nothing is transmitted.
- 03
Copy or download the Markdown
Review the Markdown in the result pane, then copy it to your clipboard or download it as a .md file — ready to paste into an LLM, drop into a notes app, or feed a RAG indexer. Nothing was stored on a server, so closing the tab is the only cleanup needed.
Why Markdown instead of plain text
Plain text throws away the one thing an LLM finds most useful about a document: its shape. Markdown keeps that shape in a lightweight, model-friendly way.
A heading written as ## Section 3 tells a model — and a retrieval pipeline — exactly where one topic ends and the next begins. A bulleted list rendered as real - items reads as a set of parallel points rather than an ambiguous run-on. That structure is what lets you chunk a document on its headings instead of blindly every N characters, so each chunk you embed is a coherent unit of meaning rather than a fragment sliced mid-sentence.
Markdown is also close to the format most models were heavily trained on, so headings, lists, and emphasis are interpreted the way you would expect. And unlike HTML or a raw PDF, Markdown spends almost no tokens on markup — you get the structure without paying for a pile of tags in your context window. If you only need selectable prose with no structure, our PDF to Text tool is the lighter choice; choose Markdown when the hierarchy matters.
How structure is reconstructed — and its limits
A PDF does not actually store headings and lists. It stores glyphs at coordinates on a page. Rebuilding structure means inferring intent from those clues, and that inference is best-effort, not exact.
Here is what the tool does well: it reads font sizes and weights to promote likely titles and section headers to Markdown headings, detects bullet and number prefixes to form lists, preserves paragraph boundaries, and keeps reading order correct on single-column pages almost every time.
Here is where it approximates. Multi-column layouts — papers, newspapers, brochures — have to be linearized into one stream, and the tool follows the order recorded in the PDF, which usually but not always matches how you would read it. Complex tables are the hardest case: simple grids convert to Markdown tables, but merged cells, nested headers, and heavily designed tables are flattened to their best readable approximation. Heading levels are inferred from typography, so a document with unusual styling may get the nesting slightly wrong. For LLM context this is normally fine — models are tolerant of minor structural noise — but it is worth a glance before you rely on the output verbatim.
Built for LLM context and RAG pipelines
This tool exists because "turn a PDF into something I can feed a model" has become an everyday task, and most PDFs are hostile to it out of the box.
For ad-hoc context, the workflow is direct: convert, copy the Markdown, and paste it into your chat. You get clean structure and no wasted tokens, and because the file never left your machine, you can do it with documents you would never upload to a third-party service.
For RAG, the Markdown gives you natural split points. Chunk on #/## boundaries so each embedded passage is a self-contained section; keep the heading text in the chunk so retrieval has a topical anchor; and store the .md alongside your source PDF for traceability. Cleaner input here directly improves retrieval quality — garbage-extracted PDFs are a common, invisible cause of bad RAG answers.
When you outgrow converting files by hand, a metered REST API and a hosted MCP server are on the roadmap, so the same file-to-Markdown conversion becomes a call you make from a script, an ingestion job, or an agent. The browser tool and the API are meant to be two front doors to the same conversion.
Why it runs on your device
Most online converters send your PDF to their servers to do the work, which means a copy of your document lands in someone else's storage, however briefly. This tool does the parsing in your browser instead, using the same local runtime that powers offline web apps.
The consequences are concrete. There is no upload, so there is no server-side copy of your document, no processing log tied to your file, and nothing for a future breach or subpoena to reach. It also means the tool keeps working on the documents that matter most — the confidential ones you are contractually or ethically barred from pasting into a cloud service. The first conversion loads a small amount of parsing code, then everything runs locally and works offline afterward. If you want proof rather than a promise, watch the network tab: the conversion finishes with no file leaving your browser.
Frequently asked questions
How do I convert a PDF to Markdown for free?
Is my PDF uploaded to a server?
Why convert PDF to Markdown instead of plain text for an LLM?
Does it preserve tables and headings accurately?
Can I use this to prepare documents for RAG?
Is there an API or MCP server for this?
What about scanned PDFs with no text layer?
Is there a page or file-size limit?
Related tools
PDF to Text
Extract clean, selectable text from PDFs — including scanned pages via on-device OCR fallback.
open tool →Website to Markdown
Paste a URL and get clean Markdown of the readable content — no ads, nav, or clutter.
open tool →Word to Text
Pull plain text out of Word/ODT documents locally, for free, with no watermarks.
open tool →EPUB to Text
Convert EPUB ebooks to plain text right in your browser, chapter by chapter.
open tool →