How Software Counts Your Years of Experience
When a system reports that you have six years of experience, that number was almost certainly computed by subtracting dates in your parsed work history — not read from the line in your summary that says “seven years of experience.” So the figure depends on whether every job got its dates attached correctly, and it can be wrong in ways that are invisible to you. Fixing it is a date-formatting exercise, not a rewrite.
The arithmetic
A parser ends up with a list of job entries, each ideally carrying a start date and an end date. Total experience is then derived from those ranges. Implementations vary, but the common approaches are:
- Span from earliest start to latest end. Simple, and it silently includes any gaps as though they were employment.
- Sum of individual ranges. Also simple, and it double-counts overlapping roles — two concurrent part-time jobs become twice the elapsed time.
- Union of the ranges. The most sensible, and the least common, because it requires the system to reason about overlap.
Nobody tells you which one you got. What you can control is the input, and the input is worth getting right, because this derived number frequently drives a filter: “at least five years,” “3–7 years,” “10+ years.”
Failure 1: a date that didn’t attach to a job
This is the big one, and it has nothing to do with dates being formatted oddly. It happens when reading order separates a date range from the job it belongs to.
What you wrote (two-column layout, dates in a narrow left rail):
2019 – 2023 Senior Analyst, Northwind Ltd.What extraction may produce:
2019 – 2023Senior Analyst, Northwind Ltd.2023 – presentLead Analyst, Calder Group
If those four lines arrive in a different order — dates in one block, titles in another — the parser has to guess which date belongs to which job, and it may get every pairing wrong or assign none of them. A role with no dates contributes nothing to the total.
The safe arrangement is boring: title, employer, and date range on the same line or on consecutive lines, in a single column, in the body text. See why your two-column resume breaks for what the sidebar does to this.
Failure 2: an unparseable date format
Most date recognition handles a wide range of forms, but some are genuinely ambiguous or unusual enough to fail.
Reliable:
Jan 2021 – Mar 2024January 2021 – March 202401/2021 – 03/20242021 – 2024Mar 2024 – Present
Riskier:
Spring 2021 – Winter 2024— seasons are not dates, and hemispheres disagree about which months they are.'21 – '24— a two-digit year with a leading apostrophe, which a smart-quotes setting may have turned into a curly character.2021 - 24— an abbreviated second year.since 2021— no end value at all, and “since” is not a range separator.3/21 – 8/24— parseable, but ambiguous between month/year and day/month.
The separator matters too. An en dash, a hyphen, and the word to are all commonly handled. A vertical bar, a slash, or a tilde between two dates is less so.
Use Present for a current role, spelled out, rather than leaving the end blank or writing now. A missing end date may be interpreted as a zero-length job.
Failure 3: dates in the wrong place entirely
Two habits sabotage the calculation without looking like date problems.
A date in a heading you invented. If your work history sits under Where I've Made a Difference and the parser didn’t recognise that as an experience heading, the entries underneath may never be classified as jobs at all — in which case their dates are not job dates, and they contribute nothing.
Dates on things that are not jobs. Certifications, courses, publications, and volunteer entries all carry dates. If those sit inside your experience section, they may be counted as employment. A 2015 next to a certification name, filed as a job, can quietly extend your parsed career by years — an inaccuracy in your favour that you did not intend and cannot see. Put non-employment dated items under their own recognisable headings.
Failure 4: the summary line that isn’t read
A great many resumes open with something like “Operations manager with eight years of experience in logistics.” That sentence is written for a human, and it works on a human.
It is not usually where a derived experience number comes from. Extraction is looking for job entries with date ranges; a prose claim in a summary paragraph is just text. So if your dated history only accounts for six years — because two roles lost their dates, or because early contract work is summarised in one line — the record may show six even though the document says eight.
The lesson is not to delete the summary. It is that the summary cannot repair a date problem. Both need to be right, and only one of them is machine-facing.
Contract, freelance, and concurrent work
These are where the arithmetic gets genuinely difficult, and where being explicit pays.
Freelance under one banner. If you contracted for six clients over four years, one entry with a single date range and the clients named in bullets parses cleanly. Six overlapping entries invite double-counting.
Independent Consultant — self-employed, Feb 2020 – Jan 2024Clients included a regional grocer, two logistics firms, and a public library system.
Concurrent part-time roles. There is no formatting trick that makes a summing implementation understand overlap. What you can do is state the reality in words inside the entry — two evenings per week alongside the role above — so any human reading the record sees the truth even if the number is inflated.
A promotion at the same employer. Two stacked entries under one employer heading, each with its own range, is normal and parses fine. Just make sure the ranges are contiguous and don’t overlap.
A gap. Leave it as a gap. Stretching a date range to close a hole is a factual misstatement about when you were employed, and it is the kind of thing employment verification checks directly.
What you can and cannot control
You cannot control which arithmetic a given employer’s system uses, or whether a “5+ years” filter is applied hard or as a hint. Systems differ by vendor, version, and configuration, and there is no universal answer.
You can control that every real job in your history arrives with a correct, recognisable, correctly attached date range. That is the whole of your influence over the number, and it is enough to fix most cases where a strong candidate reads as junior.
Check it
Copy your resume, paste it into a plain text editor, and read only the pasted version. For each job, ask: is there a date range immediately next to it, and is it the right one? Then do the arithmetic yourself — earliest start to latest end, and the sum of the ranges — and see whether either number would clear a filter you care about. If they wouldn’t, the problem is usually one job whose dates got orphaned. Testing your resume like a parser would covers the fuller procedure.