Job Parser · Local-first

Any job posting, as structured, matchable data.

Upload a PDF, DOCX or TXT job posting and TalentGraph returns the title, company, employment type, compensation, required and preferred skills, responsibilities and qualifications — with the title normalized against the O*NET occupation taxonomy, the same one used on the resume side, so roles and candidates compare on a level footing. Ready to shortlist? Send it to Talent Match →.

Try it now ↓

A lighter pipeline than the resume side, on purpose

1

Exact cache

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

2

Local heuristics

Regex/keyword extraction for salary ranges, employment type, remote/hybrid/onsite, and the shared skills gazetteer.

3

AI fallback

Only when local confidence is too low does it call an AI model (Gemini / OpenAI / Anthropic) to fill the gaps.

4

O*NET normalization

Every parsed title gets a canonical occupation, SOC code, and seniority level — always, regardless of source.

Parse a job posting

The posting is processed by the TalentGraph API running alongside this page. Only the text the local engine can't resolve is sent to the AI model. Usage shares the same per-key quota as resume parsing.

🧾

Drag & drop a job posting here

or

PDF, DOCX or TXT · max 10MB

or paste raw text

Parsed job data will appear here.

Next step

Find the best people for this role

Take a job requirement to the matching engine and get the top 10 candidates from your talent pool — each with a match score, matching and missing skills, and a full job-fit analysis.

Live job-parsing stats

Shares the same underlying cache/stats store as resume parsing, tracked under separate counters.

Total job parses
Cache hits
Local hits
AI calls made

Why it is fast, and why it gets cheaper

The same local-first pipeline, pointed at postings instead of CVs.

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.

Titles that actually line up

Every parsed title is normalized against the O*NET occupation taxonomy, so “SDE II” and “Backend Engineer” land in the same family and your reporting stops fragmenting.

Posting in, requirement out

The structured requirement is what Talent Match ranks your pool against.

Raw job posting
Backend Engineer II (Payments)
Northwind Labs — Pune (Hybrid), Full time
₹28-38 LPA

We're looking for someone to own our payments
services. You'll work in Python and FastAPI on
high-throughput systems, and partner with the
platform team on reliability.

You should have 3+ years building backend
services, strong SQL, and comfort with Docker.
Kafka experience is a plus. B.E./B.Tech or
equivalent experience.
Structured requirement
{
  "title": "Backend Engineer II",
  "normalized_title": "Software Developers",
  "onet_code": "15-1252.00",
  "company": "Northwind Labs",
  "location": "Pune",
  "work_mode": "hybrid",
  "employment_type": "full_time",
  "compensation": { "min": 2800000,
                    "max": 3800000,
                    "currency": "INR" },
  "min_experience_years": 3,
  "required_skills": ["Python", "FastAPI",
                      "SQL", "Docker"],
  "preferred_skills": ["Kafka"],
  "education": "B.E./B.Tech or equivalent"
}

What the run looks like

Paste a posting, get a requirement you can match against.

Job Parser — live run
  1  Paste the posting text (or upload the JD file)
  2  Cache lookup .................. miss
  3  Local rule engine ............. title, comp, type, skills
  4  Title normalized .............. O*NET 15-1252.00
  5  Result badge:  LOCAL   ·  total 0.6s, zero AI calls
  6  Send straight to Talent Match to rank your pool

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.