Methodology
How the Machine's-Eye View works
No black box. Here is exactly what we model, what we can prove, and where we draw the line on honesty.
One engine, and the vendor facts we can cite
We run ONE deterministic extraction, not a per-vendor simulation. An earlier version modelled eight named "parser profiles" whose differences were our own invention. We had never run any vendor's parser, so the comparison told you nothing it claimed to. What we can honestly give you is below: what our engine found in your file, and separately, what these vendors document about their own systems, each with a link to the page it came from.
Greenhouse
- Cannot parse résumés larger than 2.5 MB. source
- Accepts uploads up to 100 MB (doc, docx, pdf, rtf, txt) — far above what it will parse. source
- Names columned layouts, tables, headers, footers and text boxes as causes of failed or partial parsing — along with letter-spaced text, graphics, and image-only files. source
Workday
- Caps attachments at 30 MB and images at 10 MB. The limits are not configurable. source
- States parsing results vary with résumé format and word order, and recommends résumés without images or image-based styles. source
- Parsing never auto-fills Languages or Skills, and whether parsing runs for external candidates at all is a per-tenant configuration. source
Lever
iCIMS
- Returns extracted text as UTF-8 plain text; gives up on extraction after 90 seconds, retries twice, then returns 404. source
SmartRecruiters
- Application API accepts files up to 2 MB, Base64-encoded — the lowest documented ceiling of the eight. source
- Documents UNPARSABLE_RESUME for image-only résumés — they fail outright. source
- Résumé parsing is performed by Textkernel BV, named on the subprocessor register since 2014. source
- Textkernel reports column-separator detection improving 60% → 82% and contact-field fill +4–10 points across 12,000+ CVs after a model change — vendor-run, but with a stated method. source
JazzHR
- States a résumé larger than 5 MB is not parsed at all. source
Workable
- Résumé upload limit is 5 MB (20 MB for custom-question uploads). source
- "Tables and columns will put words, and sadly sometimes letters, on different lines." Also advises against headers and footers. Cites no study. source
- Subprocessor register states "Google Gemini may be used for CV parsing" and lists no traditional parsing vendor. source
BambooHR
- Its own candidate guide advises "Use columns to include more information" — the opposite of Greenhouse's and Workable's guidance. source
The facts below are quoted from the vendors' own documentation and linked so you can check them. Where a vendor documents nothing, which is most of them, on most questions, we say nothing. We do not publish an inferred number under a company's name.
Determinism: what we can prove
Our parse simulation is rule-based, not an AI guess. The same resume produces a byte-for-byte identical result every single time, a guarantee we hold with an automated test that runs the engine 100 times and compares the output. That's the opposite of tools whose score flips between runs. Determinism means consistent, not omniscient, which is why we're careful about the next part.
Confirmed vs. inferred: the honesty line
An uploaded PDF is already flattened into linear text before any ATS sees it. So we label every finding honestly:
- Confirmed means losses that act on the real bytes of your file: contact details trapped in a header or footer, and text we could not extract at all. These are real on any upload.
- Inferred means how a resume like yours tends to break in a given parser class. We never claim we replayed your exact pixels from a flattened upload.
When you build a resume inside Oliros, we run the check on the actual rendered layout, so column scrambles and header drops are confirmed on your real document.
Why there's no single "ATS score"
Because there isn't one. Recruiters are clear: most ATS don't auto-reject on content. The real filters are knockout questions (work authorization, years required, location) and sheer human volume. We won't hand you a comforting number that doesn't exist. We show you what the machine actually read, and what a human actually decides.
How we validate accuracy
We have NOT validated our engine against real ATS extractions. The harness to do it exists in the codebase and has never been run against real parser output; there is no corpus. Saying otherwise would be the exact failure this page is about, so: our engine is a reconstruction of documented and commonly-reported parsing behaviour, not a measured reproduction of any vendor. If we ever run that comparison, we will publish the accuracy figures and the denominator together.
Every score on Oliros, in one place
This page used to cover only the Machine's-Eye View. Oliros shows several other bands and scores elsewhere in the app — here is what each one actually measures, and how honest we can be about it.
Most of these render as a band (strong / good / fair / low), not a 0-100 number. A number implies a precision that doesn't exist — no vendor publishes a portable "ATS score", and no résumé score has published predictive validity. A band says only what we can defend: roughly where you stand, and why.
Keyword fit
Overlap between your profile and a job posting's stated keywords.
Deterministic — a real count, not a guess
Cutoffs: strong at 72+, good at 60+, fair at 48+, below that is low.
AI match opinion
An AI's read on how well your résumé fits one posting — a different question from keyword overlap, scored separately on purpose.
An AI's opinion — a judgment call, not a measurement
Cutoffs: strong at 72+, good at 60+, fair at 48+, below that is low.
Résumé craft
Writing quality: action verbs, quantified impact, framing. Scores recruiter craft, not ATS parseability.
An AI's uncalibrated 0-100 judgment — a starting point, not a measurement
Cutoffs: strong at 80+, good at 65+, fair at 50+, below that is low.
Headline craft
Same writing-quality judgment, applied to a LinkedIn headline.
An AI's uncalibrated 0-100 judgment — a starting point, not a measurement
Cutoffs: strong at 80+, good at 65+, fair at 50+, below that is low.
ATS structural checks
The share of structural parse checks your résumé passes in the ATS Simulator — a real pass/fail count, not an opinion.
Deterministic — a real count, not a guess
Cutoffs: strong at 80+, good at 60+, fair at 40+, below that is low.
AI-Tell score
How much your bullets read as AI-generated: a deterministic count of cliché-phrase hits and sentence-rhythm ('burstiness'), not an AI judging your writing.
Deterministic — a real count, not a guess
Methodology version 2026-09-02 — this page changes only when a scoring formula or cutoff does, so you can tell a score change from a methodology change.