FairHire AI — Explainable Candidate Ranking
Work in Progress · v0.9A recruiter uploads a job description and a batch of resumes. The system parses them, ranks every candidate against the job, and shows the recruiter exactly why each person got the rank they did — with the actual lines from the resume that drove the score. Every ranked list goes through a human before any action is taken.
The pipeline runs across seven services: ingestion handles PDF and DOCX parsing with OCR fallback, an NLP layer extracts skills, experience, education and normalises them against the ESCO ontology, sentence-transformers embed both the job requirements and resume evidence into vectors stored in pgvector, and a LightGBM ranker scores each candidate. SHAP values tie every top feature back to a specific span of resume text — so the recruiter sees "ranked #1 because of 6 years Python, matches requirement 3" not just a number.
Includes a fairness instrumentation tab that shows subgroup score distributions and top-K selection rates — with an explicit disclaimer that it is instrumentation for a real audit, not a bias removal claim. Hand-labelled evaluation set and live demo are the remaining milestones.
GitHub →