Hiring teams drown in PDFs. A useful AI resume parser does more than OCR: it turns messy documents into structured candidate profiles your ATS can rank, search, and interview against.
At Talynce, we built our parsing stack on Node.js, PostgreSQL, Redis, and OpenAI (plus Gemini where it helps). No Python in the hot path — the same language as our Next.js app and API.
What “parsed” actually means
A resume is not one blob of text. We normalize into fields recruiters actually filter on:
- Identity (name, emails, phones)
- Work history (employer, title, dates, bullets)
- Education and certifications
- Skills with evidence spans from the source text
- Links (LinkedIn, GitHub, portfolio)
Everything lands in PostgreSQL with JSONB for variable sections and typed columns for the filters that must stay fast.
Pipeline shape
- Ingest — candidate upload or ATS import lands in object storage; a Redis-backed job queue picks it up.
- Extract text — PDF/DOCX → plain text (and lightly structured blocks when the format allows).
- LLM extract — OpenAI with a strict JSON schema for the profile shape; retries on schema validation failure.
- Validate & merge — rule checks (dates, email format) plus confidence scores; humans can override in the UI.
- Index — write the profile used by AI screening, phone interviews, and video interviews downstream.
Keeping parse workers in Node.js means one deploy artifact, shared types with the API, and fewer “works on my notebook” surprises.
Why PostgreSQL + Redis
PostgreSQL gives us transactional writes when a parse finishes mid-interview invite. Redis absorbs bursty upload spikes so OpenAI rate limits do not block the web tier. The web app (React / Next.js) reads only committed profiles.
Practical tips
- Schema first. Define the JSON schema before prompt tuning. Reject incomplete objects instead of silently storing junk.
- Cite spans. Store source offsets when you can — recruiters trust extractions they can click back into.
- Idempotent jobs. Re-parsing the same file should upsert, not duplicate candidates.
- PII hygiene. Limit what leaves your VPC; log model versions, not raw resumes, wherever possible.
If you are building recruiting automation yourself, start with one reliable parse → profile path before you add ranking or voice interviews. That foundation is what lets AI screening and AI interviews feel consistent instead of bolted on.
Explore the product approach we use in production at talynce.com.
Top comments (0)