A recruiter reads your CV. The ATS parses it. Those are two different operations, and dates are where they diverge the most. A human glances at "2021 - 2023" and moves on. A parser has to turn that string into two real points in time, and if it guesses wrong, the number attached to your profile is wrong for the rest of the process.
Search results for date format CV ATS are full of contradictory advice. The mechanism underneath is actually simple, and once you understand it the correct choice is obvious.
What the parser is actually doing with your dates
Your dates are not decoration sitting next to a job title. They are the raw input for three computed fields:
- Total experience, summed across every role on the CV
- Tenure per role, meaning how long you stayed in each one
- Gaps, meaning the unexplained months between one end date and the next start date
Recruiters do not eyeball those numbers. They filter on them. A search for "5+ years experience" in the ATS does not scan your bullet points for the word "years" - it queries the total experience field the parser calculated when your file was ingested. If your dates parsed badly, you are not ranked lower. You are absent from the result set.
That is the whole reason this narrow question matters. Everything else on your CV influences a human. Your dates influence a database query.
The two safe formats
There is no single ATS date format preferred by every vendor, but there are exactly two formats that every mainstream parser handles reliably:
03/2021 - 08/2024Mar 2021 - Aug 2024
Month and year. Nothing else. Both give the parser the two values it needs. Pick one, then use it on every single line of the CV.
Why year-only dates quietly cost you
Writing 2021 - 2023 looks clean. It is also the most expensive shortcut on this page.
A parser that receives only a year has to assume something. Common behaviour is to assume January of the start year and January of the end year, or to treat both as mid-year defaults. Either way you are handing the system a rounding error. A role you held from February 2021 to November 2023 is nearly 34 months. Parsed as 2021 - 2023 it can be counted as 24. Repeat that across four roles and you can lose a full year of computed experience, which is exactly the amount that decides whether you clear a "5+" filter.
There is a second cost. Experienced recruiters read year-only dates as a hiding tactic, because it is the standard way people conceal a four-month role or a nine-month gap. You get penalised twice: by the machine that undercounts you, and by the human who assumes the worst. Use year-only dates for nothing, not even for old roles.
The ambiguity trap: never write the day
03/04/2024 means 3 April in most of Europe and March 4 in the United States. The parser does not know which convention you were raised on. It applies whatever locale rule it was configured with, and if that guess is wrong your start date shifts by up to eleven months.
This is precisely why day-level precision is pointless on a CV. Nobody hiring you cares that you started on a Tuesday. Drop the day entirely and the ambiguity disappears with it, because 03/2024 can only be March 2024.
If you write months as numbers, always pad to two digits and always use a four-digit year: 07/2019, not 7/19.
Consistency matters more than which format you chose
Both safe formats work. Mixing them is what breaks things.
A CV that says Mar 2021 - Aug 2024 in one entry, 03/2021 - 08/2024 in the next, and March 2021 to August 2024 in a third forces the parser to re-detect the pattern on every line. Detection is usually done per document, not per line, so the entries that do not match the detected pattern are the ones that fail. They come back empty, or they inherit a date from the entry above.
Choose your format once, apply it to work history, education, certifications and volunteering, and never make an exception for a single line because it looked nicer.
Writing your current role
For an ongoing job you have three common options, and they are not equally safe:
Mar 2023 - Present- safest, recognised almost universallyMar 2023 - Current- usually fine, slightly less commonMar 2023 - to date- riskier, less consistently mapped
Use Present. Avoid leaving the end open with a trailing dash (Mar 2023 -), because an empty end value can be read as a parse failure rather than an ongoing role. Avoid writing Mar 2023 - Now or putting today's date there, which makes the role look finished.
Separator and spacing
Use a plain hyphen with a space on each side: Mar 2021 - Aug 2024.
En dashes and em dashes often survive the trip, but they are also the characters most likely to be mangled by a PDF text extraction, and a broken separator turns two dates into one unreadable string. Slashes as separators (2021/2024) are worse - they collide with the numeric month format. A hyphen with spaces is the boring, safe choice. The word to also works, but only if you use it everywhere.
Abbreviated or full month names
Both parse. Jan, Feb, Mar, Sep and so on are standard three-letter abbreviations, and Sept is also fine. Full names like January parse equally well and simply take more space.
Do not invent abbreviations, do not add a period on some months and not others, and do not capitalise inconsistently. If you abbreviate one month, abbreviate all twelve.
Applying in another language
Month names are language-specific tokens. A parser configured for English will not necessarily recognise mars, mai, octubre or enero.
The rule is simple: match the language of the job posting. If you are applying in English, your months must be in English, even if the rest of your career happened in France or Latin America. If you are unsure which language the receiving system runs in, use the numeric format 03/2021 - 08/2024, which is language-neutral and sidesteps the question completely.
Seasonal and vague entries
Convert every one of them:
Summer 2024becomesJun 2024 - Aug 2024Winter 2022is ambiguous across hemispheres and calendar years - write the actual monthsQ3 2023becomesJul 2023 - Sep 2023Early 2021becomes a real month, even if you have to estimate it
An estimate to the nearest month is far better than a label the parser will discard.
Where the date sits
Dates get lost through placement more often than through formatting. Keep them in the normal flow of the body text, on the same line as the job title and employer or on the line immediately below.
Do not put dates in:
- a header or footer - many parsers strip these regions before reading
- a text box or floating shape - often invisible to text extraction
- a table cell, where reading order can scramble the association between role and date
- a narrow sidebar column, where the date ends up detached from the job it belongs to
The failure mode is subtle: the job title is read correctly, the date is read correctly, but the link between them is lost, so the role gets no duration at all.
A safe layout looks like this:
Senior Data Analyst | Northgate Retail | Mar 2021 - Aug 2024
Or with the date on its own line directly under the title. Both keep the two elements adjacent in the extracted text.
Short contracts, freelance and concurrent roles
Short assignments still need real month boundaries. A three-month contract written as 2023 disappears into a rounding assumption.
For freelancing, create one entry covering the full trading period (Jan 2020 - Present, self-employed) and list clients as bullets underneath without their own date ranges. This gives the parser one continuous block instead of a dozen overlapping fragments that look like job hopping.
For two roles held at the same time, date both normally. Parsers that detect overlap generally count the calendar span once rather than doubling it, and the alternative - fudging the dates to avoid overlap - creates a false gap.
For a promotion inside the same company, give each title its own date range under a single employer heading, and keep that pattern identical for every promotion on the CV.
Education, certifications and expiry dates
Education can be dated with the graduation month and year alone: Jun 2019. A full range is fine too, provided it follows the same format as the rest of the CV. Ongoing study takes Sep 2024 - Present (expected Jun 2026).
Certifications need the issue date, and the expiry date when one exists: AWS Solutions Architect - Associate, issued Feb 2024, expires Feb 2027. Some ATS setups check whether a required certification is still valid on the date of the application, so an undated certificate is treated as unverified. Never write Certified 2022 and leave it there.
Before and after
2021 - 2023becomes02/2021 - 11/202303/04/2024 - 12/09/2025becomes03/2024 - 09/2025Summer 2024becomesJun 2024 - Aug 2024Mar 2023 -becomesMar 2023 - PresentJan 2021 to NowbecomesJan 2021 - Presentsept. 2019 - juin 2021on an English application becomesSep 2019 - Jun 2021Certified 2022becomesIssued Mar 2022, expires Mar 20251/19 - 6/21becomes01/2019 - 06/2021
Quick checklist
- Every entry has a month and a year, never a year alone
- No day numbers anywhere
- One format across the entire document, work history and education included
- Four-digit years, two-digit numeric months
Presentfor ongoing roles, never a trailing dash- Plain hyphen with spaces as the separator
- Month names in the language of the application, or numeric to stay neutral
- No seasons, quarters or approximations
- Dates in the body text, never in headers, footers, text boxes, tables or sidebars
- Certifications carry an issue date and an expiry date when applicable
Ten minutes of cleanup here changes the number the ATS attaches to your profile. That number is what the recruiter filters on before anyone reads a word you wrote.