Skip to content
LSI Resume
Complete guide · updated May 2026

How an ATS Reads Your Resume

A plain-English guide to what happens between the moment you click submit and the moment a human sees (or doesn't see) your resume. Covers the five major ATS engines, how parsing actually works, what gets weighted, and the formatting traps that cost candidates interviews every day.

What is an Applicant Tracking System?

An Applicant Tracking System (ATS) is the software a company uses to receive, parse, store and rank resumes. When you submit a resume to a corporate careers page, you're almost never sending it directly to a recruiter — you're sending it to an ATS that processes the file before any human ever touches it.

Roughly 99% of Fortune 500 companies and 75% of mid-size employers run an ATS. The four engines that dominate the enterprise market are Workday, Greenhouse, Lever and Taleo. iCIMS, SAP SuccessFactors and BambooHR cover most of the rest. Each one has its own parser, scoring rules and quirks — and a resume that looks identical to a human can score very differently across them.

The job of an ATS is not to reject your resume. Its job is to make a 5,000-resume application volume manageable for a recruiter who has 6 hours to triage it. The ATS scores and ranks every resume so the recruiter can start at the top. If your resume scores in the bottom 80%, a human will likely never read it — not because the recruiter dislikes you, but because they ran out of time.

The five major ATS engines

Workday

The largest enterprise ATS by deployed seats. Workday's parser is aggressive about extracting structured data (dates, titles, schools, employers) and matches them against the job requisition. Multi-column layouts are Workday's biggest failure mode — the parser reads left to right across columns instead of down each column, producing scrambled output. Tables get flattened into noise.

Greenhouse

The default ATS for high-growth tech companies. Greenhouse's parser is more forgiving on layout but stricter on section anchoring — content outside a recognized section header (Experience, Education, Skills) often gets dropped from the candidate profile. Greenhouse also surfaces a "scorecard" workflow where each interviewer rates the candidate on specific competencies, so the resume's job is to make the shortlist for that scorecard.

Lever

Common at mid-size tech and consumer companies. Lever's parser is similar to Greenhouse's but stricter about "orphan text" — anything not under a clear section header. Image-only regions are skipped entirely. Lever is also one of the engines most likely to surface a resume to multiple recruiters at once, so polish matters more than usual.

Taleo

The legacy enterprise ATS, still dominant in finance, retail and government. Taleo's parser is the oldest of the major engines and the most prone to character-encoding failures — fancy quotes, em-dashes, certain accented characters and non-Latin scripts get stripped or mangled. Resumes that look fine in any other engine can produce garbled output in Taleo.

iCIMS

Heavy in healthcare, hospitality and retail. iCIMS leans hardest on keyword density matching against the job description, which means JD-targeting matters more for iCIMS roles than for any of the others. Sections are loosely parsed; the keyword score dominates.

How parsing actually works

When you upload a PDF resume, the ATS runs three sequential stages: extract, structure, score.

1. Extract

The ATS converts your PDF to plain text using a parser (usually Mozilla's pdf.js or Apache PDFBox). Each glyph in the file becomes a positioned character; the parser groups characters into words, words into lines, lines into reading order. This stage is where layout matters most: multi-column layouts confuse the reading order; tables flatten into rows of disconnected words; text inside images is skipped because it's not text at all.

2. Structure

Once the text is extracted, the ATS identifies sections by matching against a regex of standard headers (Experience, Work History, Education, Skills, Summary, etc.). It then extracts entities from each section: job titles, dates, schools, degrees, companies, contact info. This is the stage where creative section names ("Where I've Made Impact", "What I'm Known For") fail — the regex doesn't match, so the section's content gets dropped or misclassified.

3. Score

Finally the ATS scores the resume against the job requisition. The exact formula varies by engine, but the shared signals are: keyword overlap (how many JD terms appear in the resume), recency (how recent your most-relevant experience is), seniority match (your title progression vs the role level), and format quality (whether the parser extracted a complete profile or a fragmented one).

What ATS engines weight most

Across all the major engines, four signals dominate the ranking decision. Get these right and you'll outrank most of the application pool by default.

Keyword overlap with the job description

The single highest-weighted signal. ATS engines compute keyword density, sometimes with TF-IDF weighting, sometimes with simple presence/absence checks. The trick is that engines do (some) stemming — "manage" / "managed" / "managing" / "management" / "manager" all count as the same root — but they don't do synonym expansion, so writing "led" when the JD says "managed" can cost you the keyword match. A resume that mirrors the JD's literal vocabulary (using the actual words, not just the meaning) will outscore one that doesn't.

Section completeness

Engines award points for finding each expected section (Summary, Experience, Education, Skills). Missing a section they expect for the role's seniority hurts the rank. For a senior IC role, missing Skills is fine; for a fresh-grad role, missing Education is fatal.

Quantified outcomes

Engines look for numbers in proximity to action verbs as a proxy for "real impact." A bullet that says "drove 40% lift in conversion" scores higher than "improved conversion rates." Per-bullet quality matters — a resume with six quantified bullets often beats one with twenty unquantified bullets.

Format cleanliness

Engines penalize parser failures: text that came out as gibberish (encoding issues), sections that flattened into one line, contact info missing because it was inside an image. Clean-parsing resumes get bonus rank because the engine has high confidence in the extracted data.

The formatting traps that block candidates

  • Multi-column layouts. The single most common reason a resume looks great to a human and parses as nonsense in Workday. Stick to a single column.
  • Tables. Even simple two-column tables ("Skills | Tools") flatten into space-separated rows that lose their meaning. Use comma-separated lists instead.
  • Images and graphics. Any text inside an image (logos, fancy section dividers, profile photos with embedded text) is invisible to the ATS.
  • Image-only PDFs. Many design tools export resumes as a single image wrapped in a PDF. To the ATS this contains zero text and scores zero. Test: open your PDF in any reader and try to copy-paste the text. If you can't, the ATS can't read it either.
  • Fancy fonts and characters. Em-dashes, fancy quotes, certain Unicode characters and non-Latin scripts can corrupt during extraction in older engines (especially Taleo). Stick to standard punctuation.
  • Headers and footers. Some parsers strip everything in the page header/footer regions. If your contact info is in the page header, it may not get extracted. Put contact info in the body of the first page.
  • Creative section names. "Where I've Made Impact" is creative and a human reader loves it. The ATS regex anchor is "Experience" or "Work Experience" — your creative section may not match, and the content underneath gets dropped or misclassified.
  • Photos. Standard in some regions, banned in US/UK hiring. Even where culturally accepted, the ATS doesn't gain any signal from a photo and may flag it as a bias risk.

A 5-step optimization checklist

  1. Use a single-column layout. The single fastest fix. Open your resume, eyeball the page; if there are two columns of content side-by-side anywhere, restructure to one column.
  2. Submit a real text PDF. Test by copy-pasting from your PDF in any reader. If the text doesn't copy, the file is image-only and scores zero in every ATS.
  3. Use the standard section headers."Experience" / "Work Experience" / "Professional Experience" are all safe. "Education", "Skills", "Summary" are safe. Creative names are not.
  4. Mirror the role's keyword vocabulary. Read the JD; pull out the 15–20 most-used terms; make sure each one appears in your resume in an honest context. The curated keyword lists give you a head start per role.
  5. Quantify every bullet you honestly can. A number, a percentage or a dollar amount in each bullet lifts the per-bullet score 30–50%. The number doesn't have to be huge — "led team of 4" is much better than "led a team."

How to test your resume against an ATS

Most online ATS checkers are upload-to-server tools that charge for the result. The free LSI Resume Analyzer runs entirely in your browser — your PDF never leaves your device. It simulates all five major engines (Workday, Greenhouse, Lever, Taleo, plain-text) in parallel and shows you exactly which one is failing on which content.

Drop your PDF, see your 6-axis score, and find the issues that are actually costing you interviews — fully private, no signup, results in seconds.

How an ATS Reads Your Resume — Complete Guide (2026) | LSI Resume · LSI Resume