Resume Parser · Local-first · Self-improving

Every resume, as clean structured data — in seconds.

Upload a PDF, DOCX or TXT resume and TalentGraph returns contact details, skills, work history, education and projects as structured JSON — with skills normalized, tenure and seniority derived, and employment gaps flagged. A cached, self-learning local engine handles most fields; the AI model is called only to fill what it can't. Parsed resumes are added to your talent pool for Talent Match.

Try it now ↓

Why it gets cheaper and faster over time

1

Exact cache

Seen this exact resume text before? Return the structured result instantly — zero AI calls.

2

Local rule engine

Regex, a learned skills gazetteer and learned section headings extract most fields with no API call.

3

AI fallback

Only when local confidence is below threshold does it call Gemini, OpenAI or Anthropic to fill the gaps.

4

Learn & improve

Every AI answer teaches the local engine new skills and headings, so future resumes need the AI less.

Parse a resume

The document is processed by the TalentGraph API running alongside this page. Nothing leaves the machine except the text the local engine can't resolve on its own.

📄

Drag & drop a resume here

or

PDF, DOCX or TXT · max 10MB

or paste raw text

Parsed results will appear here.

Live learning stats

Watch the AI-call rate trend down as more resumes get processed.

Total parses
Cache hits
Local hits
AI calls made
AI call rate
AI calls saved
Learned skills

Why it is fast, and why it gets cheaper

Three properties that come from processing locally first.

Fast because most of it never leaves your machine

The exact-match cache answers repeat documents instantly and the local rule engine handles most of the rest. A model call is the exception, not the round trip you wait on every time.

Cheaper the more you run it

Every AI fallback teaches the local engine new skills and headings, so the share of documents needing a model call keeps falling. Your cost per document goes down as volume goes up.

Explainable, not a black box

Each result shows which path produced it — cache, local rules, or AI — so you always know how much of the output was inferred and how much was read.

Raw resume in, structured record out

The same JSON that powers matching and search — and that drops straight into your ATS.

Raw resume text
PRIYA RAGHAVAN
priya.r@example.com | +91 98200 11223 | Pune

EXPERIENCE
Senior Backend Engineer, Northwind Labs
Mar 2021 - Present
- Rebuilt billing service on Python/FastAPI
- Cut p99 latency 840ms -> 120ms with Redis

Backend Engineer, Cobalt Systems
Jul 2018 - Feb 2021

EDUCATION
B.E. Computer Science, COEP, 2018

SKILLS
Python, FastAPI, PostgreSQL, Redis, Docker
Structured output
{
  "name": "Priya Raghavan",
  "email": "priya.r@example.com",
  "phone": "+91 98200 11223",
  "location": "Pune",
  "total_experience_years": 7.2,
  "seniority": "senior",
  "current_title": "Senior Backend Engineer",
  "skills": ["Python", "FastAPI", "PostgreSQL",
             "Redis", "Docker"],
  "education": [
    { "degree": "B.E. Computer Science",
      "institution": "COEP", "year": 2018 }
  ],
  "employment_gaps": []
}

What the run looks like

Drop a file in and watch which path answers it.

Resume Parser — live run
  1  Drop  Rahul_Agarwal_resume.pdf  onto the upload area
  2  Text extracted (column-aware)                       0.4s
  3  Cache lookup .................. miss
  4  Local rule engine ............. 31 of 34 fields, confidence 0.91
  5  AI fallback ................... 3 fields filled
  6  Result badge:  AI   ·  total 2.1s
  7  Candidate added to talent pool — now matchable

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.