All projects

2025 – 2026 · LLM pipeline

Explainable CV-Job Matching with Bias Audit

Matches a CV to a job offer with evidence for every decision, then runs a separate LLM auditor to check the result for bias.

Llama 3.3 70BGroqGLiNERspaCyNetworkXAngularMongoDB
View code (opens in a new tab) Live demo coming soon
Diagram of the Explainable CV-Job Matching with Bias Audit pipeline
How the pipeline works, step by step.

The problem

Automated CV screening is often a black box: a candidate gets a score with no explanation, and hidden bias can creep in.

This project makes every step explainable, ties each matched skill to evidence in the CV, and adds a dedicated bias check before the report is produced.

How it works

  1. Job skill graph

    Extracts the skills a job requires with GLiNER and an LLM, and links related skills into a graph with NetworkX.

  2. Evidence-based CV audit

    Looks for concrete evidence of each required skill in the CV instead of just matching keywords.

  3. Rule-based scoring

    Computes the match score with transparent rules, so the number can be explained.

  4. LLM bias auditor

    A separate LLM reviews the evaluation for possible bias.

  5. Report

    Produces a readable report of the result, delivered in a web app with an Angular front end and MongoDB storage.

Results

25.7 → 8.2error points with Llama 3.3 70B
500CV-job pairs in the evaluation (up to)
3LLMs compared: Gemma 3 4B, Llama 3.1 8B, Llama 3.3 70B

I compared three models with LLM-as-a-judge on up to 500 CV-job pairs. The larger Llama 3.3 70B cut the error from 25.7 to 8.2 points.

What I learned

How to design multi-step LLM pipelines where each stage is checkable, how to evaluate LLM outputs at scale with LLM-as-a-judge, and how model size trades off against quality.