
Étude de cas
Matching CV et offres par recherche vectorielle : des recommandations en quelques secondes
J'ai conçu une fonction de matching de CV pour la section carrières de vaiibe.com, qui liste des offres en télétravail de micro1, Turing et Mercor. Un candidat dépose un CV en PDF ou Word, un modèle IA lit son profil, et la recherche vectorielle renvoie en quelques secondes les dix offres ouvertes les plus proches. Le CV reste dans un stockage privé et il est supprimé automatiquement au bout de 180 jours.
Le problème
La section carrières de mon site rassemble plusieurs centaines d'offres en télétravail issues de trois plateformes de recrutement. Les parcourir est simple ; trouver les bonnes l'est beaucoup moins.
- Les filtres par mots-clés ratent de bonnes offres. Un « backend engineer » et un « API developer » peuvent désigner le même poste, et un filtre sur un mot masque l'autre.
- Trois sources, trois formats. Chaque plateforme décrit différemment les compétences, les tarifs et les pays éligibles, donc un même filtre ne veut pas dire la même chose partout.
- Les candidats abandonnent. Faire défiler des centaines d'annonces pour en trouver cinq pertinentes est exactement la tâche que l'on laisse tomber.
- Un CV est une donnée personnelle sensible. Une fonction qui le lit doit être privée, minimale et facile à supprimer, sinon elle ne devrait pas exister.
L'approche
J'ai traité le matching comme une question de sens plutôt que de mots-clés, et la confidentialité comme une contrainte de conception dès la première ligne.
Un modèle commun pour trois plateformes
Une synchronisation quotidienne récupère les offres ouvertes de micro1, Turing et Mercor et les normalise dans un format unique, avec un résumé et des traductions en français et en arabe pour chaque annonce. Les offres fermées sont retirées au passage suivant.
Chaque offre devient un vecteur
Le résumé de chaque offre ouverte est transformé en un embedding de 768 dimensions avec le modèle d'embedding Gemini de Google, puis stocké dans un index vectoriel Firestore. Quand une offre ferme, son vecteur est supprimé : les recommandations ne pointent donc jamais vers une annonce à laquelle on ne peut plus postuler.
La lecture du CV
Un PDF est envoyé directement à Gemini Flash-Lite, et un fichier Word est d'abord converti en texte. Le modèle extrait un profil structuré : compétences, séniorité et domaines. Ce profil est converti en requête vectorielle puis comparé à chaque offre par similarité cosinus, et les dix offres ouvertes les plus proches reviennent au candidat.
La confidentialité dès la conception
- Les fichiers sont déposés dans un espace de stockage privé, avec l'accès public bloqué.
- Les dépôts sont limités à trois par jour par connexion pour éviter les abus.
- Le candidat reçoit un jeton de suppression qui efface le fichier et le profil extrait en un clic.
- Chaque CV est supprimé automatiquement au bout de 180 jours.
- Être contacté pour une offre correspondante est un choix facultatif, jamais une condition.
Résultat
La fonction est en ligne dans la section carrières de vaiibe.com.
- Des recommandations en quelques secondes : lors d'un test en production, un vrai CV au format PDF a renvoyé dix offres pertinentes en six secondes environ.
- Un matching par le sens, pas par les mots : un profil Python senior fait remonter des postes Python et backend seniors, et une recherche sur le droit des contrats fait remonter des offres juridiques même quand l'annonce emploie d'autres termes.
- Des résultats qui restent : les recommandations restent disponibles sur l'appareil du candidat, qui peut les masquer, recommencer avec un nouveau CV ou tout supprimer.
- La confiance intégrée : stockage privé, suppression en un clic et expiration automatique rendent la fonction utilisable sans demander aux candidats une confiance aveugle.
La même architecture s'applique à tout catalogue difficile à explorer : produits, formations, biens immobiliers ou documents internes. Vous pouvez l'essayer sur la page carrières.
Stack technique
Services associés

Coaching en IA et mentorat pour fondateurs
J'apprends aux fondateurs et aux opérateurs à utiliser correctement les outils d'IA : configuration de l'environnement, flux de travail avec des agents, revue de code sur votre projet réel et le discernement nécessaire pour savoir ce qui est prêt à être déployé.

SaaS, applications web et mobiles sur mesure
Je conçois des plateformes SaaS sur mesure avec Next.js et Firebase, ainsi que des applications web, iPhone et Android à partir d'une base de code unique. MVP à prix fixe, livrés en 8 à 16 semaines.

E-commerce et marketplaces sur mesure
Je développe des boutiques en ligne et des marketplaces multi-vendeurs personnalisées avec Next.js et Firebase : rapides sur mobile, paiements locaux et internationaux intégrés, et sans frais de plateforme mensuels.