ATS & parsing

How ATS systems actually parse your resume

What an applicant tracking system really does with your CV — and the three structural choices that determine whether it understands your experience or throws it away.

Updated May 12, 20266 min read

Almost every mid-size and large employer routes applications through an applicant tracking system — Greenhouse, Workday, Lever, iCIMS, SAP SuccessFactors, BambooHR, the list goes on. Surveys put coverage at roughly 75% of US employers and over 95% of the Fortune 500. If you're applying online, your CV is almost certainly read by software before any human sees it.

That fact has spawned a small industry of myths. "The ATS rejects PDFs." "You need exactly 30% keyword density." "Tables are forbidden." Most of these are wrong, half-wrong, or two years out of date. The truth is more practical, and more useful: an ATS does roughly three jobs, and your resume succeeds or fails based on how cleanly it lets the software do them.

What an ATS is actually trying to do

Strip away the dashboards and the buzzwords and an ATS is performing three steps on your CV:

  1. Parse the file into structured data — extract your name, contact info, work history (with employers, titles, dates), education, and skills into named fields the system can search.
  2. Score it against the job's requirements — typically by keyword and phrase matching against the job description, with role-specific and seniority-specific weighting on top.
  3. Make you findable later — store the parsed text in a searchable database the recruiter queries with Boolean strings ("Python AND AWS NOT junior", for example).

Each step has its own failure modes. Step 1 fails on unusual layouts. Step 2 fails on missing keywords. Step 3 fails on missing context — you matched on "Java" but your resume never said you used it for backend services. We'll take them in order.

Step 1: parsing

The parser is the single biggest reason resumes get silently dropped. When a CV uploads, the ATS extracts text and tries to map it onto fields: firstName, lastName, email, workExperience[].employer, workExperience[].startDate, and so on. Most parsers use a mix of layout heuristics (where on the page is this text?) and machine-learning extraction. Modern parsers are good — but they assume your resume looks like a resume.

Three structural choices wreck the parse:

  • Multi-column layouts with the contact info in a sidebar. The parser often reads left-to-right across columns, producing things like "Email: jane@example.com Education BS Computer Science". Your name and email end up in workExperience.
  • Resumes built as images (a PDF that's really a flattened bitmap, or a CV exported from a graphic-design tool). The parser may run OCR, but accuracy drops to ~60–80% on text it can read at all. Names with accents, special characters, and non-Latin scripts get mangled.
  • Headers and footers that contain key info like your phone number or LinkedIn. Many parsers strip headers as boilerplate; your contact details disappear with them.

Step 2: scoring

Once parsed, your resume gets matched against the job description. The exact algorithm varies, but it almost always rewards:

  • Exact keyword matches — if the JD says "TypeScript" and your CV says "JavaScript", you don't get credit for TypeScript even though anyone who knows the languages would. ATS is literal.
  • Phrase matches — multi-word terms like "supply chain optimisation" or "stakeholder management" score higher when they appear as a unit, not as scattered words.
  • Role-and-seniority signals — your title matching the JD's title is a strong positive. So is total years of experience in a relevant field.

It does not reward keyword stuffing — modern systems detect "white-text" tricks and abnormal keyword density. The sane play is to use the actual language of the job description, naturally, in the bullets where you did the work.

Stop guessing which keywords matter

Paste your CV and a job description. We highlight the keywords the ATS is scanning for — and weave the missing ones into your resume in seconds.

Try it free — no signup

Step 3: searchability

After scoring, your CV sits in a database the recruiter searches. They type something like "product manager" AND saas AND b2b and skim the top results. The implication: your CV needs to describe what you did using the words the recruiter will search.

That sounds obvious, but it has two consequences engineers and analysts routinely miss:

  • Skills lists are not enough. A "Skills" section with "Python, SQL, AWS, Tableau" gets you parsed correctly, but if your bullets say "led the team to ship cross-functional dashboards" instead of "built Tableau dashboards on top of an AWS Redshift warehouse using SQL", you'll lose Boolean searches.
  • Acronyms only work one way. If the recruiter searches "search engine optimisation", they may or may not match "SEO" depending on the system. The safe pattern is "search engine optimisation (SEO)" the first time it appears.

Three structural choices that quietly decide everything

If you only change three things about your CV based on this article, change these:

  1. Single column, left-to-right, top-to-bottom. Visual cleverness costs more than it gains. The CVs that survive parsing look almost boring.
  2. Standard section headings. "Experience" beats "Where I've made an impact". "Education" beats "Academic journey". The ATS is matching headings against a known dictionary.
  3. Text, not images. Your name should be selectable. Your bullets should be selectable. If you can't highlight a line with your cursor, neither can the parser.

A surprising number of "premium" resume templates fail all three. Pick a clean, structurally boring template and put your effort into the content.

What to ignore

A short list of common ATS myths you can stop worrying about:

  • "PDFs get rejected." False for every major modern ATS. Tagged PDFs (the default from Word and most exporters) parse as well as DOCX.
  • "Fancy fonts break it." Mostly false. The parser reads text, not glyphs. The only fonts to avoid are decorative display faces with overlapping or non-standard letterforms.
  • "You need a specific keyword density." No. Modern ATS scoring is closer to TF-IDF than to keyword counting; once a keyword appears clearly in context, repeating it adds little.
  • "Tables are banned." Simple tables (e.g., for a skills matrix) parse fine in current systems. Complex multi-row, multi-column tables can confuse layout heuristics — but a single-row "Skills" table is safe.

The honest summary

The ATS is not a villain trying to reject you. It's a tool trying to find candidates, with predictable strengths (matching the words on your CV to the words in a JD) and predictable weaknesses (anything that isn't structurally a resume). Build for those strengths, avoid the weaknesses, and you stop competing with the software — you start using it.

Once your structure is clean, the leverage is in tailoring: matching this specific resume to this specific job. That's where most of the score lives, and it's where most candidates skip the work. Don't.

← All guides