Skip to main content

Guides

ATS-friendly resume formatting: what breaks parsers, with concrete do/don't

By Agshin Yolchuyev · Updated July 2026

You can lose an application on formatting alone. Not because a recruiter disliked your design — because the applicant tracking system's parser turned your carefully arranged two-column layout into scrambled text, filed half your skills under the wrong job, and dropped your phone number entirely. Content that a machine can't extract functionally doesn't exist.

This guide is the concrete do/don't list: what breaks parsers, why it breaks them, and what to use instead. (For the bigger picture of what happens after the parse — matching and ranking — see What is an ATS and how it reads your resume.)

Columns: the biggest single killer

Most parsers read a document's text in its internal structural order, which for many two-column templates means reading straight across the page or in whatever order the design tool happened to place the text frames. A sidebar of skills next to your work history can come out as “React · Node.js 2019–2022 AWS Senior Developer” — dates fused to skills, titles orphaned from employers. The information is all technically present and all wrongly attributed.

Do: single column, top to bottom. Don't: sidebars, two-column bodies, or “creative” layouts from design marketplaces — they're built to impress eyes, not parsers.

Tables, text boxes, headers and footers

Tables are how many templates fake columns, and they fail the same way: cell contents get read in unpredictable order or merged across rows. Skills matrices with dot-ratings are doubly bad — the dots are graphics, so the parser may see five skill names and no indication of anything else, or nothing at all.

Text boxes (floating frames in Word or design tools) are frequently skipped outright — some converters simply don't include floating objects in extracted text.

Headers and footers are the sneakiest failure: putting your name, email, and phone in the document header looks elegant, but several parsers exclude header/footer content by design. Result: a perfectly parsed resume with no way to contact you. Keep contact details in the document body, at the top.

Fonts, symbols, and graphics

  • Fonts: stick to widely available standards — Arial, Calibri, Helvetica, Georgia, Times, Garamond. Exotic display fonts can embed as outlines or subset weirdly, turning text into shapes. If a human can select and copy the text, a parser usually can too.
  • Ligatures and special characters: some rendering pipelines turn “ffi” into a single ligature glyph that extracts as garbage. Standard fonts at normal settings are safe; decorative typesetting is not.
  • Bullets: plain round or square bullets and hyphens parse everywhere. Arrows, checkmarks, stars, and emoji can extract as junk characters — or worse, split sentences.
  • Icons instead of words: a phone icon followed by a number leaves the parser a number with no label. Write “Phone:” and “Email:”. Boring wins.
  • Photos, logos, charts, skill bars: parsers extract text, not pixels. Anything communicated only graphically is invisible. (In many markets a photo also raises compliance problems — some systems strip them deliberately.)

PDF vs DOCX — and the one PDF rule that matters

The eternal question has a boring answer: both are fine in 2026 for any mainstream ATS, and PDF has the advantage of rendering identically everywhere. The rule that actually matters: the PDF must contain real text, not an image of text. A scanned resume, or one exported as a flattened image from a design tool, contains zero extractable characters. The test takes five seconds: open the PDF, try to select a sentence with your cursor. If you can't select it, a parser can't read it.

If a posting explicitly requests DOCX, send DOCX. Otherwise, a text-based, single-column PDF is the safest default.

Section headings, dates, and structure

  • Use standard headings: “Experience” (or “Work Experience”), “Education”, “Skills”, “Certifications”. Parsers key on these to know which extractor to run. “My Journey” and “Where I've Made an Impact” read as personality to you and as noise to a machine.
  • Keep the entry pattern consistent: Title, Company, Location, Dates — same order for every role. Parsers infer the pattern from repetition.
  • Write dates conventionally: “Mar 2021 – Present” or “03/2021 – 08/2023”. Seasons (“Spring 2021”) and bare durations (“2 years”) break the experience calculation many systems run.
  • Spell out acronyms once: “Search Engine Optimization (SEO)” matches postings that use either form.
  • Name the file sensibly: “Firstname-Lastname-CV.pdf”. Not “final_v7_REAL.pdf” — some systems display the filename to recruiters.

The quick reference

Do

Single column · standard headings · standard fonts · plain bullets · contact info in the body · text-based PDF or DOCX · consistent Title/Company/Dates pattern · conventional date formats · acronyms spelled out once

Don't

Columns and sidebars · tables and text boxes · content in headers/footers · photos, icons, logos, skill bars · decorative fonts and symbols · scanned or image-exported PDFs · creative section names · white-text keyword stuffing

Test it, don't guess

You don't have to take any of this on faith. The copy-paste test (select all → paste into a plain text editor) shows you the raw extraction order in ten seconds. For the full picture, the free ATS checker parses your actual file the way an ATS would and returns a 0–100 score with the specific fixes ranked by impact. And if your current resume is one of the beautiful-but-unparseable ones, you don't need to retype it — AdaptMyCV can parse what's recoverable and re-render your content in a clean, ATS-safe template, tailored to the job you're applying for, with a free preview before you pay for anything.

Format is the cheapest win in the entire job search: one afternoon of boring layout decisions, and every application you send afterwards arrives machine-readable.

Check your ATS score — free

Free score in ~30 seconds. Adapting a CV to a job is free to run and preview — you only pay $4 to download.