Clearhire
Open-source platform, built with Claude Code · AI recruiting with evidence
An AI recruiting platform that checks CVs against each requirement of a vacancy and shows the CV line behind every verdict — blind screening, a local LLM that must cite its sources, and an audit log anchored on a blockchain.

Problem
Screening tools rank CVs by one similarity score that nobody can explain, can be swayed by names and age, and leave no record a candidate or an auditor could check.
Solution
Requirement-level checks with the CV quote behind each verdict, blind screening before any model, an LLM that may only explain with citations, and a tamper-evident audit log anchored on a chain.
Built in
nDCG@10 0.972 on 312 synthetic CVs (embeddings alone: 0.603); identical scores in all 486 blind-mode swaps; a live demo, and CI covering Python, three front ends, the contract and a Kubernetes end-to-end run.
Overview
Clearhire is an open-source recruiting platform I built with Claude Code to show a whole AI product, from reading a CV to deployment. A candidate can check a CV against a role before applying and see each requirement found or not, with the line of the CV that shows it; recruiters get the same reading, ranked.
The backend is Python: CVs in PDF, Word or scans go through Tesseract OCR into a profile with dated roles and evidence for each skill, pgvector embeddings power hybrid search, and a C++ skill matcher has a pure-Python fallback. Ranking uses the requirements, not one similarity number. Personal details are replaced before the embedding model reads the text, a local Qwen 3.5 9B writes summaries where uncited sentences are dropped, and every decision goes into a SHA-256 chained audit log whose Merkle roots are anchored hourly in a Solidity contract.
It is measured on a generated set of 312 CVs and 39 vacancies with known answers: nDCG@10 0.972 against 0.603 for embeddings alone, skills read with F1 0.997, and identical scores in all 486 blind-mode swaps of gender, origin and age. The demo runs live with Docker Compose on a GPU server, and a Helm chart is tested end to end on kind in GitHub Actions.
What it does
- Reads CVs in PDF, Word, scans and photos (Tesseract OCR), in English and Russian, into skills, dated roles, languages and degrees
- Ranks candidates by unmet must-haves first, then requirement score, then similarity, with the quote behind every verdict
- Blind screening before the model sees the text; a local LLM (Qwen 3.5 9B) writes summaries and answers that must cite the CV
- Angular console, Next.js careers site and NestJS Telegram bot over one FastAPI API; audit log anchored in a Solidity contract; Helm chart tested on kind in CI
What's next
Hiring for a full-stack or Python role — or need something like this built? Let's talk.
I'm open to offers — on-site or hybrid in Moscow, or remote; full-time or contract. I reply within 48 hours — faster on Telegram.