Skip to main content

How to Fix Your Resume for an ATS Scan

A practical guide to making your resume readable by applicant tracking systems without keyword stuffing or hiding weak experience.

By Vikas D12 min readUpdated 13 September 2026

Software engineer with ~6 years experience, MSc Computer Science (in progress), London

Connect on LinkedIn
resumesjob searchapplicant tracking systems
On this page

The resume scan is a readability test before it is a persuasion test

An ATS-friendly resume is one that a recruiting system can parse into the right fields and that a recruiter can still skim quickly afterward. The safest fix is not keyword stuffing. It is a clean one-column resume, standard section headings, role-matched language from the job description, and achievement bullets that prove the keywords belong to you.

Short answer:

  • Use a simple reverse-chronological layout unless the employer asks for a different format.
  • Put your name, email, location and links in the main body, not a header or footer.
  • Use standard headings such as Summary, Skills, Experience, Projects and Education.
  • Match the job description's important terms only where your experience honestly supports them.
  • Keep the file text-selectable, then test the parsed text before applying.

The useful mental shift is to stop treating the scan as a secret boss fight. Applicant tracking systems are messy intake systems. They collect applications, parse resumes, attach fields to candidate profiles, let recruiters search and filter, and preserve the application record. Some employers configure strict knockout questions or keyword searches. Others simply review candidates inside the system in a normal workflow. You cannot know the exact configuration from the outside, so the best strategy is to remove avoidable parsing risk and make the first human read easier.

University career centers give remarkably consistent advice here. MIT warns candidates to be careful with images, text boxes, tables and fancy graphics because those elements may be distorted, ignored or erased by a system. Santa Clara University's career center gives similar guidance on avoiding headers, footers, unusual fonts and non-standard headings. UIC's ATS handout stresses simple formatting and using job-description language in context, not as a naked list. Harvard's resume guidance pushes specific, active, factual language rather than flowery claims. Those are not hacks. They are the basics done cleanly.

The goal is not to trick the screen. The goal is to make the strongest true version of your experience easy to parse, easy to search and easy to believe.

What the system is trying to read

Most ATS advice starts with layout, but the deeper question is what the software is trying to turn your document into. A resume upload usually becomes structured data: name, contact details, recent employers, job titles, dates, education, skills, certifications and sometimes a searchable text body. If the parser mistakes your email for a section title, drops your current employer because it sat in a header, or reads a two-column page in the wrong order, your application starts with noise.

That does not mean every employer rejects every imperfect file. It means a messy file forces the recruiter to work harder, and in a large applicant pool that is a bad bet. The scan is one layer in a wider workflow. Recruiters may search for "React", "Kubernetes", "Snowflake", "customer discovery", "CPA" or any other term the role requires. Hiring managers may later read the same document as a normal PDF. Your resume therefore has to satisfy two audiences at once: software that needs predictable text, and a person who needs proof.

The readable structure is straightforward:

Resume areaWhat the scan needsWhat the recruiter needs
HeaderPlain text contact details in the bodyFast way to contact and check links
SummaryRole and level cluesA short positioning line, not a biography
SkillsExact tools and conceptsA quick match to must-have requirements
ExperienceTitles, employers, dates and bulletsEvidence of impact and scope
ProjectsNames, tools and outcomesProof when work history is thin
EducationDegree, institution and date if relevantCredential context

The order matters because many systems and recruiters expect recent experience first. A highly designed page with a side rail, icons, progress bars and hidden text may look polished, but it raises parsing risk and often weakens the human read. The most robust resume is usually boring in layout and sharp in content.

Fix the file before you fix the words

Start with the document shell. This is the part candidates underestimate because it feels too basic, yet it is the source of many scan problems.

Use a one-column layout. Avoid tables, text boxes, columns, image blocks, icons, logos, charts and decorative dividers. Keep dates on the same line as the company or title if you can, but do not force them into a table. A plain tab stop or right-aligned text is usually safer than a two-column structure.

Use common fonts and ordinary text sizes. Santa Clara's ATS formatting page recommends common fonts such as Arial, Times New Roman or Calibri and body text around 10 to 12 points. You do not need to worship one font. You do need a font that renders predictably.

Keep contact information in the main document body. Do not rely on Word's header/footer feature for your name, email, phone, location or portfolio link. Several career center guides warn that headers and footers may be missed or handled poorly. The top of page one can still look like a header visually. It just should be normal document text.

Use standard headings. "Experience" is better than "Where I Made an Impact". "Skills" is better than "Toolkit". Creative labels create a small risk for no real upside. You can show personality in the bullets and projects.

Check the file type instructions on the job posting. If the employer asks for PDF, send a text-based PDF, not a scanned image. If the form accepts Word and PDF with no preference, a clean DOCX is often a safe choice, especially when you are worried about parsing. The key is not the extension alone. The key is whether the text can be selected, copied and read in the right order.

Here is the first-pass triage table I use when reviewing a resume before an application:

SymptomLikely riskFast repair
Contact details disappear when copiedHeader/footer or image textRebuild as body text at the top
Skills read in a strange orderColumns or tablesConvert to simple bullets or comma-separated text
Dates attach to the wrong jobsSide rail or uneven spacingPut each role in a repeatable block
Fancy icons replace wordsDecorative glyphsUse plain link labels such as LinkedIn and GitHub
PDF text cannot be selectedScanned image exportExport from Word or Google Docs again

Do this before you spend an hour changing bullets. If the shell is broken, stronger language may never be read correctly.

Pull keywords from the job, then prove them

Keywords matter, but not in the crude way many resume tools imply. The point is not to repeat every noun twenty times. The point is to make sure the language in your resume matches the language a recruiter and hiring manager are likely to search for.

Start by marking the job description into three groups:

  • Must-have skills: the tools, methods, certifications or domain knowledge listed as required.
  • Scope words: owns, designs, leads, analyses, manages, mentors, supports, sells, improves.
  • Context terms: industry, product area, customer type, compliance requirement, geography or work mode.

Then map each term to evidence you can honestly claim. If the advert asks for "SQL", "cohort analysis" and "stakeholder communication", a data analyst resume should not just list those terms under Skills. It should include bullets where those terms are visible in context:

text
Built SQL cohort analysis for trial-to-paid conversion, giving product and finance a shared weekly retention view.
Presented churn drivers to sales and customer-success stakeholders, leading to a new renewal-risk handoff.

That style helps both audiences. The system can find SQL, cohort analysis and stakeholder terms. The recruiter can see that the candidate used them in real work. UIC's ATS handout makes the same core point: targeted keywords should appear in achievement-oriented bullets, not only as a skills dump.

Do not add skills you cannot discuss. A keyword may help you appear in a search, but an interviewer can expose a false claim in two minutes. If a requirement is adjacent to your experience rather than exact, use honest wording:

Job wordingIf you have itIf you are adjacent
Kubernetes"Deployed services on Kubernetes""Supported Dockerized services deployed by a platform team on Kubernetes"
Salesforce"Built Salesforce dashboards""Managed CRM reporting; ramping on Salesforce reports"
Python"Wrote Python data-cleaning scripts""Used SQL daily and small Python scripts for CSV cleanup"
B2B SaaS"Owned onboarding for B2B SaaS customers""Owned onboarding for subscription customers in a regulated product"

Honesty does not weaken the resume. It makes the match credible. A recruiter can work with a near match when the evidence is clear. They cannot work with invented expertise.

Worked example: Nadia repairs a resume that looks good but parses poorly

Nadia is a product analyst applying for a growth analyst role at a subscription software company. Her original resume looks polished: two columns, a left rail with skills, small icons next to contact links and a "Selected wins" section. The problem is that the application form keeps misreading it. Her email sometimes drops, the skills rail copies after the education section, and the role asks for "SQL cohort analysis", while her resume says "data insights" six times.

Here is the job signal she needs to match:

text
We need a growth analyst who can build SQL-based cohort and funnel analysis,
partner with product managers, explain retention drivers, and turn experiments
into decisions for a B2B subscription product.

Her weak bullet:

text
Provided data insights to product teams and helped improve user engagement.

That bullet is too vague for the scan and too soft for the human read. It has no SQL, no cohort, no funnel, no retention, no decision and no result.

Her repaired bullet:

text
Built SQL cohort and funnel analysis for a B2B subscription onboarding flow, showing that users who completed workspace setup in week one retained 18 percentage points higher at day 60; product used the readout to move setup prompts into the first session.

Now the keyword match is legitimate because the terms sit inside a real achievement. The bullet also answers the recruiter's silent question: "Did this person merely report numbers, or did their analysis change a product decision?"

Nadia then repairs the file:

BeforeAfterWhy it helps
Two-column design with skills in a left railOne-column reverse-chronological pageReading order becomes predictable
Icons for email, portfolio and LinkedInPlain text labels and URLsContact details survive parsing
"Selected wins" heading"Experience" and "Projects"Standard headings reduce ambiguity
Generic "data insights" phrasingSQL, cohort, funnel, retention and experiment terms in bulletsSearch terms are tied to proof
One resume for every roleSaved growth-analyst versionTailoring is focused, not dishonest

The key lesson is that Nadia does not inflate her background. She translates the work she actually did into the language of the role. That is the ethical version of ATS optimization.

A small coverage check you can run by eye

You do not need a perfect score. You need to catch missing must-haves before you apply. Here is a simple JavaScript check that compares important job terms with resume text. It is intentionally blunt: it finds words and short phrases, then tells you what is missing so you can decide whether the gap is real.

js
function atsCoverage(jobTerms, resumeText) {
  const text = resumeText.toLowerCase();
  const hits = [];
  const misses = [];

  for (const term of jobTerms) {
    const normalized = term.toLowerCase();
    if (text.includes(normalized)) {
      hits.push(term);
    } else {
      misses.push(term);
    }
  }

  return {
    coverage: `${hits.length}/${jobTerms.length}`,
    hits,
    misses,
    action: misses.length === 0 ? "apply after proofreading" : "add honest evidence or accept the gap",
  };
}

atsCoverage(
  ["SQL", "cohort analysis", "retention", "product managers"],
  "Built SQL cohort analysis for onboarding retention and presented the readout to product managers."
);
// { coverage: "4/4", hits: ["SQL", "cohort analysis", "retention", "product managers"], misses: [], action: "apply after proofreading" }

Use this logic manually if you prefer. Make a list of eight to twelve important terms from the job description, then highlight where each appears in your resume. If a required term is missing but you do have the experience, rewrite a real bullet. If the term is missing because you do not have the experience, do not fake it. Decide whether the rest of your application is strong enough to apply anyway.

What not to do when you are nervous

Most bad ATS advice comes from understandable anxiety. People apply for a hundred roles, hear nothing, and start looking for a magic fix. The dangerous fixes share one pattern: they optimize for a scan while damaging the person-read.

Avoid hidden keywords. White text, tiny text, repeated terms pasted into margins and irrelevant company names are not clever. They are trust-destroying if seen, and they do nothing to help you in an interview. A resume should be defensible line by line.

Avoid overmatching the job description. If the posting says "owns complex stakeholder relationships", do not paste that exact phrase into every role. Convert it into evidence. "Partnered with support, finance and product to reduce refund-review time from five days to two" is stronger and more believable.

Avoid a skills section that outruns your experience. A long wall of tools can create false positives. If you list Rust, Terraform, Snowflake, Figma, Salesforce and Kubernetes, the reader expects at least some of them to appear in your work history. Keep the skills section tight and current.

Avoid formatting that serves only the screenshot. A resume is not a poster. If a design choice makes the PDF prettier but the copied text worse, remove it.

Avoid changing the truth to win a scanner. Tailoring means choosing the most relevant true evidence for a role. It does not mean inventing a skill, title, metric, employer or credential.

Check the resume the way a recruiter will experience it

Before applying, run a plain-text inspection:

  1. Copy all text from the resume into a blank text editor.
  2. Read the first twenty lines. Your name, contact details and current role should still make sense.
  3. Search for the five most important job terms. Each should appear in a truthful place.
  4. Check whether each role block still has employer, title, dates and bullets in the right order.
  5. Open the file on a phone. A recruiter may skim it there.
  6. Upload it to a checker such as the Ace Hired ATS resume checker for a second pass on structure and match.

The copy-paste test is underrated. If the pasted text is unreadable, the uploaded file is probably fragile. If the pasted text is clean, you have reduced a large share of parsing risk.

Then do a human-read test. Give yourself thirty seconds and answer:

  • What role is this person targeting?
  • What are their strongest three proofs?
  • Which requirement from the job description is most clearly covered?
  • Which requirement is still weak?

If you cannot answer those questions quickly, the resume may be parseable but still unfocused. Use the JD resume matcher to compare against the role, then use resume templates if the layout itself needs rebuilding.

When the problem is not the ATS

Sometimes the resume is fine and the search strategy is the problem. If you are applying to roles where you meet only half the must-haves, the cleanest document in the world will not fix the mismatch. If you apply days after a popular posting opens, the pool may already be crowded. If your resume targets "software engineer" broadly while the advert wants frontend performance work, the issue is focus, not parsing.

Use the ATS pass as one part of a bigger application system:

ProblemATS fixBigger fix
Resume does not parseSimplify layoutRebuild the document shell
Resume lacks role termsAdd truthful keyword evidenceRead the job description more carefully
Resume has role terms but no proofRewrite bullets around outcomesGather metrics and scope from past work
Many applications, no callsCheck match qualityApply earlier, target narrower roles, add referrals
Calls but no offersResume is not the bottleneckPrepare interview stories and role-specific rounds

The last row matters. A resume can get you into the conversation, but it cannot carry the interview. Once you are getting calls, move your energy to prep. Decode the posting with how to read a job description, then tighten your opening answer with tell me about yourself.

Sources

FAQ

Is a PDF or DOCX better for an ATS resume?

Follow the employer's instructions first. If the posting asks for PDF, send a text-based PDF exported from Word or Google Docs. If both PDF and DOCX are accepted and you are worried about parsing, a simple DOCX is often a conservative choice. Avoid scanned image PDFs.

Do I need a different resume for every job?

You need a targeted version for each role type, not a fake rewrite for every posting. A backend engineer applying to payments roles may have one payments-focused version and one platform-focused version. For a specific high-value role, tune the top bullets and skills list to match the actual job description.

How many keywords should I include?

Use the important terms that describe your real experience. For most resumes, eight to twelve must-have terms from the job description are enough to check coverage. More is not automatically better. Keywords need context inside bullets, projects or skills.

Are tables always bad on resumes?

Tables increase parsing risk, especially when they create multiple reading columns. A tiny table may look fine to a person, but if the copied text comes out in the wrong order, rebuild it as plain bullets or simple lines.

Should I include soft skills keywords?

Only when you can prove them. "Communication" alone is weak. "Presented retention findings to product and finance, leading to a weekly renewal-risk review" proves communication through an outcome.

Can an ATS reject me before a recruiter reads my resume?

Some employers configure knockout questions, minimum requirements or search filters. Others use the system mainly to collect and organize applications. Since you cannot know the setup, make the file easy to parse and make the match obvious without trying to game a hidden score.

What if my experience is real but uses different words than the posting?

Translate honestly. If your company says "customer analytics" and the posting says "cohort analysis", use the common market term if it accurately describes the work. Do not keep internal labels that an outside recruiter will not search for.

What is the fastest ATS resume fix?

Copy the resume into plain text, repair anything that reads out of order, then add the job's most important terms into truthful achievement bullets. That combination fixes more applications than a fancy redesign.

Next steps for a cleaner application

Refresh role-specific skills
Recommended
Short, focused courses on the exact frameworks and tools the role uses day-to-day.
Try LinkedIn Learning

An external resource we recommend. LinkedIn Learning is not affiliated with us and we earn nothing from this link.

Continue your prep

Pair this guide with role-specific question sets and sample answer outlines.