Alric le Conte

Projets / profile-search-rag

Extraction et recherche de profils

Un outil interne qui extrait des profils structurés à partir de CV avec de l'OCR et un LLM, puis trouve les correspondances par le sens, avec une explication pour chacune.

Période
3 mois
Rôle
Développeur
Contexte
Outil interne, cabinet de conseil
Cloud
GCP
5 000profils indexés
~40 %de temps en moins pour une shortlist

[ Architecture ]

Comment ça marche

Lancez un scénario pour suivre une requête à travers le système. Sélectionnez un composant pour lire son rôle et ses flux.

Lancer un scénario

utilisateurRecruteurajoute CV · chercheappApp rechercheStreamlitIAOCR & extractionOCR + GPT-4ostockageProfils & vector storeBigQuery · Sentence-BERTIAExplication matchGPT-4o
fichier

un recruteur

Un CV synthétique

Un fichier CV ajouté au vivier.

cv.pdf

ConsoleExécution simulée · données illustratives
  1. Appuyez sur Ajouter un CV pour suivre la requête à travers le système.
  1. 01RecruteurTéléverse un CV
  2. 02App rechercheFichier accepté
  3. 03OCR & extractionTexte extrait · profil structuré construit
  4. 04Profils & vector storeProfil stocké · vecteur ajouté à l'index
  5. ✓Le profil est stocké sous forme de données structurées et devient cherchable par le sens en quelques instants.

Problème

Trouver le bon profil dans un grand vivier de CV est lent. Les CV ont des mises en page très variées et la recherche par mots-clés rate les formulations voisines : construire une shortlist prenait donc du temps.

Données

Des fichiers de CV, le texte extrait, les profils structurés et leurs embeddings. Les CV sont des données personnelles : les démonstrations n’utilisent que des CV synthétiques.

Approche

  • Extraction par OCR et LLM. L’OCR lit le CV, puis un LLM transforme le texte en profil structuré.
  • Recherche sémantique. Les profils sont encodés et indexés dans un moteur de recherche vectorielle : la recherche porte sur le sens, pas sur les mots.
  • Correspondances expliquées. Un LLM relit les profils les plus proches au regard de la requête et dit pourquoi chacun correspond, dans une application Streamlit simple.

Évaluation

L’outil a été jugé sur le temps nécessaire pour construire une shortlist, comparé au processus manuel.

Résultat

Environ 5 000 profils ont été indexés, et la construction d’une shortlist a pris environ 40 % de temps en moins.

Mon rôle

J’ai construit l’outil : l’extraction, l’indexation, la recherche et l’interface.