Resume keywords: how to find and use the ones ATS actually scans for
Jorge Sánchez·18. august 2026
Recruiter Boolean searches decide which resumes surface — and they're built from the JD, not your creativity. A short method for extracting the right terms and where to place them without stuffing.
The reason keyword stuffing doesn't work is the reason keyword extraction does: ATS relevance scoring looks for terms in context. A skill named in a bullet that describes a shipped project scores higher than the same skill named alone in a comma-separated list.
The 5-step extraction below is what Emplirao's CV analysis automates — paste any JD and get a ranked keyword list with per-bullet placement suggestions in seconds.
Extract keywords automaticallyThe 5-step extraction method
- Pull the JD into a plain text editor. Strip everything before "About the role" and after "About us" / "How we hire."
- Highlight every noun that's a technology, methodology, framework, certification, or industry (React, GraphQL, agile, PMP, SaaS, fintech). Ignore verbs — you'll get those from the XYZ bullet formula.
- Count repetitions. Keywords repeated 3+ times are almost certainly in the recruiter's Boolean; single-mentions are secondary.
- For each top-tier keyword, verify it appears in BOTH your Skills section AND at least one Experience bullet with context.
- For any top-tier keyword missing from your CV: either add it truthfully (you HAVE done this and just forgot to list it) or accept that this role isn't a match. Never fabricate.
Placement: where the keyword goes matters
| Location | Weight | Notes |
|---|---|---|
| Job title (current role) | Highest | "Senior Python Engineer" beats "Senior Engineer" for a Python role. |
| First bullet of most recent role | Very high | Recruiter scans this first — put the top-3 JD terms here. |
| Skills section | High for exact match | Boolean-search-friendly but low context weight. Pair with an in-bullet mention. |
| Later bullets / older roles | Medium | Recency drops weight. Move keywords up if the JD's top requirement is older experience. |
| Summary/objective statement | Low | Read by humans, ignored for keyword ranking in most parsers. |
The three mistakes to stop making
- White-text keyword stuffing at the bottom. Modern ATS strip formatting during parsing — you're just adding visible garbage that a human reviewer will see.
- Substituting close synonyms. "React.js" ≠ "React." Boolean queries want exact matches. Same for "Node.js" vs "Node," "PostgreSQL" vs "Postgres." When in doubt, use the JD's exact form.
- Keyword lists that don't match the role. Listing 40 technologies for a 5-year backend engineer signals inflation, not depth. Match your Skills section to the JD's implied stack.
AI-augmented ATS (Workday's new scoring layer, Ashby's embedding-based ranking) is more forgiving of near-synonyms than older systems. But exclusion from the ranked pool still happens at the keyword layer — so exact matches remain the safe default.
Once your keywords are in place, the next lever is bullet quality — the XYZ formula that turns generic experience into measurable impact.
Read the XYZ bullet formulaOr paste your CV and a target JD into the free keyword scanner and see exactly which JD keywords your resume covers vs which are missing — same tokenizer as this guide.
Scan for missing keywords