Skip to content
← All writing
6 min readJiffy CV

How ATS systems actually read your resume

What an applicant tracking system does with your PDF between you pressing apply and a recruiter seeing anything — and which formatting choices quietly destroy it.


Most advice about applicant tracking systems is written by people who have never watched one fail. It tends to arrive as a list of commandments — no columns, no tables, use standard headings — with no explanation of what actually goes wrong. That makes the rules hard to apply, because you can't tell which ones matter for your particular resume.

So here is what is really happening to your file.

An ATS is three separate things

When people say "the ATS rejected me", they usually mean one of three different systems, and it matters which.

The parser turns your PDF or DOCX into structured data: name, email, phone, a list of jobs with dates, education, skills. This is the part that breaks most often, and the part you have the most control over.

The search and ranking layer is what a recruiter uses. They search for candidates who have "Python" and "5+ years", and the system returns everyone whose parsed record matches. If the parser missed something, it does not exist here.

The knockout questions are the form fields you fill in on the application — work authorisation, notice period, expected CTC. These are answered by you directly and do not involve your resume at all.

Almost nothing gets automatically rejected by the resume itself. What happens instead is quieter and worse: your record is created badly, so you never appear in the searches a recruiter actually runs.

What the parser is doing

A PDF does not contain paragraphs, headings, or sections. It contains text fragments with coordinates on a page. "Senior Product Manager" might be stored as three separate runs at three x-positions that happen to sit next to each other.

The parser's job is to reassemble those fragments into reading order, then guess what each block means. It does this with a mix of positional heuristics and pattern matching: text at the top in a larger size is probably a name, a line matching a date pattern near a job title is probably an employment period, a short all-caps line is probably a section heading.

Every formatting rule you have been told follows from this.

Two columns

You see a sidebar with your skills and a main column with your experience. The parser sees text fragments at various x-positions, and its reading-order algorithm goes left to right, top to bottom.

The result is interleaving. Your resume becomes:

Skills                  Experience
Python                  Senior Analyst, Acme
SQL                     2021 - Present
Tableau                 Built dashboards for

...read as Skills Experience Python Senior Analyst, Acme SQL 2021 - Present Tableau Built dashboards for. The dates now sit next to "SQL". The job title is glued to a skill. Nothing parses.

Some modern parsers detect columns correctly. Many do not, and you have no way of knowing which one is on the other end of the application form. The cost of a single column is that your resume looks slightly more ordinary. The cost of two columns is that it sometimes becomes unreadable. That is not a close trade.

Tables

Same problem, worse. Table cell boundaries frequently do not survive text extraction, so a two-column table of Skill | Years collapses into an unpunctuated run of words.

Headers and footers

Many parsers deliberately discard the header and footer region of a page, because in most documents that region holds page numbers and document titles, which are noise.

If your name, email, and phone number are in the page header — as they are in a lot of templates, especially ones exported from design tools — they can be dropped entirely. You end up as an anonymous record with a good work history and no way to contact you.

Put contact details in the body of the page. It looks nearly identical and survives.

Icons and decorative bullets

That little envelope glyph before your email is usually a character from an icon font. Extracted as text it becomes an unrelated Unicode character, or a private-use codepoint that renders as nothing.

Worse, some parsers use the ratio of unusual characters as a signal that extraction has gone wrong. Load your resume with decorative glyphs and you can look like a corrupted file.

Dates

Jan 2021 – Present parses. 01.21 – now often does not. 2021-2023 for one role and March '23 onwards for the next means the parser gets one and misses the other, and your total experience is computed from whatever survived.

Pick one format and use it everywhere. The en-dash is fine; the inconsistency is what hurts.

Scanned or image PDFs

If your resume is an image — exported from a design tool as a flattened graphic, or scanned from a printout — there is no text layer at all. Extraction returns nothing. Some systems run OCR, most do not.

This is the one genuinely fatal formatting error, and it is invisible to you because the file looks perfect on screen. Open your PDF and try to select a line of text with your cursor. If you can't, no ATS can read a word of it.

The part nobody mentions: matching is about evidence, not keywords

Once your resume is parsed, it is compared against the job description. The naive version of this is keyword matching, and it is what most "ATS optimisation" advice is aimed at: stuff the job's keywords into your skills line, ideally in white text.

Two problems. First, white-text keyword stuffing has been detectable for over a decade and is treated as fraud when found. Second — and this is the more useful point — the systems doing the ranking have moved on. Increasingly the question is not "does the string 'stakeholder management' appear" but "does this person's history evidence stakeholder management".

Which means the winning move is not adding the phrase to a list. It is making sure the bullet where you actually did the thing says so clearly:

Ran weekly reviews with engineering, design, and risk to agree the quarterly roadmap

...evidences stakeholder management far better than adding Stakeholder Management to a comma-separated skills line, and it is true, and you can talk about it in the interview.

A short, honest checklist

  1. Single column. No tables, no text boxes.
  2. Contact details in the body, not the page header.
  3. Standard section headings: Summary, Experience, Education, Skills.
  4. One consistent date format, on every role.
  5. Real text, not an image. Check by selecting text in your PDF.
  6. Literal bullets. No icon fonts.
  7. Put the evidence in the bullet, not the keyword in a list.

Where this leaves you

Formatting is necessary and not sufficient. A perfectly parseable resume that does not evidence what the job asks for still ranks badly — it just ranks badly for an honest reason, which at least you can act on.

That is the split worth holding on to. Some of the distance between you and a role is presentational, and fixing it is pure gain. Some of it is real, and no amount of formatting closes it.

Jiffy CV separates those two for you against a specific job description: what better wording can genuinely fix, and what it can't. Run a free scan and see which is which for your own resume.

See how well your CV matches your next job.

Paste a real job post and get a tailored resume, with your match score before and after — and any real gaps named honestly. No card required.

Tailor my CV — free

Read next