AI Demos Research — the structured-intelligence platform. Every verdict on these pages opens to the execution behind it.
Graded 13 October 2026

Can Firecrawl turn a cleanly scanned document into accurate text?

Firecrawl did not recover visible text accurately from the cleanly scanned document. The output dropped the letterhead and footer, split words apart, interleaved the opening prose, kept the table values correct, and used full-width punctuation for the sampling time.

1 of 1 test case failed

Every test case in this scenario has a result.

Pass rate0%0 of 1 gradable
Coverage1 of 1test case with a result
0PassNo test case passed.
1FailMissed at least one thing it was expected to do; the reason and proof are with each test case below.
0Not gradableEvery result here could be graded.
0UntestedEvery test case in this scenario has a result.
The pass rate is a summary. The evidence is the test case below: what we sent, what we checked, what the tool returned, and the proof.

The test case

Each test case is judged on its own: Pass, Fail, Not gradable, or Untested. The scenario result above is based on this test case.

Clean scan — text recoveredFailEvidence
What we sent
InputDocument (PDF)
Input PDF: scanned certificate of analysis
Open the PDF ↗
What the tool returned
Markdownthe whole file · copied lines 1–12 marked
Ms R. Sandiman Braithe Estuary Partn Estuary House, Varde Braithe BR3 4LN

ership
anne Quay

Our reference: KAL-11938/26 Date of report: 4 February 2026

## Certificate of analysis

## Dear Ms Sandiman

Thank you for the four water samples delivered to in as batch KAL-11938 and analysed by the meth as received.

this laboratory on 28 January 2026. They were booked as shown. The results below relate only to the samples

| Sampling point | Vardenne Channel, station VQ1 |
| --- | --- |
| Date and time of sampling | 27 January 2026,09:40 |
| Total suspended solids | 41.6mg/l(method KAL-M04) |
| Chloride | 18,200mg/l(method KAL-M11) |
| Ammoniacal nitrogen | 0.42mg/l(method KAL-M12) |
| Dissolved organic carbon | 5.9mg/l(method KAL-M22) |

The suspended solids figure is higher than those report were both below 30 mg/l. The samples were taken on Sands, and the result is consistent with that.

d for this station in December and January, which e ebb, two days after the last placement at Kellow

The remaining samples will be held until 4 March 2 keep them.

26 and destroyed after that date unless you ask us to

Yours sincerely

Dr A. J. Prosser

Laboratory Manager

Markdown output: text split and reordered

Copied from Output file (Markdown), lines 1–12

Open the Markdown file ↗
Output file (JSON)
Raw response: success and Markdown output
Cited values2 values from this file
data › markdown
Ms R. Sandiman Braithe Estuary Partn Estuary House, Varde Braithe BR3 4LN ership anne Quay Our reference: KAL-11938/26 Date of report: 4 February 2026 ## Certificate of analysis ## Dear Ms Sandiman Thank you for the four water samples delivered to in as batch KAL-11938 and analysed by the meth as received. this laboratory on 28 January 2026. They were booked as shown. The results below relate only to the samples | Sampling point | Vardenne Channel, station VQ1 | | --- | --- | | Date and time of sampling | 27 January 2026,09:40 | | Total suspended solids | 41.6mg/l(method KAL-M04) | | Chloride | 18,200mg/l(method KAL-M11) | | Ammoniacal nitrogen | 0.42mg/l(method KAL-M12) | | Dissolved organic carbon | 5.9mg/l(method KAL-M22) | The suspended solids figure is higher than those report were both below 30 mg/l. The samples were taken on Sands, and the result is consistent with that. d for this station in December and January, which e ebb, two days after the last placement at Kellow The remaining samples will be held until 4 March 2 keep them. 26 and destroyed after that date unless you ask us to Yours sincerely Dr A. J. Prosser Laboratory Manager
success
true
Show the whole file (2 KB)
JSON
{
  "success": true,
  "data": {
    "markdown": "Ms R. Sandiman Braithe Estuary Partn Estuary House, Varde Braithe BR3 4LN\n\nership\nanne Quay\n\nOur reference: KAL-11938/26 Date of report: 4 February 2026\n\n## Certificate of analysis\n\n## Dear Ms Sandiman\n\nThank you for the four water samples delivered to in as batch KAL-11938 and analysed by the meth as received.\n\nthis laboratory on 28 January 2026. They were booked as shown. The results below relate only to the samples\n\n| Sampling point | Vardenne Channel, station VQ1 |\n| --- | --- |\n| Date and time of sampling | 27 January 2026\uff0c09\uff1a40 |\n| Total suspended solids | 41.6mg/l(method KAL-M04) |\n| Chloride | 18,200mg/l(method KAL-M11) |\n| Ammoniacal nitrogen | 0.42mg/l(method KAL-M12) |\n| Dissolved organic carbon | 5.9mg/l(method KAL-M22) |\n\nThe suspended solids figure is higher than those report were both below 30 mg/l. The samples were taken on Sands, and the result is consistent with that.\n\nd for this station in December and January, which e ebb, two days after the last placement at Kellow\n\nThe remaining samples will be held until 4 March 2 keep them.\n\n26 and destroyed after that date unless you ask us to\n\nYours sincerely\n\nDr A. J. Prosser\n\nLaboratory Manager",
    "metadata": {
      "scrapeId": "01a08b71-ebbb-70db-af48-5d8da00af2ff",
      "sourceURL": "certificate_of_analysis_KAL-11938.pdf",
      "url": "https://parse.firecrawl.dev/uploads/certificate_of_analysis_KAL-11938.pdf",
      "statusCode": 200,
      "numPages": 1,
      "totalPages": 1,
      "title": "Scanned document",
      "contentType": "application/pdf",
      "proxyUsed": "basic",
      "creditsUsed": 1,
      "concurrencyLimited": false
    }
  }
}
Open the JSON file ↗
Expected vs. Found
✗Expected: Visible text is recovered accurately.Found: The output lost the letterhead and footer, split words apart, and interleaved the opening sentence; the table values stayed correct.
Supporting proof
Proof 1Screenshot
Run card: default parse settings and success
Open original ↗
Proof 2Screenshot
Comparison image: source text versus output
Open original ↗
Why this result

The case required visible text to come back accurately. Instead, the returned Markdown lost the letterhead and footer, split words apart, and mixed the opening sentence out of order, so it missed the requirement.

Also observed in this test case

Table text intact. The table numbers and method codes came through correctly; the errors were in the prose and letterhead.

Time punctuation. The default output used full-width punctuation in the sampling time.

Tested by Chandresh Bisht · evidence dated 10 September 2026

Configuration and setup

How this tool was set up for the run and what the test needed in place. Each row is a fact from the run's records; a fact the records do not hold is left out, not guessed.

Software that produced the output
Firecrawl
Build or version
not exposed (Firecrawl API v2, /v2/parse)
Plan or tier
free tier
Surface
API
Set up before the run
A short scanned image-only PDF with ordinary text had to be converted to Markdown in one default pass, using the complete file and no per-tool tuning.
Parsing
No options set (the product’s defaults); automatic parser mode; Markdown output only
Tested
10 September 2026 · Chandresh Bisht

How this scenario is graded

How we decide Pass, Fail and Not gradable. The same rules apply to every tool tested on this scenario.

How results are decided

Each test case gets one result per tool: Pass, Fail or Not gradable. A test case we haven't run yet shows Untested. There are no partial results.

The rules
  • Pass: the tool did everything the test expected, and nothing it said contradicts the correct answer.
  • Fail: at least one expected behaviour clearly didn't happen; the test case's result says which one and quotes the tool.
  • Not gradable: our evidence couldn't settle the outcome (for example a record we needed is missing). It is never counted as a fail, and the test case's result says what's missing.

Where this sits in the benchmark

This page is one cell of a larger study: one tool, one scenario. Only this benchmark's frame appears here.

History of this result

What has happened to this result since it was first published. Runs and grades are never overwritten: a retest or a re-grade publishes a new result and keeps the earlier one readable.

from the publication record
11 November 2026First publishedConverting a complex PDF into clean Markdown with a hosted API v1

Act on this result

Nothing filed here edits the run or the grade. A challenge opens a review, and a review can produce a new run or a re-grade — which becomes the current result and leaves this one in the history.

This matches what I see

You run the same kind of test against your own setup and get the same behaviour.

Agree →
This does not match

Yours behaves differently. Tell us what you got, with a screenshot if you have one.

Disagree →
Point out an issue

Something here is wrong — a reference value, a transcription, a grade.

Report an issue →
Request a retest

On a newer build, a larger dataset, or your own setup.

Request a retest →
We have fixed this

Tell us what changed and we schedule a rerun of the failing test case. The old result stays as history.

Vendor notice →
Filed against this evidenceNothing yet. Challenges, counter-evidence and fix notices appear here with their outcome, and stay on the page after they are resolved.
Cite this result
aidemos.com/benchmarks/pdf-to-markdown-apis/results/firecrawl/a-cleanly-scanned-document · 0 pass · 1 fail · coverage 1/1 · graded 2026-10-13

The same record is available as structured data through the AI Demos MCP server, with the counts, the coverage and every per-test-case reason carried as fields.

Verify the proof files

These files support this result. Open a file to inspect the original evidence.

Input · Document (PDF) ↗application/pdf · 747 KB
Proof 1 · Screenshot ↗image/png · 91 KB
Output file (JSON) ↗application/json · 2 KB
Output file (Markdown) ↗text/markdown · 1 KB
Proof 2 · Screenshot ↗image/png · 1.2 MB
File fingerprints (SHA-256)

A fingerprint identifies the exact file used for this result.

Input · Document (PDF)a459554d58b9480b19bb3a63598c500b961c3ad377492d18ff227bb439e1f68c
Proof 1 · Screenshotdfb71b066e8d632b079a7fe0d61e6027ef9206f9a5d6d35da838b980a1b2f74d
Output file (JSON)340edd13a2de700973702ba14e400d993c76f67956aa5304737e8fb95600edc1
Output file (Markdown)db77a94302d1eda3aa9f370d8de3a4480913da2ed6a4df64804c3addb2587a14
Proof 2 · Screenshotd42e3f459e34e013cb54e7c96c9b9875ecb74b541aaaac041d60e32e6c817443