Flagship system
Airsume
Deterministic AI · Document Intelligence
A resume-analysis and ATS platform that turns unstructured resumes and job descriptions into structured, explainable hiring intelligence — with no LLM or cloud AI. Every parsed field and score traces back to the exact text and rule that produced it.
- 11
- Technologies
- 2
- Domains
- 6
- Capabilities
- 1
- Public links
Who it's for
Recruiters, HR teams and job seekers who need resume screening they can actually defend — every score traceable to the exact text and rule that produced it.
Where it fits
Hiring pipelines where explainability and data privacy rule out cloud LLMs: parsing, skill matching and ATS scoring entirely on owned infrastructure.
The hard part
The problem
ATS tools increasingly lean on opaque LLMs that can't explain why a candidate scored the way they did — and that can quietly hallucinate fields that were never in the document. For hiring decisions, that unaccountability is a real liability.
Key constraints
Every result had to be produced by deterministic, auditable logic so each parsed field and score traces back to the exact text and rule behind it. The engine had to run fully offline — handling two-column layouts, tables and scanned PDFs — and it must never fabricate data.
Architecture overview
A fully offline extraction pipeline (PyMuPDF, pdfplumber, python-docx, Tesseract for scans) emits every field as a value + confidence + method + source-span envelope with a strict no-guess threshold. A versioned skill taxonomy drives a staged matcher, and an explainable scoring engine grades resume-to-job fit across weighted categories — each score shipping with the human-readable reasons behind it.
Confidence gate → human review
How it works
What's actually in it.
- 01Deterministic offline parsing handling two-column layouts, tables and scanned/image PDFs via Tesseract, with a strict no-guess threshold.
- 02Versioned skill taxonomy matched by a staged offline matcher (exact → alias → normalised → fuzzy) recording how each match was made.
- 03Document-agnostic pipeline: resumes and job descriptions share one plugin-based parsing framework.
- 04Explainable scoring across weighted categories summing to 100, with neutralise-and-redistribute for non-applicable criteria.
- 05Asynchronous processing off the request path (Celery/Redis) with live status polling.
- 06Golden-dataset benchmark harness with tolerant per-field comparison and regression-versus-baseline checks.
Engineering decisions
Deterministic and explainable instead of an LLM
The whole point of an ATS is a defensible decision. An LLM gives you fluent output you can't audit; a staged, rule-based matcher (exact → alias → normalised → fuzzy, never fuzzy-first) records exactly how every match was made. When someone asks 'why did this candidate score 62?', the system can answer precisely.
The trade-off
Deterministic logic can't infer meaning as loosely as a language model — it won't 'understand' an unusual phrasing the way an LLM might. In exchange, it never invents a skill that isn't there, and every output is auditable end to end.
The obvious approach
Feed each resume and job description to an LLM and ask it to extract fields and score the fit.
Why I didn't choose it
You get confident output you can't verify, occasional fabricated fields, and no defensible answer to 'why this score?' — plus per-call cost and data leaving your infrastructure.
My approach
A deterministic pipeline with a source-span envelope and a staged taxonomy matcher, so every field and score is traceable and reproducible.
Trade-offs
It requires building and maintaining a real skill taxonomy and matcher rather than delegating to a model, but the result is fully explainable and never fabricates.
Technical highlights
- Every field ships with value, confidence, method and source-span — it never fabricates.
- Scores come with the human-readable reasons behind them.
- Honest evaluation built in via a golden-dataset benchmark harness.
Claims & evidence
Versioned skill taxonomy of 432 skills across 33 categories and 10 industries with typed aliases and weighted relationships.
Measured · Airsume taxonomy (author-defined dataset)
Produces structured hiring intelligence with no LLM or cloud AI anywhere in the pipeline.
Qualitative · Airsume design constraint
Every statement above carries its evidence class — nothing is invented.
Tech stack
- Python
- Django 5.2
- Django REST Framework
- Celery
- Redis
- PostgreSQL
- PyMuPDF
- Tesseract OCR
- RapidFuzz
- Next.js 16
- React 19
Want to go deeper on Airsume?
I'm happy to walk through the architecture and the decisions behind it.