Intermédiaire 20 minRH
RH : tri de CV automatisé
Un recruteur reçoit 200 CV sur un poste, doit en sélectionner 10 à appeler. Un LLM local peut extraire compétences, années d'expérience, diplômes, et scorer la correspondance à la fiche de poste — sans envoyer les CV chez OpenAI (illégal en France depuis 2024 sur le screen initial). Ce guide monte un pipeline de tri rapide, transparent, auditable, sur votre poste.
#Ce qu'on construit
Un script qui prend un dossier de PDF (CV) et une fiche de poste (texte), produit un classement avec un score et une justification par CV. La justification est cruciale — elle permet au recruteur de comprendre pourquoi le modèle a scoré comme il a scoré.
#Cadre légal (RGPD, loi IA)
- Information du candidat
- La mention "Un outil d'IA peut assister la présélection" doit figurer sur la fiche de poste ou la politique de recrutement.
- Pas de décision automatisée
- Le tri par IA doit rester un outil d'aide. La décision finale ("on appelle" / "on écarte") est humaine.
- Transparence
- Un candidat a le droit de demander sur quels critères il a été scoré. Conservez les sorties du LLM.
- Minimisation
- N'envoyez au LLM que ce qui est nécessaire au poste. La date de naissance, l'adresse complète, la photo ne servent pas à scorer.
!
Cloud vs local
Envoyer un CV (données personnelles + potentiellement sensibles comme handicap, syndicalisme) chez OpenAI sans accord spécifique est une violation RGPD. Le local résout ce point.
#Stack
- PyMuPDF / pdfplumber
- Extraction de texte depuis PDF (97 % des CV sont en PDF).
- Ollama + Qwen 14B
- Extraction structurée + scoring. Mistral 7B marche aussi, un peu moins précis.
- Format JSON strict
- Pour parser automatiquement la sortie du modèle dans votre SIRH.
#1. Extraire le texte du CV
#2. Extraction structurée en JSON
#3. Matching vs fiche de poste
#4. Shortlist automatique
#Gérer les biais
- Anonymisation avant LLM
- Enlever prénom, âge, adresse, photo. Réduit le risque de biais genre/ethnique/âge.
- Audit régulier
- Comparer le taux de shortlist entre catégories (hommes/femmes, tranches d'âge) si la donnée est reconstituable post-tri. Si écart inexpliqué, réviser le prompt ou le poste.
- Fiche de poste nettoyée
- Une fiche de poste biaisée ("junior dynamique" = biais âge) se propage dans le score. Rédigez proprement avant d'utiliser.
- Second LLM de contrôle
- Sur les CV rejetés par le premier, passer un second modèle indépendant. Divergence = œil humain.
i
Pas d'autonomie complète
Le script présente une shortlist au recruteur, avec justification. Il n'envoie PAS de mail de refus automatique. La décision reste humaine, traçable, contestable.
Ce guide vous a aidé ?
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.