ATS guides

The Appliora CV parsing benchmark

Almost everything written about CV layouts and applicant tracking systems is assertion. This is a measurement. One identical CV was exported through 18 of Appliora's own template layouts, out of the 20 in the collection, and every resulting PDF was read by the same parser that powers the free checker. The method, the limits and the full result table are below, including the 12 layouts that came out badly - several of which are our own designs.

Appliora Editorial Team · Updated 18 September 2026 · 5 min read

What the run found

Three numbers carry the result.

  • 6 of 18 layouts returned a parse rate of 100%: every line of the document landed in the parser's output in document order.
  • 12 of 18 tripped the reading-order check. In each case the parser recovered text from a side column interleaved with the main body, which is the failure that turns a readable CV into a scrambled one.
  • Every layout that tripped it scored exactly 69. That is not a coincidence and not a measurement: 69 is the ceiling the scoring model applies to a document whose layout scrambled, defined as scrambledLayoutMaxScore in the engine's configuration. A capped score says "this document has a reading-order problem", not "this document is 69% good".

Method

Written out so somebody else could repeat it, and so you can judge what it is worth.

  • One CV, every layout. A single fictional CV was loaded into each template. Nothing about the content changed between runs, so the only variable is the layout.
  • A real text layer. Each template was printed to PDF by headless Chrome with a genuine text layer. This is deliberately not the builder's own PDF export - see the limits below.
  • The shipped parser, not a copy. Each PDF was scored in a browser by importing the live js/ats/extract-pdf.mjs and js/ats/engine.mjs modules from the running site. A separate scoring implementation would drift from what visitors actually run, and the numbers would quietly stop being true.
  • Scoring model 4.5. The same 14-check model the free checker publishes weights for, on the date shown below.
  • 18 of the 20 templates. The harness carries its own list of layouts and two of the collection are not on it, so the run is not the whole gallery. Which 18 were measured is in the table below - there is no unlisted result.
  • Rerunnable. npm run seo:benchmark regenerates the data file this page reads. No number on this page is typed by hand.

Full results

Sorted by score. Parse rate is the share of the document's text the parser recovered in reading order.

Parsing benchmark results for 18 Appliora CV templates
TemplateScoreParse rateReading orderOther findings
Dark Modern97100%clean2
ATS Structured95100%clean3
Product Systems95100%clean3
Academic / Research94100%clean3
ATS Clean92100%clean4
Student / First Job90100%clean4
Bold Modern6971%scrambled8
Creative Portfolio6989%scrambled5
Dark Sidebar6979%scrambled4
Executive Premium6976%scrambled3
Grand Hotel6968%scrambled4
Growth Marketing6982%scrambled2
Hospitality Service6979%scrambled5
Light Sidebar6978%scrambled2
Medical / Healthcare6977%scrambled4
Swiss One Page6967%scrambled4
Tech Stack6988%scrambled4
Two Column Pro6982%scrambled4

Run 2026-09-18 against scoring model 4.5. Source data: content/data/parsing-benchmark.json.

How to read the table

A clean parse is a floor, not a ceiling

The 6 layouts with no critical finding still scored between 90 and 97, and the gap between those is content, not layout. A layout that parses cleanly has removed one class of mechanical failure. It has not made the writing better.

The capped scores are not comparable to each other

Thirteen layouts share the same number because they hit the same ceiling. A layout at 69 with a 89% parse rate lost less text than one at 69 with a 67% parse rate, and the score does not show that. Read the parse-rate column for the difference.

Some content findings are an artefact of the single-CV design

Pinning one CV across every layout is what makes the reading-order comparison valid, and it is also what makes a handful of the content findings meaningless. A layout designed around a short skills-led document was handed a bullet-heavy project management CV; where that produced a "no bullets found" finding, the finding is about the pairing, not the template. The reading-order column is the one to trust across rows.

What this does not show

What we do with this

The honest answer is that this is the argument for the layouts at the top of the table. When Appliora recommends a template on a CV example page, the reading-order column is one of the inputs. It is also why the checker's template bridge offers single-column layouts specifically, rather than whichever template looks best.

It does not mean the 12 layouts below the line are unusable. A two-column CV read by a person is often the better document, and plenty of applications go to a human first. It means the choice is a real trade-off with a measurable cost, rather than a matter of taste.

Questions about the method

Can I reuse this data?

Yes. Cite it as the Appliora CV parsing benchmark, with the run date and the scoring model version, and link this page so a reader can see the method and the limits. The raw results live in content/data/parsing-benchmark.json in the site's repository.

Why only Appliora templates?

Because exporting a competitor's template would mean paying for and redistributing their design, and scoring it would produce a number about their layout measured by our parser with no way for them to check it. Measuring our own collection is the version of this we can stand behind.

Does a higher score here mean more interviews?

No, and nothing on this page should be read that way. It means the parser recovered the text in order. Whether the CV earns an interview is about what the text says.

Will you re-run it?

Yes, when the template collection or the scoring model changes. The command is npm run seo:benchmark and it overwrites the data this page reads, so a re-run and a republish cannot disagree.

See what a parser reads from your CV

Upload your current file and get the extracted text plus a 0-100 score across 14 checks. No signup.

Check my CV free