JobMatch
Une plateforme de matching CV ↔ offres d'emploi : un LLM local lit le CV, puis chaque offre agrégée reçoit un score de compatibilité sur 100, explicable.
Code ↗Contexte
L'utilisateur dépose son CV en PDF ; un LLM exécuté en local — un modèle Ollama construit pour la tâche — en extrait le profil : métier, ville, compétences, expérience. Rien ne quitte la machine : aucun service IA tiers ne voit le document.
Les offres sont agrégées depuis France Travail, Greenhouse, Lever et Ashby, resynchronisées toutes les six heures. Chacune est scorée contre le profil sur cinq dimensions pondérées — compétences (35), métier (30), expérience (15), localisation (10), contrat (10) — pour qu'un candidat voie pourquoi une offre est classée là où elle est.
FastAPI sert une SPA React 19 (Vite, Tailwind v4, Motion), SQLite par défaut et Postgres en production. Entièrement bilingue FR/EN, avec une cible WCAG 2.2 AA. Demoday en juillet 2026.
Architecture
- Backend
FastAPI
API sous /api avec fallback SPA statique ; APScheduler resynchronise les offres toutes les 6 heures.
- Frontend
React 19 · Vite · Tailwind v4
Bilingue FR/EN avec i18n typé, thème clair/sombre, cible WCAG 2.2 AA.
- CV extraction
Ollama — custom jobmatch-cv model
Tourne entièrement en local ; le CV ne part jamais vers un service tiers.
- Scoring
Five weighted dimensions
Compétences 35 · métier 30 · expérience 15 · localisation 10 · contrat 10 — chaque score est explicable.
Processus
- 01
Un LLM local, pas une API
Un CV est l'un des documents les plus personnels qui soient. L'extraction tourne sur un modèle Ollama auto-hébergé : le PDF ne quitte jamais l'infrastructure — la confidentialité comme décision d'architecture, pas comme page de politique.
- 02
Des critères pondérés plutôt qu’une boîte noire
Le score est une formule transparente à cinq dimensions plutôt qu'une sortie de modèle opaque. Un candidat voit exactement quelle dimension lui coûte des points sur une offre donnée — et quoi changer.