Resume Tips · 10 min read · Published 2026-08-27

How to Write the Work Experience Section (So the Software Reads It Correctly)

The experience section is where most resume parsing goes wrong: dates detached from jobs, promotions read as one role, contract work misread as job-hopping. From 4,585 parsed resumes, the layouts that survive and the ones that quietly break.

How to write the work experience section so an applicant tracking system reads it correctly. A parser finds a job by pattern, not meaning: a title-like line, an employer-like line and a date range sitting close together. Put the title and dates on one line with a tab stop, the employer on the line below, and give every role its own dates so promotions and internal moves are recognised. Dates in a separate column detach from their jobs. Ambiguous formats like 2019-21 and Summer 2022 appear in 8.7 percent of scanned resumes, and glued em dashes in 18.1 percent. Reverse chronological order only: functional layouts remove the grouping parsers depend on.

Almost every piece of resume advice treats the experience section as a writing problem. Pick strong verbs, add numbers, keep it tight. All true, and all downstream of something nobody mentions: whether the software can work out where one job ends and the next begins. I run a resume parser, I have put 4,585 real resumes through it, and the experience section is where most of the damage happens. Here is what actually breaks, and the structure that survives.

Key takeaways
  • A parser finds your jobs by pattern, not by meaning. It looks for a title-like line, an employer-like line, and a date range close together. Break that grouping and the job disappears as a unit.
  • Every role needs its own dates on its own line. This is the single rule that fixes promotions, internal moves and contract work.
  • Dates in a separate column detach from their jobs. Right-aligned on the title line is safe. A second column is not.
  • Ambiguous date formats appear in 8.7 percent of resumes I scan. "2019-21" and "Summer 2022" are the usual culprits.
  • Reverse chronological, always. Functional resumes remove the structure the parser depends on entirely.

How the software actually finds a job

An applicant tracking system does not understand employment. It has no concept of a career. What it has is a pattern matcher looking for three things sitting near each other in the text: something that looks like a job title, something that looks like an employer, and something that looks like a date range. When it finds those three close together, it records one job and attaches the bullets that follow.

That is the whole mechanism, and every failure below is a variation of the same thing: the three pieces got separated, or one of them never made it into the text at all.

The structure that works

Plain, boring, and it parses in every engine I have tested:

PROFESSIONAL EXPERIENCE

Senior Financial Analyst                    Mar 2021 to Present
Emirates Global Aluminium, Dubai, UAE
• Bullet
• Bullet

Financial Analyst                           Jun 2018 to Feb 2021
Majid Al Futtaim, Dubai, UAE
• Bullet
• Bullet

Title on its own line with the dates right-aligned using a tab stop. Employer and location on the next line. Bullets underneath. One column, full width, nothing in a table.

The date sits on the same line as the title, which matters more than it looks. A tab stop keeps them on one line of text, so the parser reads "Senior Financial Analyst Mar 2021 to Present" and keeps them together. Put the dates in a separate narrow column and the parser reads the whole date column first, then the whole job column, and every date ends up attached to the wrong role. That is the same reading-order failure behind two-column resumes, and it shows up in 10.9 percent of the files I scan.

Multiple roles at the same company

This was the most asked question when I posted my parsing data publicly, and the advice online is genuinely contradictory. Here is what works:

Emirates Global Aluminium, Dubai, UAE          Jan 2019 to Present

Senior Financial Analyst                       Mar 2021 to Present
• Bullet
• Bullet

Financial Analyst                              Jan 2019 to Feb 2021
• Bullet

Company once with the overall span, then each title with its own dates. Those inner date ranges are not decoration. They are what tells the parser a new role has started. Without them, some engines read three promotions as one long job and your progression vanishes; others read the titles as bullets.

Some systems will record this as three jobs at one employer, others as one job with three titles. Both are fine. Both are searchable. What is not fine is a title with no dates next to it.

Give the current role most of the bullets and let the earlier titles have a line or two each. The promotion story is worth more than the space it costs, and it is one of the few things on a resume that cannot be faked.

Contract, freelance and agency work

Contractors get read as job-hoppers because each engagement looks like a separate short job. Group them under one employer line instead:

Independent Consultant, Dubai, UAE             Feb 2020 to Present
• Bullet describing the work across clients
• Bullet

Selected clients: Company A, Company B, Company C

"Independent Consultant" or "Freelance Finance Consultant" gives the parser an employer to attach the role to. Listing clients as a plain sentence rather than as separate job blocks stops each one being counted as its own three-month position. Agency workers should name the agency as the employer and the placement in the bullets.

Dates: the small format that causes real damage

Ambiguous dates appear in 8.7 percent of the resumes I scan. The failures are always the same handful:

  • "2019-21" — the parser may read a single year, or a range ending in year 21.
  • "Summer 2022" — no month it can map.
  • "03/04/2021" — March or April, depending on which side of the Atlantic the software was written on.
  • A missing end date on your current role, which reads as a job that ended at an unknown time.

Use Mon YYYY to Mon YYYY, spelled with letters, and write "Present" for the current role. It is unglamorous and it never misreads. More patterns in the date format guide.

One related trap: an em dash between the dates, glued to the words on either side. "Mar 2021—Present" can tokenize as one word. Put spaces around it or use "to". Glued dashes turn up in 18.1 percent of resumes.

Job titles: describe the job, not the company's job architecture

Internal titles are a real problem, and it is not the parser's fault. If your company calls you "Associate Director, Band 4" or "Specialist II", a recruiter searching for "Financial Analyst" will not find you, because your title does not contain those words.

The honest fix is not to invent a title. It is to give both:

Financial Analyst (internal title: Specialist II)

Or put the recognisable function in the first bullet. Either way the searchable words exist somewhere in your experience section without you claiming a role you never held. We keep titles bold and one point larger than the body text in the resumes we rebuild, for exactly this reason: it is the line both the software and the human read first.

Order: reverse chronological, and nothing else

Most recent role first, working backwards. Not because it is a convention, but because the entire parsing model assumes it. A functional resume that groups achievements under skill headings and lists employers separately at the bottom removes the title-employer-date grouping completely. The software finds no jobs at all, or finds employers with no roles attached.

If you are changing careers or covering a gap, the answer is not a functional layout. It is a reverse chronological layout with a strong summary at the top doing the reframing, which is covered in chronological versus functional versus combination and, for gaps specifically, in the employment gap guide.

How far back, and how much detail

Ten to fifteen years of detail is the working rule. Older roles can be compressed into a short "Earlier experience" block with title, employer and years, no bullets. That keeps the dates continuous, which matters, without spending half a page on work from 2004. The longer version is in how far back should a resume go.

Bullets: three to six for current and recent roles, one or two for older ones. Each one an action and an outcome, ideally with a number. That part is a writing problem rather than a parsing one, and it is covered in quantifying achievements and STAR versus XYZ bullets.

The thirty-second check

Open your resume, select all, copy, and paste it into Notepad or TextEdit. Then read only the experience section and ask three questions.

  1. Is every job title still sitting next to its own dates?
  2. Is every employer still directly under the title it belongs to?
  3. Did any bullet end up under the wrong job?

If all three are yes, the software will find your career the way you wrote it. If any date has drifted or any employer has separated from its title, that is what a recruiter's database will contain, and no amount of rewriting the bullets will fix it. The copy-paste test explains what else to look for, and the free scan shows the extracted text next to your original with each failure named.

Every percentage in this piece comes from a live counter that updates each time someone runs a scan. It read 4,585 resumes when this was written and it will read something different when you check it.

Run the free scan and read your own experience section the way the software does

Frequently asked questions

How do I list multiple positions at the same company on a resume?

Put the company once with the overall date span, then list each title underneath with its own date range and its own bullets. The inner dates matter: they are what tells an applicant tracking system that a new role has started. Without them, some parsers merge every promotion into a single long job and your progression disappears.

Should dates go in a separate column on a resume?

No. A separate date column is a two-column layout, and parsers reconstruct reading order from position, so they tend to read the entire date column before the job column. Every date then attaches to the wrong role. Right-align the dates on the same line as the job title using a tab stop instead.

What date format is safest for an ATS?

Mon YYYY to Mon YYYY with the month spelled in letters, for example Mar 2021 to Present. Avoid compressed ranges like 2019-21, seasonal dates like Summer 2022, and all-numeric formats like 03/04/2021 which parse differently depending on whether the software expects day-month or month-day. Ambiguous dates appear in 8.7 percent of resumes scanned.

How do I list freelance or contract work without looking like a job hopper?

Group the engagements under one employer line such as Independent Consultant with a single continuous date range, describe the work in bullets, and name clients in a plain sentence rather than as separate job blocks. Listing each engagement as its own job makes a parser record several short positions.

Is a functional resume bad for ATS?

Yes, for parsing specifically. A functional layout groups achievements under skill headings and separates employers from roles, which removes the title-employer-date grouping parsers depend on. The system may record no jobs at all. Use reverse chronological order and let a strong summary at the top do the reframing.

Share:LinkedInX (Twitter)

Free tools that pair with this article

Bullet Rewriter
Score any bullet 0-100. STAR / XYZ / PAR rewrites.
Keyword Extractor
Pull top weighted keywords from any JD.
Cover Letter Checker
Score length, weak phrases, and JD match.
Resume Length Checker
Word count, page estimate, trim/expand verdict.
Related links

Run your resume through the ATS, free

See exactly what an ATS reads (or doesn't). Takes just seconds.

Scan my resume free →
Syed Muhammad Tanzeel Hayder
Written by
Syed Muhammad Tanzeel Hayder
Founder, ATS Verification · ACCA

I built ATS Verification. I'm an ACCA-qualified finance leader, and I've sat on the hiring side, screening and rejecting resumes, so I know how fast a real filter moves. I also ran the MBA admissions gauntlet myself (five admits across two cycles, now heading to London Business School), so I've stared at my own resume the way an adcom and an ATS both would. I got tired of tools that invent an “ATS score” out of 100 when no real ATS publishes one, so I built a scanner that shows you the exact text a system actually extracts from your file. Everything I write here comes from testing real resumes against the parsing engines behind Workday, Greenhouse, Lever, Taleo and iCIMS. Receipts, not made-up grades.

Published August 27, 2026·10 min read
Try the free ATS scanner →About the founderQuoted in College Recruiter

Related articles

Scan my resume, free →