Ce projet propose une solution avancée de correspondance de candidats basée sur des techniques modernes d'analyse sémantique, de scoring multicritères et d'automatisation des processus RH. L'objectif est d'identifier efficacement les candidats les plus pertinents pour un poste donné.
Automatiser et optimiser le processus de sélection des candidats en exploitant l'intelligence artificielle pour une évaluation objective et complète, minimisant ainsi les biais humains.
Le processus global du projet est orchestré par le fichier principal main.py, suivant ces étapes :
- Module :
extract_data.py - Fonction : Conversion automatique du fichier PDF décrivant le poste en Markdown, facilitant l'extraction et le traitement du texte.
- Module :
llm.py - Fonction : Analyse du Markdown avec l'API Groq (modèle Llama-3), pour extraire les données structurées sous format JSON.
- Module :
csv_to_dataframe.py - Fonction : Chargement des données candidats provenant de fichiers CSV dans des DataFrames pandas.
- Module :
clean_dataframes.py - Fonction : Suppression des doublons et agrégation des informations candidats dans un DataFrame complet et propre.
- Module :
semantic_search_skills.py - Fonction : Identification des candidats pertinents en fonction des compétences requises via ChromaDB.
- Module :
preprocess_missions.py - Fonction : Normalisation, segmentation, lemmatisation et embeddings des missions candidats.
- Module :
semantic_search_missions.py - Fonction : Recherche sémantique reliant responsabilités du poste et expériences candidats.
- Module :
ranking_skills_missions.py - Fonction : Calcul et combinaison des scores compétences/missions.
- Étape : Fusion du ranking initial avec les informations candidat prétraitées.
- Module :
compute_disponilite.py - Fonction : Évaluation disponibilité candidats selon la durée du mandat.
- Module :
language_score.py - Fonction : Attribution d'un score linguistique basé sur les langues exigées par l'offre.
- Module :
compute_global_score.py - Fonction : Pondération finale des scores pour identifier les 5 meilleurs candidats.
Les résultats sont sauvegardés automatiquement dans un fichier CSV nommé selon le poste (ex : Scrum_top5_candidats.csv).
- Python
- pandas
- ChromaDB
- LangChain
- Groq API (Llama-3)
- NLTK, spaCy, SentenceTransformer
- Installation des librairies (
requirements.txt) - Clé API Groq (
.env)