induwara.lk
induwara.lkAI · Career

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.

By Induwara AshinsanaUpdated May 12, 2026
Score your resumeAgainst any pasted job description
Runs in your browser · sources cited

Paste your full resume as plain text. 673 / 30,000 chars.

Paste the responsibilities + requirements only. 444 / 15,000 chars.

Smart skill matching
Overall
87
Likely clears most ATS keyword gates.
Keyword match (40%)
85
13 / 20 JD keywords (baseline overlap 35.29%)
Format (25%)
100
0 issues detected
Structure (20%)
100
5 / 5 expected sections
Content (15%)
50
100% strong verbs · 0% quantified

Keyword gap

Keyword from JDIn resume?JD ×Suggested placement
github actions1Add to Skills section if you have hands-on experience with github actions.
au we re1Weave into Summary or relevant bullet, only if honest.
ci/cd1Add to Skills section if you have hands-on experience with ci/cd.
cloudwatch1Add to Skills section if you have hands-on experience with cloudwatch.
datadog1Add to Skills section if you have hands-on experience with datadog.
github1Add to Skills section if you have hands-on experience with github.
github actions monitor1Weave into Summary or relevant bullet, only if honest.
engineer2Already in your resume — keep it visible.
aws1Already in your resume — keep it visible.
aws ecs rds1Already in your resume — keep it visible.
build ci/cd pipelines1Already in your resume — keep it visible.
cloud engineer sydney1Already in your resume — keep it visible.
code with terraform1Already in your resume — keep it visible.
day-to-day deploy microservices1Already in your resume — keep it visible.
docker1Already in your resume — keep it visible.
docker kubernetes observability1Already in your resume — keep it visible.
ecs1Already in your resume — keep it visible.
ecs rds write1Already in your resume — keep it visible.
engineer sydney au1Already in your resume — keep it visible.
git1Already in your resume — keep it visible.

Section checklist

  • Contactline 1
  • Summary(optional)line 4
  • Experienceline 7
  • Educationline 13
  • Skillsline 16

Suggested order: Contact → Summary → Experience → Education → Skills. Workday and Lever parse this order most reliably.

Bullet analysis

Strong-verb starts
100%
Quantified bullets
0%
  • Line 9Not quantified

    Built a customer dashboard in React + Node.js used by 4,200 daily users.

  • Line 10Not quantified

    Deployed services to AWS ECS and tuned an RDS Postgres instance for 30% lower p99 latency.

  • Line 11Not quantified

    Wrote Terraform modules adopted across 6 microservices.

No format-friendliness issues found. Tables, emoji bullets, and embedded images all clear.

What to fix first

  1. Bonus keywords you could add: github actions, au we re.
  2. Quantify more bullets — add a number, percentage, or scale (e.g. "Reviewed 35+ PRs", "Cut load time by 40%").
  3. Too short for entry-level — 104 words versus a typical 250–550 range. Add quantified achievements to existing roles or include a Projects section.

Length check: Too short for entry-level — 104 words versus a typical 250–550 range. Add quantified achievements to existing roles or include a Projects section.

Export

Scoring follows the Jobscan 2024 thresholds and parsing guidance from Workday, Greenhouse, and Lever. Lexicon and verb list last verified 2026-05-12.

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.

  1. 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.
  2. 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:image URIs (−20).
  3. 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.
  4. 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

Entry-level, Software, Australia

UCSC graduate → Sydney junior cloud engineer

  1. JD top keywords (12): aws, terraform, ci/cd, github-actions, cloudwatch, python, typescript, git, linux, docker, kubernetes, datadog.
  2. Resume hits (stemmed): aws ✓, python ✓, typescript ✓, git ✓ — others missing → 4/12 = 33.3%.
  3. Keyword sub-score: min(100, round(0.333 × 130)) = 43.
  4. Format: 100 (no tables, no emoji, no images, all lines under 200 chars).
  5. Structure: 100 (Contact, Summary, Experience, Education, Skills all present).
  6. Bullets: 3 total. 2 strong-verb starts (Built, Deployed), 1 weak (Helped). 1 quantified (4,200 daily users). Content = round(0.667×50 + 0.333×50) = 50.
  7. Total = 0.40×43 + 0.25×100 + 0.20×100 + 0.15×50 = 17.2 + 25 + 20 + 7.5 = 69.7 → 70 (amber).
  8. Top fixes: add Terraform / CI/CD / GitHub Actions / Docker / Kubernetes if true; rewrite the "Helped" bullet.

Mid-level, Design, US

Freelance brand designer → US remote brand role

  1. JD top keywords (10): brand-identity, figma, visual-design, typography, illustration, motion, print, accessibility, design-system, stakeholder-management.
  2. Resume hits: brand-identity ✓, figma ✓, visual-design ✓ (via "Visual Identity"), typography ✓, print ✓, design-system ✓ (via "visual systems") — illustration vs Illustrator stems differ → 6/10 = 60%.
  3. Keyword sub-score: min(100, round(0.60 × 130)) = 78.
  4. Format: 90 (a pasted ASCII table at the bottom → −10).
  5. Structure: 60 (Contact missing −20, Education missing −20).
  6. Content: 100 (all 3 bullets are strong-verb-led and quantified).
  7. Total = 0.40×78 + 0.25×90 + 0.20×60 + 0.15×100 = 31.2 + 22.5 + 12 + 15 = 80.7 → 81 (green).
  8. Top fixes: re-add Contact (email/phone/LinkedIn) and a one-line Education entry; convert the Tool/Years table to inline text.

Edge case — 70% match

At-boundary keyword match

  1. JD with 10 keywords, resume hits 7 → keyword_pct = 0.70.
  2. Keyword sub-score: min(100, round(0.70 × 130)) = 91 (the 1.3× curve caps at 100 once match_pct ≥ 0.7692).
  3. Confirms the curve gives partial credit below 77% without clipping to zero, and avoids over-penalising candidates at the practical floor.

Frequently asked questions

Sources & references

Related tools

Rate this tool
Be the first to rate

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.