Job Searcher : un modèle compact pour transformer la recherche d’emploi des jeunes diplômés

D'après Hugging Face (6 juin 2026 à 17h36)

Résumé

Hugging Face présente « Job Searcher », un modèle spécialisé qui automatise la recherche d’emploi à partir d’un CV. Le système génère des requêtes LinkedIn, récupère les offres via JobSpy puis les évalue selon cinq critères de compatibilité, en s’appuyant sur un schéma enseignant–élève entre DeepSeek V4 Pro et Qwen3-8B.

Les faits

L’article « Job Searcher » part d’un constat simple : pour un jeune diplômé, chercher un emploi « est un travail à plein temps ». Le texte décrit la lassitude de parcourir « des centaines d’offres chaque semaine » et de réécrire la même lettre de motivation, au point où « le coût de réfléchir à chaque annonce est plus élevé que le coût de postuler ». Job Searcher propose un flux d’exécution en trois étapes. D’abord, le « student » lit le CV et les préférences (type de poste, mode de travail, localisation, notes libres) et rédige un petit ensemble de requêtes de recherche « en forme LinkedIn », en explicitant son raisonnement. Ensuite, ces requêtes sont envoyées à LinkedIn via l’outil JobSpy, une par une. Enfin, pour chaque offre, le modèle lit le couple « (CV, poste) » et produit un score de compatibilité sur cinq dimensions : « adéquation des compétences », « pertinence de l’expérience », « formation et certifications », « adéquation secteur / domaine » et « alignement en séniorité ». L’auteur souligne que le résultat n’est « pas une liste de cinquante postes », mais une courte sélection argumentée : l’utilisateur peut lire pourquoi le modèle considère que le second poste du classement est meilleur que le troisième. Ce fonctionnement s’appuie sur une architecture enseignant–élève. L’enseignant est DeepSeek V4 Pro, décrit comme performant en raisonnement structuré, capable de suivre un schéma de sortie strict et suffisamment économique pour annoter un large corpus hors ligne. Il sert exclusivement de générateur de labels, sans dépendance à l’inférence. L’élève est Qwen3-8B, « assez petit pour tenir sur un seul slice ZeroGPU une fois quantifié en Q4_K_M » mais « assez grand pour absorber le jugement structuré de l’enseignant ». Le corpus est construit en boucle fermée, sensible au CV. Il comprend 2 500 CV issus du jeu de données Divyaamith/Kaggle-Resume, des requêtes rédigées par l’enseignant, environ 10 000 offres issues de LinkedIn via JobSpy pour ces requêtes, puis des labels où l’enseignant note chaque paire « (CV, poste) » sur les cinq dimensions, avec une phrase de justification par dimension. L’ensemble est publié dans quatre configurations propres en clés étrangères sous le nom « build-small-hackathon/job-search-distill ». L’entraînement repose sur deux sessions de fine-tuning LoRA SFT sur un seul GPU A100 via Modal, une par tâche. La configuration LoRA est détaillée : rang 16, alpha 16, dropout désactivé, et ciblage des projections d’attention et MLP (« q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj »), avec un epoch par tâche et des checkpoints intermédiaires tous les 200 pas pour vérifier la cohérence des runs. Les poids sont publiés au format Safetensors sous « build-small-hackathon/job-searcher-qwen3-8B », ainsi qu’en base Q4_K_M avec sidecars LoRA-GGUF sous « build-small-hackathon/job-searcher-qwen3-8B-gguf » pour un déploiement via llama.cpp. L’espace d’inférence s’appuie sur « llama-cpp-python » et le wheel CUDA précompilé, déployé sur un Space Hugging Face ZeroGPU.

Pourquoi c’est important

Job Searcher illustre une approche pragmatique pour spécialiser un modèle compact sur un cas d’usage très concret : filtrer et prioriser des offres d’emploi en fonction d’un CV réel. En combinant génération de requêtes, scraping ciblé et scoring multi-dimensionnel, l’outil promet de réduire le bruit des plateformes d’emploi classiques et de livrer une sélection argumentée, plus exploitable pour les candidats. Le projet montre également comment articuler un grand modèle enseignant (DeepSeek V4 Pro) et un modèle élève plus léger (Qwen3-8B) via distillation supervisée, en exploitant des ressources limitées (un seul A100, ZeroGPU, quantification Q4_K_M) sans sacrifier la structure du raisonnement. La publication du corpus, des configurations de fine-tuning et des artefacts d’inférence (Safetensors, GGUF) en fait un exemple de référence pour les équipes qui veulent bâtir des agents IA verticaux sur des workflows web existants comme LinkedIn.

Questions fréquentes

Comment fonctionne Job Searcher ?

Job Searcher lit votre CV et vos préférences, génère des requêtes de type LinkedIn, interroge LinkedIn via JobSpy puis note chaque offre sur cinq dimensions de compatibilité entre le CV et le poste.

Quels modèles sont utilisés dans Job Searcher ?

Le système utilise DeepSeek V4 Pro comme modèle enseignant pour générer les labels et Qwen3-8B comme modèle élève, entraîné pour reproduire ce jugement structuré.

Quelles données alimentent Job Searcher ?

Le corpus comprend 2 500 CV issus du jeu de données Divyaamith/Kaggle-Resume et environ 10 000 offres LinkedIn récupérées par JobSpy à partir de requêtes générées pour chaque CV.

Comment Job Searcher évalue la compatibilité avec une offre ?

Le modèle produit un score sur cinq dimensions : compétences, pertinence de l’expérience, formation et certifications, adéquation secteur/domaine et alignement en séniorité, avec une phrase de justification par dimension lors de la phase de labellisation.

Où sont publiés les modèles entraînés Job Searcher ?

Les poids sont publiés sous « build-small-hackathon/job-searcher-qwen3-8B » au format Safetensors et sous « build-small-hackathon/job-searcher-qwen3-8B-gguf » pour une utilisation avec llama.cpp.

Source

Hugging Face

Auteur

Rédaction IA-Medias

Rédaction spécialisée dans la veille et l'analyse de l'actualité de l'intelligence artificielle, des puces IA, des robots, des agents IA et de la recherche.