Step-by-step answer
Core 90 min7 stepsRun a four-way parser bake-off
Twelve synthetic pages with planted traps, four parsers behind one parse() function, and 45 binary checks scored olmOCR-Bench style. On the recorded run the text layer was exact on born-digital pages and blank on scans. Docling read the scans but shifted a scanned table's values down one row and dropped the blank answers from a CON29 grid. The Claude stub shows what a fluent VLM failure looks like.
Back to the exercise