Talent Intelligence
A two-person CV-screening backend. LangGraph agents match job requirements to evidence in a CV, check claims against public sources, and give a human reviewer a scored, explainable result.
Problem
A human reviewer needs to connect job requirements to evidence in a CV, distinguish candidate claims from public-source checks, and understand the reasoning behind a rubric score.
Parsing, embedding and external lookups are slow and failure-prone, so the API accepts submissions while background jobs handle processing.
What I built
Team of 2. I owned the system architecture, document parsing and chunking, the RabbitMQ/Celery pipeline, R2/pgvector storage, and much of the CV scoring workflow.
Architecture
FastAPI queues submissions through RabbitMQ for Celery/LangGraph workers, with R2 for documents and PostgreSQL/pgvector for records and embeddings. Job-description embeddings query CV chunks by cosine distance to retrieve evidence for one application, not rank a pool of candidates. Workers call external embedding, LLM, GitHub, and web-search services.
- Async by design: submission and processing separated via RabbitMQ/Celery.
- Evidence first: application-scoped pgvector retrieval, rubric scores backed by cited CV passages.
- Built for review: public-source claims are flagged for a human reviewer, never treated as fact.
Key decisions & trade-offs
- Queue-based processing keeps work outside the request cycle, at the cost of retry handling and job-state complexity.
- Retrieval is scoped to one application: it finds relevant passages, not proof that a requirement is satisfied.
- Scoring is separate from the LLM evidence reviewer, which adds notes and risk flags only, without changing the score.
- Repository checks verify existence and metadata, not authorship or a candidate’s contribution.
Results
Working prototype. Evaluation set and latency measurements in progress.
- Implemented — CV parsing, profile/rubric extraction, retrieval, public-source checks, and scoring with persisted evidence.
What I’d improve
- Build a labeled evaluation set for retrieval relevance, rubric scoring, and public-source checks.
- Measure per-stage latency and failures, including malformed documents, unavailable providers, and retries.
- Strengthen provenance and privacy controls, with a correction path for inaccurate claims and explicit human review.