Resume ↔ JD · Local-first · Explainable

Will this resume pass the ATS for this job?

Upload a resume and paste the job description. TalentGraph parses both locally, scores keyword match, skills, experience, education, formatting and content quality into a transparent ATS score, and lists exactly what to fix. The AI model is only called when the local analysis isn't confident enough.

Check a resume ↓

Run an ATS check

The resume is parsed locally and is not sent to any AI service unless local confidence is below the threshold.

📄

Drag & drop a resume here

or

PDF, DOCX or TXT · max 10MB

job description

Your ATS report will appear here.

Why the score is actionable

A number on its own changes nothing. The list underneath it does.

Named gaps, not a grade

The output is a list of the specific keywords and requirements the resume does not evidence — each one a decision about whether to add it or accept the gap.

Scored the way a parser reads

The comparison runs on the structured extraction, so it reflects what a machine gets out of the document rather than what a human sees on the page.

Honest about the ceiling

If the resume genuinely does not have the experience, the tool says so rather than suggesting you write it in.

Two documents in, a gap list out

The gap list is the deliverable — the score is just how you sort it.

Resume + target job
RESUME
Priya Raghavan · Senior Backend Engineer
Python, FastAPI, PostgreSQL, Redis, Docker
7.2 years · Pune

TARGET JOB
Backend Engineer II (Payments)
Required: Python, FastAPI, SQL, Docker, 3y+
Preferred: Kafka, payments background
Score and gaps
MATCH  92 / 100

REQUIRED — all matched
  ✓ Python        ✓ FastAPI
  ✓ SQL           ✓ Docker
  ✓ 3+ years      (7.2 years)

PREFERRED — 0 of 2
  ✗ Kafka
  ✗ payments / fintech background

ATS NOTES
  · "SQL" only appears as "PostgreSQL" —
    add the literal term once
  · No payments-domain language anywhere in
    the experience bullets
  · Contact details are in the body, not the
    PDF header — good, keep it that way

What the run looks like

Both documents in, one prioritised list out.

Resume ↔ JD — live run
  1  Upload the resume, paste the target job posting
  2  Both parsed to structured records
  3  Required skills compared .... 4 of 4 matched
  4  Preferred skills compared ... 0 of 2 matched
  5  Keyword and formatting notes generated
  6  Fix the gaps worth fixing, re-run, compare

Ready to run this on your own documents?

The free tier needs no card. If you would rather see it on your real requisition load first, we will walk through it with you.