Correction, 17 October 2026. Earlier versions of this article said we had tested 12 ChatGPT resumes and that 9 of them "tripped Workday's density penalty above 1.5%", that job titles are "weighted 5-10× higher" in most ATS, and that following the advice would "outrank 90% of candidates". We have no records of that test and no source for the penalty or the figures, so we have removed them. The advice now rests on how keyword searches and match checks work and on what a recruiter sees when they read the page.
Career advice tells you to "match keywords from the job description." But how many? How often? Stuffing reads badly to the recruiter and adds nothing, yet under-using keywords leaves you invisible when the recruiter searches the applicant pool. Here's a practical middle ground, and why most candidates get it wrong in both directions.
What a keyword match can look at
ATS vendors don't publish how their search and matching features score a resume, and employers set them up differently. But keyword matching in general, whether a recruiter's search or a match-score feature, can take into account:
- Keyword presence: does the term appear at all?
- Keyword placement: is it in the job title, summary, or buried in a paragraph?
- Keyword frequency: 1× vs 5×, but with diminishing returns
- Keyword context: is the surrounding text natural sentence structure?
- Repetition: the same word repeated unnaturally close together, which a recruiter spots instantly
The 2-3 mention rule
For most keywords, 2-3 mentions across a resume is the sweet spot:
- 1× in your professional summary (top of the resume, read first)
- 1-2× in your most recent job description (context + recency)
- 1× in your skills section (clean keyword extraction)
That's 3-4 total mentions. Beyond that, additional mentions add little value and start to read as stuffing.
Watch out if you used ChatGPT or another AI tool to generate your resume. Asked for "keyword-rich" content, AI tools can repeat the same skill or tool far more often than a person would. In our October 2026 test of ChatGPT and Claude resumes, plain AI resumes parsed cleanly in our scanner; that test looked at whether the text survives extraction, not at repetition. So the editing pass is still yours: if you're starting from AI output, cut repeats aggressively.
What "stuffing" actually looks like
Stuffed (avoid):
"Experienced Project Manager with project management experience. Managed projects as a project manager. Strong project management background with 10+ years of project management experience in project-driven environments."
The word "project" appears 8 times in 2 lines. A recruiter sees this instantly and reads it as padding. Whether a given system scores the repetition is not public, but nothing about it helps you: one clear mention matches a search just as well.
Natural (target):
"Project Manager with 10+ years leading cross-functional teams across SaaS and fintech. Delivered $20M+ in technology projects on schedule and under budget. PMP-certified, Agile and Waterfall trained."
Same keyword density area (project, project management) covered, but written like a human. The parser extracts the same keywords, and the recruiter reads a real summary.
Section-by-section keyword strategy
Professional Summary (top of resume, 30-60 words)
Lead with 3-5 of the highest-priority keywords from the JD. These should feel natural, not listed.
Job Titles
If the JD says "Senior Financial Analyst, FP&A," your job title at the previous employer (if accurate) should reflect that exact wording: "Senior Financial Analyst, FP&A & M&A Integration." Recruiters often search the applicant pool by job title, so an accurate title in the posting's wording helps you surface.
Bullets
Each bullet should naturally contain 1 relevant keyword. Don't force it. If the bullet doesn't naturally fit a keyword, leave it. Stuffed bullets are obvious to recruiters.
Skills section
Comma-separated list. Includes ALL the technical skills, tools, and methodologies relevant to the role. This section is the cleanest for keyword matching because each item is parsed as a discrete keyword.
Acronym strategy
Spell out acronyms once, then use the abbreviation. This captures both keyword variants:
- "Led FP&A (Financial Planning & Analysis) for the MEA region. FP&A team grew from 3 to 8 over 18 months."
- "Designed M&A (mergers and acquisitions) integration framework. Led 3 M&A integrations to completion."
This single pattern protects against both literal-match parsers (look for exact "FP&A") and semantic parsers (look for "Financial Planning"). The expansion + acronym combination is the safest approach.
Keywords to extract from any JD
Use our free ATS Keyword Extractor to pull weighted keywords from any job description. Then prioritize:
- Required hard skills (programming languages, certifications, tools mentioned in "Requirements" section)
- Required soft skills ("stakeholder management," "cross-functional leadership")
- Industry/domain keywords ("SaaS," "fintech," "B2B")
- Methodology keywords ("Agile," "OKRs," "Six Sigma")
- Outcome keywords ("revenue growth," "cost reduction," "customer retention")
How to test if you're stuffed
Read your resume aloud. If any sentence sounds robotic or feels like you're reaching for the same word, it's probably stuffed. Natural-sounding bullets pass both ATS and human review.
Better yet, run it through ATS Verification. Our parser shows you which keywords actually got extracted vs your original. Often candidates are surprised that keywords they thought were "everywhere" didn't extract at all (because they were stuffed in tables or hidden text). And keywords they thought were missing actually came through cleanly.
The honest answer
Resume keyword optimization isn't about hitting a magic density number. It's about three things:
- Coverage: the most important 10-15 keywords from the JD appear at least once
- Placement: top keywords appear in titles, summary, and recent role bullets
- Naturalness: reads like a human wrote it for a human
Hit those three and you've done what matters, without ever counting density percentages.
→ Run a free ATS scan to see which keywords actually parsed from your resume