Is your PDF extractor silently dropping pages?

Most extractors return empty text for a page and still report success. Certify Anything audits any engine’s output against the source PDF — page by page — and tells you exactly which pages came back empty. Free, MIT, runs on your machine.

pdfmux verifynew in 1.8.1

Drop a PDF. See what your extractor missed.

Upload a PDF and pdfmux re-derives the source text with its own audit pass, then scores every page: usable, silently‑empty, or recovered. Nothing is stored — the file is audited and discarded.

Drop a PDF here, or click to choose
Up to 100 pages · audited with pdfmux verify · never stored

This is what a silent failure looks like

A 12-page government RFP run through a typical extractor. It returned five pages of text, reported success, and shipped — while pages 6–12 came back completely empty. Here is the exact pdfmux verify report that caught it.

7 of 12 pages silently dropped
FAIL · overall confidence 39% · coverage 39% · engine: your-extractor
PageStatusCoverageConfidence
1usable100%100%
2usable100%100%
3usable100%100%
4usable100%100%
5usable100%100%
6silently‑empty0%0%
7silently‑empty0%0%
8silently‑empty0%0%
9silently‑empty0%0%
10silently‑empty0%0%
11silently‑empty0%0%
12silently‑empty0%0%
signature sha256:abf0738b3eb333bd4a73b7243734e0a5e2ce70c22f7f811f1873b553f9be073d — tamper-evident: any edit to the report changes it

Sample report — a real pdfmux verify run on the first 12 pages of a public government RFP, with an extraction that returned pages 1–5 and nothing for the rest. The verifier will not cry “silent drop” when a page’s content is merely re-paginated: it re-derives the source and checks that the content is genuinely absent before flagging it.

Your parser is the ground truth’s judge, not the source of it

We shipped silent garbage in our own pipeline

We ran pdfmux across 433 of our own customer PDFs. The first pipeline lost 16 of them — and 11 of those losses had no error at all: empty output, “all done,” a CSV that quietly went out missing 11 products. That is the exact failure this page detects. After routing every page through the audit gate, the second run processed all 433 with zero silent losses.

433
PDFs in the batch
16
lost on the first run
11
of those with no error
0
silent losses after the fix

Source: the ARK chemical-PDF batch retro (April 2026), the single real-world benchmark we stand behind. A page that reports success and returns nothing is worse than a page that errors — the error you catch; the silence you ship.

Audit a whole directory from your terminal

The web tool audits one PDF. The CLI audits a batch, gates CI on a clean verdict, and never leaves your machine.

pip install pdfmux && pdfmux verify yourfile.pdf copy
# audit one engine's output against the source
pdfmux verify --source report.pdf --extracted reducto_output.json

# audit a whole batch, fail CI unless every page is accounted for
pdfmux verify --source ./pdfs/ --extracted ./out/ --strict
# -> exit 3 if any document silently dropped a page

Six signals per page, one verdict per document