Updated September 7, 2026

What an ATS actually reads in your CV

The myth is a robot giving your CV a mark out of a hundred. The reality is duller and much more fixable: a program trying to work out which line is your job title.

An applicant tracking system is a database with a form in front of it. When you upload a CV, it runs a parser over the file to fill that database in: name here, email there, this block is a job, that date is when it started. Everything a recruiter does afterwards, searching, filtering, sorting, happens against those fields, never against your PDF.

This changes what a good CV is. It is not a document that impresses the parser, nothing impresses a parser, but one that leaves it nothing to guess. Every guess it gets wrong is a field filled with the wrong thing, and a field filled with the wrong thing is invisible to the search that would have found you.

The parser reads in one order, and it is not yours

Text extraction returns the words in roughly the order they were written into the file, which for a two-column layout is often left column, right column, or worse, alternating between them line by line. A sidebar of skills beside your work history can end up interleaved with it, so that the parser sees a job title, then a software name, then a date, then a language.

You can see this for yourself in ten seconds. Open your CV, select all the text, and paste it into a plain text editor. What comes out is approximately what the software receives; if it does not read in a sensible order there, it will not read in a sensible order for anybody.

  • Two columns are survivable if the second one holds only short, self-contained items and never runs beside the work history.
  • Text inside a text box, a shape or an image is frequently not extracted at all.
  • The header and footer of a page are a separate layer, and a phone number placed there can vanish.

It finds sections by their headings

Parsers recognise a fixed vocabulary of section headings, in each language they support. Experience, Work experience, Education, Skills: these are matched almost literally. A heading you invented, however clear it is to a person, does not appear in that vocabulary, and the block underneath it is either dropped or attached to whatever section came before.

This is the cheapest fix on the list and the one people resist most, because a heading like My journey feels like personality. It is personality that costs you the section it introduces.

  • Use the ordinary word for the section, and put any flourish in the summary instead.
  • Keep one heading level for sections and another for job titles, consistently.
  • Do not split one section across two columns; the parser will treat the halves as unrelated.

Dates are where good CVs quietly break

Every job needs a start and an end the software can read, and it needs them written the same way each time. Mixing 2021–2023 with Mar 2021 - present with 03/21 forces the parser to apply a different rule to each, and the rule it picks for the ambiguous one decides how many years of experience you appear to have.

Total experience is one of the two or three fields a recruiter filters on before reading anything. A CV that parses to two years when it should parse to nine does not get rejected; it gets excluded from the search, which looks identical from your side and is far harder to learn from.

  • Pick one format, such as March 2021 to March 2023, and use it in every entry without exception.
  • Write the month, not only the year, so a nine-month job is not read as two calendar years.
  • Use one word for a current role and use it everywhere: present, or current, but not both.

None of this is about pleasing an algorithm. A CV that a parser reads correctly is also the CV a tired human reads correctly at half past six, which is the same document for the same reason.