Which PDF→Markdown
tool should you trust?

There are 7+ serious PDF extractors now — MarkItDown, Marker, Docling, LlamaParse, OpenDataLoader. Most hand you text and hope it’s right. pdfmux is the one that scores its own confidence per page, re-extracts the pages that fail, and routes across all of them — so your RAG pipeline is built on clean text, not silent garbage.

get started → MIT · free · #1 free on opendataloader-bench (0.903)
pip install pdfmux copy

How pdfmux compares

Every tool below is good — they’re just built for different jobs. The honest split: most are a single engine you trust blindly. pdfmux is the layer that checks the work and routes to the right engine per page.

Tool Best at Per-page confidence Auto re-extracts failures Routes engines Cost
pdfmux Reliable text for RAG & agents Yes — 4-signal Yes Yes — 7 backends + BYOK LLM free · MIT
MarkItDown Widest format support (Office, HTML, images) No No No — single pipeline free · MIT
Marker High-quality scanned / OCR No No No free · needs GPU
Docling Complex tables (97.9% TEDS) No No No free
LlamaParse Hosted, hands-off No No No $3 / 1k pages · cloud
OpenDataLoader Top benchmark, bounding boxes No No No free · Apache 2.0
PyMuPDF / pymupdf4llm Fastest raw text, the Python default No No No free · AGPL

Reflects each tool’s documented features as of July 2026. “Routes engines” = automatically picks a different extractor per page. Every tool name links to its full head-to-head with install commands and tradeoffs, or see the full 7-tool comparison and all comparison posts.

Same documents, same machine, stopwatch running

Feature tables are claims. These are measurements — run 11 July 2026 on a CPU-only dev machine (no GPU), each tool in its own process with a 240-second cap per document. Versions: pdfmux 1.7.0, PyMuPDF 1.28.0, pymupdf4llm 1.28.0, MarkItDown 0.1.6, Docling 2.112.0. Two representative documents shown; six were run.

Tool arXiv paper, 15 pages Apple 10-K, 121 pages Per-page confidence out
PyMuPDF (raw text) 0.3s 1.2s No
MarkItDown 1.7s 10.0s No
pymupdf4llm 5.5s 18.4s No
pdfmux (fast preset) 6.7s 83.9s Yes — scored 1.0, audited
Docling 67.4s did not finish in 240s No

The honest read: raw PyMuPDF is the speed king and always will be — if you trust every page blindly, use it. MarkItDown is quick and solid on clean text. pdfmux spends its extra seconds classifying every page, scoring the output 0–1, and writing the audit manifest — that’s the product. Docling’s layout models want a GPU; on CPU it timed out on both 100+ page documents in this run (its table accuracy remains best-in-class where it fits). All six PDFs here were clean digital text, so pdfmux routed zero pages to OCR and scored 1.0 across the board — on scanned or degraded input the confidence signal, not the stopwatch, is what changes your outcome. Full data: benchmarks/output/compare-hub-2026-07-11 in the site repo, reproducible via compare_hub_benchmark.py.

It audits the others, too

pdfmux doesn’t only compete with Marker, Docling and LlamaParse — it certifies them. Run your current extractor, then pdfmux verify reports which pages it silently dropped. That’s the wedge no other tool offers: a free second opinion on the extraction you already trust.

16
Silently dropped, naive v1
11 with no error
433/433
After the rebuild
0 silent failures
$0
To certify any engine
MIT, CPU, local

Measured on 433 real customer documents — the failing run was pdfmux’s own early pipeline, which is exactly why it now flags what it can’t read instead of dropping it. Try it at pdfmux.com/audit.

Most RAG hallucinations start at extraction

Standard extractors silently fail on scanned pages (empty text), two-column layouts (scrambled reading order), and tables (lost structure). Your chunks look fine but contain broken text. pdfmux scores every page 0–1, flags the failures, and re-extracts them with a stronger backend — so your embeddings are built on clean text. It’s the only LangChain / LlamaIndex loader that attaches a per-page confidence score you can filter on before embedding.

read the docs → works in LangChain, LlamaIndex, and as an MCP server

Want this without running it?

pdfmux Cloud runs the same extraction behind a hosted API — signed per-batch manifests, per-key page quotas, free tier at 100 pages / month, paid tiers from $49. Opening to first customers in July 2026. Get early access →