AI Resume ATS Checker — Score Your Resume Against Any Job Description
Paste your resume and a job description to see an ATS score, the keywords you're missing, format issues that confuse parsers, and the sections recruiters expect. Runs in your browser — no upload, no signup.
How it works
The score is a weighted average of four sub-scores grounded in published guidance from the major ATS vendors (Workday, Greenhouse, Lever) and an empirically-derived keyword-match threshold from the Jobscan 2024 ATS Benchmark Report. Everything happens in your browser. Nothing leaves your device.
- Keyword Match (40%). The job description is tokenised on whitespace and Unicode punctuation. Stop-words from the Snowball English list are dropped. Each surviving uni-, bi-, and tri-gram is scored by
frequency × n-gram bonus × lexicon bonus. The top 20 keywords are stem-matched against the resume using a light Porter2-style stemmer; for n-grams, the keyword counts as present if any constituent stem appears. Sub-score =min(100, round(match_pct × 130))— the 1.3× curve maps Jobscan's 77% practical floor to a full 100, and gives partial credit below. - Format Friendliness (25%). A starting 100 with deductions for the parsing hazards Greenhouse and Workday call out: lines over 200 characters (likely a pasted table row, −5 each, capped at −20), pipe-delimited tables (−10), emoji at line start (−5), tab characters used for column alignment within a single line (−10), ALL-CAPS headers without a preceding blank line (−3 each, capped at −15), and embedded images or
data:imageURIs (−20). - Structure (20%).Section headers are detected with a case-insensitive regex over the canonical names Workday and Lever expect: Contact, Summary, Experience, Education, Skills. Each missing required section costs −20. Unconventional ordering (e.g. References before Experience) costs another −10. A Contact section is inferred when the first eight lines contain an email plus a phone or URL — useful for resumes that use a name-and-email banner instead of an explicit "Contact" heading.
- Content Quality (15%). Bullet lines are detected via leading dashes, asterisks, or numeric markers, plus body lines that lead with a strong action verb. Each bullet is checked for: a strong-verb start (from the Harvard Office of Career Services action-verb list, pp. 4–5) and a quantified achievement (regex over numerals plus a unit, percentage, multiplier, or temporal noun). Sub-score =
round(action_pct × 50 + quant_pct × 50).
The composite is 0.40 × keyword + 0.25 × format + 0.20 × structure + 0.15 × content, rounded. Verdict thresholds follow Jobscan's 2024 report: ≥ 75 green, 60–74 amber, < 60 red.
Length is reported separately rather than scored, because length is preference-driven and not strictly an ATS failure: per the NACE Job Outlook 2025, entry-level resumes typically run 250–550 words; mid-career 400–800; senior 550–1,100. Region settings (US / UK / EU / Australia / General) hint at conventions around photos and personal data but don't alter the score.
Scoring is deterministic: same resume, same JD, same settings → same score, every time. The lexicon and verb list are pinned to a single version (LAST_VERIFIED = 2026-05-12) so two users get the same answer on the same day. A simpler keyword-overlap baseline is shown next to the headline number so you can sanity-check the weighted method against the raw intersection.
Worked examples
Frequently asked questions
Sources & references
- Jobscan 2024 ATS Benchmark Report — keyword-match thresholds
- Workday Recruiting — Resume Parsing documentation
- Greenhouse — "Why your resume isn't getting through"
- Lever — Resume Parsing Best Practices
- NACE Job Outlook 2025 — page-length expectations
- U.S. Department of Labor — O*NET-SOC Skills taxonomy
- Harvard Office of Career Services — Action verbs for resumes
- Snowball English (Porter2) stemmer specification
All sources were cross-checked on 2026-05-12. The lexicon is reviewed quarterly; the verb list and section regex are versioned with the source file. Found a mistake or a missing skill? Email [email protected] and it's usually fixed within 24 hours.
Related tools
USD-LKR Freelancer Calculator
Convert your freelance USD earnings to LKR with live rates and a side-by-side comparison of Wise, Payoneer, Skrill, and bank-wire fees.
Comments & feedback
Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a bug, false positive, or want to suggest a skill to add to the lexicon?
Email me at [email protected] — most fixes ship within 24 hours.