Le problème du CV d'ingénieur ML est précis et très reconnaissable : trop d'outils, trop peu de résultats, aucune preuve qu'un seul de vos modèles ait jamais atteint la production. Les responsables d'embauche passent les listes de librairies pour trouver les deux ou trois lignes qui prouvent que vous savez livrer.
Cet article parle de l'écriture de ces lignes — et des trois choix de structure qui font qu'un CV d'ingénieur ML atterrit, au lieu d'être classé « encore un profil Kaggle ».
Ce qu'un responsable ML lit vraiment
En 90 secondes sur votre CV, un ingénieur ML senior ou un responsable d'embauche vérifie trois choses, dans cet ordre :
- Avez-vous livré un modèle en production ? Pas un notebook. Pas un hackathon. Un modèle qui a servi de vraies prédictions à de vrais utilisateurs et dont vous avez assumé la maintenance.
- Comprenez-vous l'évaluation ? Précisément — au-delà de la précision (accuracy). Avez-vous choisi la bonne métrique pour le problème ? Avez-vous mesuré hors ligne et en ligne ? Avez-vous attrapé vous-même la dérive de votre modèle ?
- Quel était votre périmètre ? Aviez-vous le problème de bout en bout (données, entraînement, déploiement, monitoring), ou vous a-t-on remis un jeu de données étiqueté en vous demandant de maximiser une métrique ?
Si ces trois points sont clairs dans les 90 premières secondes, vous avancez. Si l'un manque, vous vous battez sur les listes d'outils — un combat que vous ne voulez pas gagner.
La phrase d'accroche — la première phrase qui décide de tout
La plupart des CV ML ouvrent par quelque chose comme « Ingénieur en machine learning avec X années d'expérience en deep learning et computer vision ». Cela ne dit rien que le titre de la rubrique ne dise déjà.
Une meilleure ouverture nomme un domaine, une échelle et un résultat :
Ingénieur ML, 4 ans à construire des systèmes de recommandation en production. Plus récent : déploiement d'un modèle de retrieval profond servant 12M d'utilisateurs/jour, +8 % d'engagement vs. la baseline de factorisation matricielle précédente.
Trois éléments : domaine (recommandation), échelle (12M/jour), résultat (+8 % d'engagement, baseline nommée). Une phrase qui a déjà répondu aux trois questions ci-dessus.
Si vous n'avez pas encore de projet en production à citer, l'ouverture doit au moins nommer un problème précis que vous avez creusé : « Ingénieur ML focalisé sur la détection de fraude sur données tabulaires à faible volume (<100K exemples étiquetés), benchmarké contre XGBoost et CatBoost. » Précis bat grandiose.
La rubrique expérience — le patron de phrase qui livre un modèle
Le patron de phrase qui marche pour les postes ML :
[Verbe] [type de modèle] pour [problème métier], entraîné sur [échelle + source des données], évalué sur [métrique + baseline], déployé via [stack de serving], a livré [résultat métier].
Rempli :
Construction d'un ranker séquentiel pour le fil d'accueil, entraîné sur 90 jours de logs d'interaction (1,2 Md d'événements), évalué en NDCG@10 hors ligne (+12 % vs. la baseline LambdaMART) et en A/B en ligne (+4,1 % de temps de session, p<0,01), déployé via TensorFlow Serving sur GKE derrière un SLO p95 de 30 ms.
Chaque membre de phrase fait un vrai travail :
- Verbe + type de modèle : indique la surface technique (ranker séquentiel, classifieur de fraude, segmenteur d'image).
- Échelle + source des données : permet de calibrer la difficulté d'ingénierie.
- Métrique + baseline : montre que vous savez ce que veut dire « mieux » dans votre contexte, et que vous avez comparé à quelque chose de sérieux.
- Stack de serving : signale que vous avez tenu le déploiement, pas que le notebook.
- Résultat métier : ferme la boucle. Le travail technique comptait pour l'entreprise.
Trois ou quatre phrases comme ça par poste battent quinze qui listent des librairies.
La rubrique outils — courte, hiérarchisée, à jour
L'instinct, c'est de tout lister. Résistez. Une longue liste signale un manque de focus et est balayée en quelques secondes.
La structure qui marche :
- Cœur (usage quotidien) : Python, PyTorch, scikit-learn, SQL, Docker, GCP.
- Bonne maîtrise : TensorFlow, Spark, Airflow, FastAPI, Terraform.
- Connaissance : Ray, Triton, ONNX.
Trois niveaux, six à huit items dans le premier, pas plus. Enlevez les outils que vous n'avez pas touchés depuis deux ans — lister TensorFlow 1.x en 2026 est un signal.
Ne rajoutez pas les versions de framework, ne listez pas « IA » ou « Machine Learning » comme outils (c'est le domaine, pas l'outil), ne listez pas un fournisseur cloud comme une seule ligne sans dire ce que vous avez utilisé dessus. « AWS » ne veut rien dire ; « AWS (SageMaker, S3, Lambda, IAM) » veut dire quelque chose.
La rubrique projets — seulement si vous avez vraiment livré ou open-sourcé
Une rubrique projets aide quand :
- Vous débutez et votre expérience est mince.
- Vous avez livré quelque chose à côté qui est plus impressionnant que votre job principal.
- Vous contribuez à un projet open source ML connu.
Elle nuit quand :
- Les projets sont des compétitions Kaggle sans angle production.
- Les projets sont des reproductions de tutoriels (« entraîné un GAN sur MNIST »).
- Les projets n'ont pas de lien public ni de preuve d'usage.
Une phrase de projet qui marche :
Contributeur open source à [projet] (8 200 étoiles GitHub) — implémentation de [feature], mergé en v2.3, réduction de la latence p95 de [opération] de 34 % (benchmark dans le README).
Une phrase de projet qui ne marche pas :
Construction d'un chatbot avec LangChain et l'API OpenAI.
Pour la plupart des postes mid à senior, supprimez la rubrique projets si elle serait remplie de travail de niveau tutoriel. C'est votre expérience qui doit faire le gros du travail.
Rigueur d'évaluation — le signal qui sépare un junior d'un senior
Le moyen le plus rapide de paraître senior sur le papier, c'est de parler d'évaluation comme un senior. Trois petits gestes d'écriture :
- Nommez la bonne métrique pour le problème. Un classifieur de fraude à 99 % d'accuracy est un mauvais classifieur de fraude. Utilisez precision-recall, PR-AUC, ou des métriques sensibles au coût selon le problème. Montrer que vous avez choisi la métrique exprès, pas par défaut, c'est un signal senior.
- Comparez à une vraie baseline. « Atteint 0,91 d'AUC » tout seul ne dit rien. « Atteint 0,91 d'AUC vs. 0,84 pour la régression logistique déjà en production » dit tout.
- Mentionnez l'évaluation en ligne quand vous l'avez. Les améliorations hors ligne qui ne se traduisent pas en ligne sont l'embarras le plus courant en ML appliqué. Si vous avez fait des A/B, nommez le résultat et la significativité.
Trois petits gestes. Le CV se lit complètement différemment.
Ce qu'il faut couper ou désaccentuer
- Les listes de cours en ligne. Coursera, Udacity, fast.ai sont des bons signaux en début de carrière ; au-delà du milieu, ils nuisent parce qu'on se demande pourquoi vous listez encore des cours.
- Les victoires de hackathon de plus de trois ans. Un hackathon signale une énergie récente, pas un exploit ancien.
- « Publié un article Medium sur X ». Sauf si l'article a réellement décollé (10K+ lectures ou cité par quelqu'un de notable), c'est du remplissage.
- Les listes de papers lus. Lire des papers, c'est le métier ; les lister n'est pas un accomplissement.
C'est le même piège qu'on a traité pour des postes voisins dans CV de data scientist : montrer l'impact, pas juste une liste d'outils et CV d'analyste de données — le mode d'échec est le même sur tous les profils data/ML, et la correction aussi.
Longueur et structure
- Une page si vous avez moins de cinq ans d'expérience, deux pages maximum au-delà. Les ingénieurs ML ne gagnent pas de points en longueur.
- Expérience en ordre antichronologique. Les CV fonctionnels sont lus comme cachant quelque chose.
- Rubrique formation brève — diplôme, école, année. Pas de mention au-delà du milieu de carrière. Si vous avez un doctorat avec un bon dossier de publications, les publications vont dans une rubrique à part, pas dans la formation.
- Pas de photo. Même sur les marchés où le CV en comporte traditionnellement, l'embauche tech/ML se mondialise et la version sans photo voyage mieux.
Comment ce CV s'articule avec le profil LinkedIn
La plupart des recruteurs ML iront voir votre LinkedIn dans la minute qui suit l'ouverture du CV. Les deux doivent raconter la même histoire — mêmes postes, même périmètre, même cadrage du titre. Un CV qui dit « j'ai mené le déploiement du retrieval profond » et un LinkedIn qui dit « Machine Learning Engineer, passionné par l'IA » signale une de deux choses : soit le CV exagère, soit le LinkedIn est abandonné. Dans les deux cas, vous perdez du terrain dans les 30 secondes suivantes.
Postulit tire des données structurées de votre LinkedIn vers un CV qui colle avec, ce qui résout le décalage le plus fréquent en recrutement ML — l'histoire est cohérente sur les deux surfaces, et le recruteur n'a jamais à choisir laquelle croire.
Une auto-vérif' de 60 secondes avant d'envoyer
- Un ingénieur ML senior peut-il répondre aux trois questions (livré ? évaluation rigoureuse ? bout en bout ?) en lisant seulement la moitié supérieure de la première page ?
- Au moins une ligne de votre dernier poste nomme-t-elle un stack de serving en production ?
- Au moins une ligne nomme-t-elle une baseline battue, de combien, sur quelle métrique ?
- Avez-vous ramené la liste d'outils à trois niveaux avec au plus huit items au sommet ?
- Avez-vous enlevé ce qui a plus de trois ans et qui ne représente pas qui vous êtes maintenant ?
Cinq oui et vous avez un CV d'ingénieur ML qui n'est pas classé en générique. Quatre sur cinq et vous êtes encore dans la course. Trois ou moins et la réécriture va plus vite que vous ne pensez — commencez par le patron de phrase sur un seul poste, et la suite vient toute seule.