- Private
- Internship
- CRNS
- Jun – Aug 2025
JobMatch: LLM-assisted candidate pre-selection
100 % local
fine-tuned Mistral-7B · no CV leaves the machine
Built with Atta Allah Hilali · supervised by Mme Sonda Ammar (CRNS)
The problem
JobMatch: LLM-assisted candidate pre-selection · before
Read by hand
IT offers attract a flood of CVs that recruiters still read by hand.
Every CV differs
Every CV has its own layout, and the same skill is phrased ten ways.
Keywords miss
Keyword filters miss implicit skills and reward whoever copies the offer's wording.
The goal
JobMatch: LLM-assisted candidate pre-selection · after
Extract and compare
Extract the key facts from each CV and compare them with the offer.
An explained score
A relevance score with a readable justification.
Fair and in-house
Less bias, and candidate data kept in-house.
How it works
JobMatch: LLM-assisted candidate pre-selection
CVs are turned into clean text, a local fine-tuned LLM extracts a structured profile, embeddings rank each profile against the offer by semantic similarity, the LLM explains the score, and a Streamlit interface ranks candidates. The components talk through an MCP architecture.
- CVs · PDF / DOCX
- Text + cleaning
- LLM parsing
- Mistral-7B · fine-tuned · local
- Embeddings match + score
- Job offer
- Ranking UI
- Step 1 of 4 CVs arrive as PDF or DOCX; the text is extracted, cleaned, and anonymised to limit bias.
- Step 2 of 4 A fine-tuned, quantised Mistral-7B, running locally, turns each CV into a structured profile.
- Step 3 of 4 Embeddings match the profile to the offer, and the model explains present and missing skills.
- Step 4 of 4 A Streamlit interface ranks candidates, shows the evidence, and exports the results.