PDF to Markdown (RAG-ready): Scans + Tables
Pricing
from $3.00 / 1,000 text page converteds
PDF to Markdown (RAG-ready): Scans + Tables
Scanned PDFs and messy tables actually convert here. Bundled OCR reads image-only pages; tables come out as real Markdown tables. Benchmarked against the leading alternatives — results in the README.
Pricing
from $3.00 / 1,000 text page converteds
Rating
0.0
(0)
Developer
Dermot O'Brien
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
PDF to Markdown (RAG-ready)
Turn any PDF — text-native or scanned — into clean Markdown for RAG pipelines, LLM context, and AI agents.
Most PDF converters stop at plain text and lose table structure on the way, and plenty return nothing at all for scanned pages. This one runs OCR on scanned PDFs, recovers tables as real GFM Markdown tables, and outputs a manifest and page records per document, so one bad document in a batch doesn't stop the rest.
Why this one
- Scans actually get OCR'd. Image-only PDFs run through bundled Tesseract OCR instead of coming back empty.
- Tables stay tables. GFM table recovery outputs real Markdown tables, not flattened text — see the benchmark below.
- One bad file doesn't sink the run. Only pages that convert successfully turn into records, and every document gets its own manifest, so a bad document doesn't stop the rest of the batch.
Quickstart
Convert a PDF by URL with the defaults (auto-OCR, Markdown only, 200-page cap):
{ "documents": [{ "url": "https://arxiv.org/pdf/2506.22653" }] }
Multiple documents with chunked output, ready for a vector DB:
{"documents": [{ "url": "https://example.com/a.pdf" },{ "key": "UPLOADED_FILE_KEY" }],"output": "markdown+chunks","chunking": { "maxTokens": 1024, "overlapTokens": 64 }}
What you get
Each run produces one dataset record per converted page (kind: "page"), one manifest per document (kind: "document") pointing at the full Markdown in the run's key-value store (fullMarkdownKey), and an OUTPUT record with the run summary. Add "output": "markdown+chunks" to also get fixed-window token chunks sized for a vector DB. Trigger it the same way from the Console, the API, Make/n8n, or an MCP-connected agent.
Measured, not claimed
Tested against the three highest-usage runnable PDF-extraction actors on a frozen 20-document public corpus — government reports, CC-BY papers, true image-only scans, table-heavy statistical documents, and pathological files — with table ground truth labeled before any contender ran. Full protocol, corpus manifest, raw outputs, and scoring code are available on request via the Issues tab.
| Contender | Conversion success | Table-cell F1 | Scanned-page OCR |
|---|---|---|---|
| This actor | 17/17 | 0.911 | exact text (0.0 CER) |
| Best incumbent A | 15/17 | 0.903 | no output |
| Best incumbent B | 15/17 | 0.000 | no output |
| Best incumbent C | 7/17 (timeouts) | 0.000 | exact on completed |
Honest caveat: one incumbent edges ahead on a single dense-table document class (0.941 vs 0.889 on that page), and none of the others can read a scanned page and hold table structure at the same time this actor does.
Limits and good citizenship
100 documents per run, 100 MB per input, up to 500 pages per document (200 by default), and OCR in English for this version. DOCX, PPTX, XLSX, and HTML input are on the roadmap, not available yet. The actor also respects whatever spending limit you set for the run and stops picking up new work the moment that limit is hit.
Privacy and security
Your documents live in Actor memory and an isolated temporary directory for the length of the run; that directory is deleted the moment a document finishes processing, and the actor creator keeps no separate copy. Document content never appears in logs, and raw URL queries, fragments, and credentials are never persisted or logged. What does persist is the derived output — page records, Markdown, chunks, manifests, and the run summary — in storage under your own Apify account, governed by your plan, your retention settings, and Apify's DPA. You're responsible for having the right to process whatever documents you submit; this tool isn't offered for regulated data such as HIPAA-class records.
Converted output is untrusted content, not instructions. If you hand it to a downstream agent, treat it as data to read, not as something to execute, and use the source reference, document index, and page number carried in each record for provenance.
This is an independent project, not affiliated with or endorsed by IBM, Docling, or Apify. It's AI-built and AI-operated under the account owner's supervision, with every release passing an automated test suite and cross-model code review before it ships.