What ATS keywords actually are
ATS keywords are the specific words and phrases an Applicant Tracking System scans for when it scores your resume against a specific job. They fall into 5 categories: hard skills (Python, AWS, SEO), tools (Jira, Figma, HubSpot), methodologies (Agile, Scrum, MLOps), certifications (PMP, AWS SA, CPA), and role-specific action verbs (owned, architected, migrated, launched).
Every JD has ~15-25 of these terms embedded in it. Miss too many and the ATS ranks you below the recruiter's cutoff — usually the top 15-20% of applicants. Fixing keyword coverage is the single highest-leverage edit you can make per application.
The manual method — 5 minutes per JD
If you want to do it by hand and understand what you're looking for, this works.
Step 1: Read only the top 3 sections
80% of the keywords live in three places: the job title, the 'About the role' or 'Summary' paragraph, and the 'Requirements' or 'You have' bullet list. Skip the 'About us' section — it's boilerplate marketing.
Step 2: Highlight nouns and technical terms
Copy the JD into a note app. Highlight every noun that sounds technical or role-specific: 'Kubernetes', 'attribution modeling', 'Snowflake', 'B2B SaaS', 'quarterly OKRs'. These are your primary keywords.
Step 3: Mark repetition — repetition = priority
Any term appearing 2 or more times across the JD is a high-priority keyword. The writer wouldn't have repeated it if it wasn't important to them. Mark these with a star — they should definitely be in your resume.
Step 4: Capture the seniority verbs
The action verbs in a JD signal seniority level. 'Own', 'architect', 'lead', 'define' → senior. 'Support', 'contribute to', 'assist' → junior/mid. Your bullet points should use verbs matching the JD's seniority, or the ATS reads a mismatch.
Step 5: Skip the low-value fluff
Don't waste keyword slots on 'passionate', 'motivated', 'strong communicator', 'team player'. ATS weights these near zero because every candidate uses them. Focus on the specific, uncommon terms that actually differentiate signal.
The automated method — 30 seconds per JD
The manual method works but adds 5 minutes per application. For anything past ~10 applications a week, it burns you out. A keyword-gap analyzer reads the JD, compares against your resume, and returns the exact list of missing high-priority terms.
ResumeChecker (this site) does this free, with no signup. Paste your resume + the JD you're targeting, wait ~30 seconds, and you get: your ATS score for that specific role, the keywords the JD emphasizes, and which of them are missing from your resume. Add the ones you truly possess, submit, move on. That's the 30-second workflow.
How to actually add the keywords once you have the list
Getting the list is the easy part. Adding them without keyword-stuffing is where most candidates fail.
Rewrite the top skills section
Reorder your skills list so the JD-matched terms appear FIRST. ATS parsers weight position — the first 3-5 skills carry the most weight. Add any missing keywords you truly possess.
Weave keywords into 3-5 recent bullets
Look at your most recent job's bullet points. Rewrite each to include one JD keyword IN CONTEXT — not as a naked list. Example: instead of 'Built ML pipelines', write 'Built end-to-end MLOps pipelines using Kubeflow on GCP, reducing model retraining time from 12h to 2h'. Same fact, three keywords added naturally.
Include the acronym AND the expansion once
First time a term appears, include both forms: 'Applicant Tracking System (ATS)', 'Continuous Integration / Continuous Deployment (CI/CD)', 'Machine Learning Operations (MLOps)'. This future-proofs against ATS platforms that only match one variant.
The 60-80% rule (don't keyword-stuff)
Aim for 60-80% overlap between the JD's high-priority keywords and your resume. Under 50% = ATS ranks you low. Over 90% raises two problems: (a) modern ATS platforms detect artificial keyword density and penalize the entire resume, and (b) recruiters can smell a stuffed resume and downgrade you.
The sweet spot is 65-75%. High enough to land in the top 15%, low enough to still read like a human wrote it.
How to verify you got it right
Before submitting, run the updated resume + the JD through a keyword-gap tool one more time. You should see:
- ATS score jumped from wherever you started to 75+ (target: 80+)
- The missing-keywords list shrunk from 10-15 items to 3-5 (the true remaining gaps, not the added ones)
- No warnings about keyword density or repetition
If all three pass, submit and move on to the next application. If the score is still below 65 you likely have a structural problem (formatting, section headers) beyond keywords — see the ATS-Friendly Resume guide.