Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Nos recruteurs livrent désormais du logiciel

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

By Vadim SoloveyJul 28, 20268 min read
Vadim Solovey

About Vadim Solovey

Founded DoiT in 2011 and have been here ever since — in every flavor of CTO, co-CEO, and now CEO. I started my career in 1999 building data centers before anyone called it "the cloud," and I've spent the two decades since trying to deliver on what the cloud was actually supposed to be. I still write code most weeks.

My personal page

Il y a un an, careers.doit.com était une page HubSpot dont les filtres ne fonctionnaient pas. En cliquant sur la catégorie "Customer Experience", vous ne voyiez peut-être qu'un tiers des postes ouverts, car les offres dans Greenhouse sont rattachées aux départements enfants et le site ne parcourait jamais la hiérarchie. Les candidats postulaient via une iframe intégrée qui semblait avoir été conçue en 2014 — parce que c'était le cas.

Aujourd'hui, l'équipe qui ouvrait autrefois des tickets à propos de cette page est responsable d'une application Next.js en production, hébergée sur Google Cloud Run. Elle sert le site carrières public et, derrière un login, fait tourner un générateur de fiches de poste IA, un outil de sourcing de candidats, un outil de présélection des candidatures, un workflow de révision des rémunérations avec approbations, un éditeur de blog pour les témoignages d'employés et un bot Slack qui annonce les nouveaux postes. L'équipe de recrutement n'a pas fait appel à une agence. Elle n'a pas attendu son tour dans le backlog engineering. Elle a tout construit elle-même, avec un seul ingénieur et beaucoup de Claude.

Je souhaite partager comment cela fonctionne, car je pense que le modèle est reproductible et que la plupart des entreprises le compliquent inutilement.

PerfectScale™ for Kubernetes

Ready to optimize?

Get your free Kubernetes savings analysis

L'Applied AI engineer

Au cœur du dispositif se trouve un rôle que nous appelons l'Applied AI engineer. Il s'agit d'un ingénieur logiciel dont le travail à plein temps consiste à être intégré au sein d'une seule équipe métier. Pas un consultant qui recueille les besoins et disparaît pendant un trimestre, ni une équipe plateforme qui construit de l'"AI enablement" pour tout le monde et personne à la fois. Un ingénieur, une équipe (notre équipe People Ops, en l'occurrence), présent à leurs réunions, confronté à leurs irritants.

Notre équipe de recrutement, rattachée à l'organisation People, en a reçu un. Le mandat de l'ingénieur était simple : automatiser ce qui est fastidieux, construire ce qui manque et apprendre à l'équipe à en faire toujours plus par elle-même, au fil du temps.

C'est ce dernier point qui compte le plus. Nous évaluons l'ingénieur à l'aune de ce que l'équipe peut livrer sans lui, pas de sa propre production.

Le vrai travail, c'était les specs

La refonte du site carrières a commencé par un document, pas par du code. Nous avons rédigé une longue spec en markdown décrivant tout : la hiérarchie des départements Greenhouse et la manière exacte dont les filtres doivent la parcourir, les champs du formulaire de candidature, les redirections depuis les anciennes URL, le niveau d'accessibilité exigé, et même les erreurs de l'ancien site à ne surtout pas reproduire. Ce fichier a rejoint le repo sous le nom CLAUDE.md, et Claude Code a construit le site en s'appuyant dessus.

Ce que je n'avais pas anticipé, c'est que les recruteurs pouvaient lire la spec. Ils l'ont corrigée. "L'entretien recruteur dure 30 minutes, pas 45." "Les offres sont rattachées au département enfant, c'est pour ça que les filtres ne fonctionnent pas." Des connaissances métier qui se perdraient normalement au fil des allers-retours entre un PM et un prestataire sont allées directement dans la source de vérité.

Nous rédigeons désormais une spec de ce type pour chaque outil interne. La spec du JD Builder fait une dizaine de pages et inclut les prompts exacts, la grille de notation et les questions ouvertes pour les parties prenantes. Sa rédaction a pris plusieurs jours. L'outil fonctionnel a demandé moins de temps que la spec elle-même. Ce ratio me semble encore étrange, et j'ai cessé de m'attendre à ce qu'il s'inverse.

Ce qu'ils ont réellement construit

Le site public est la partie visible : un formulaire de candidature sur mesure qui dialogue directement avec l'API Greenhouse, une carte des recrutements, des alertes emploi, un vrai travail de SEO et d'AEO, et un e-mail de confirmation aux couleurs de la marque dès l'envoi de la candidature. Appréciable, mais c'est le minimum attendu.

Les outils internes sont ce qui a réellement changé le quotidien de l'équipe :

JD Builder. N'importe qui chez DoiT peut générer ou réécrire une fiche de poste. L'IA la rédige dans notre ton et, pendant que vous éditez, elle réévalue le brouillon quasiment chaque seconde selon cinq dimensions : inclusion, ton, exhaustivité, lisibilité, et la capacité à réellement retenir l'attention d'un bon candidat. Importez un poste ouvert depuis Greenhouse, corrigez-le, renvoyez-le. L'objectif que nous nous sommes fixé : passer de "j'ai besoin d'une fiche de poste" à la publication en moins de 15 minutes, avec un score d'inclusion de 85 ou plus. Les hiring managers ont cessé d'envoyer leurs brouillons à l'équipe recrutement pour réécriture. Ils sont autonomes.

JD Builder

Notre système interne de création de fiches de poste

Candidate Sourcing. Un recruteur sélectionne un poste ouvert, l'outil lit la fiche de poste, demande à l'IA de rédiger une requête de recherche assortie de critères de vérification, puis transmet le tout à une API de recherche web qui identifie environ 250 profils correspondants et retrouve leurs e-mails professionnels. Les critères encodent ce que nous avons appris sur les profils qui réussissent chez nous, comme les candidats venant d'entreprises qui vendent aux équipes plateforme et DevOps. La prise de contact se fait depuis le même écran, via LinkedIn et e-mail, avec leads favoris, notes et suivi des contacts. Les sourceurs ont cessé de jongler entre onglets de navigateur et feuilles de calcul.

Candidate Sourcing

Interface de sourcing de candidats

Candidate Screener. C'est sur le volume que le recrutement épuise les humains, et c'est donc l'outil qui compte le plus. Un poste récent a attiré environ 2 200 candidatures ; les filtres natifs de Greenhouse ont ramené ce chiffre à environ 1 100 candidats actifs. Le screener a récupéré le CV, les réponses de présélection et le profil de chacun depuis Greenhouse, puis l'IA les a notés selon huit traits universels et les exigences spécifiques du poste. Chaque candidat reçoit une évaluation écrite, et je dis bien chaque candidat : un résumé, des points forts étayés par des citations du CV, des points de vigilance à creuser en entretien et des scores par trait, avec un lien vers son profil Greenhouse. Nous avons fixé le seuil à 96 et obtenu 61 candidats solides. Voilà une shortlist qu'une équipe de recrutement peut réellement passer en revue ensemble, et exporter en CSV le moment venu. Le poste sur lequel nous l'avons testé ? Notre prochain Applied AI engineer. C'était de circonstance.

Candidate Screener

Présélection des candidats avec un classifieur IA

Comp Review. Lorsqu'un Doer postule à un poste interne dans Greenhouse, un webhook prépare le brouillon de révision de rémunération avant même qu'on le demande : salaire actuel, bonus, equity et historique de promotions issus de l'API Rippling (notre système RH), plus une fourchette salariale calculée à partir des pairs occupant le même rôle dans la même région. Il notifie ensuite sur Slack le recruteur, le manager, le N+2, le HRBP et le responsable de département. Ce qui prenait une semaine d'archéologie dans les feuilles de calcul et de relances par e-mail est désormais un flux d'approbation avec rappels.

Comp Review

Système de révision des rémunérations

Annonces Slack. Les nouveaux postes sont publiés sur Slack dès leur ouverture, avec le recruteur et le hiring manager identifiés et la date limite des candidatures internes. Les Doers sont informés immédiatement des nouveaux postes et peuvent envisager une mobilité interne si cela correspond à leurs aspirations de carrière.

Slack announcements

Notifications Slack internes

Aucun de ces outils n'aurait été jugé assez prioritaire pour obtenir du temps sur la roadmap engineering. Ensemble, ils ont changé le fonctionnement de l'équipe.

Your cloud bill shouldn't be a mystery

Optimization, automation, expertise. In one platform.

Le point qui appelle à la prudence

La présélection est l'usage le plus lourd de conséquences que nous ayons confié à l'IA, et je veux être honnête sur ses deux versants.

Les arguments en sa faveur sont solides. Le screener lit le candidat numéro 1 100 avec la même attention et les mêmes critères que le candidat numéro 1. Les humains en sont incapables. Nous nous fatiguons, nous restons ancrés sur le dernier CV lu, et en fin d'après-midi nous faisons du pattern-matching sur les mauvais signaux. Une personne enfouie en position 900 de la pile obtient de la machine une lecture équitable qu'elle n'aurait jamais eue d'un relecteur épuisé. Je suis un fervent défenseur de l'IA précisément à cet endroit.

Mais l'IA porte ses propres biais, et un biais systématique appliqué à 1 100 personnes d'un coup pose un problème d'une autre nature qu'un biais humain fluctuant. Le screener produit donc une shortlist et une liste de points à creuser ; les humains prennent toutes les décisions ensuite. Et avant que cet outil ne passe du statut d'expérimentation à celui d'outil interne établi, nous nous devons une conversation ouverte sur l'équité, la transparence et les garde-fous. Nous avons cette conversation en ce moment, ouvertement, et j'encourage toute entreprise qui s'engage sur cette voie à l'avoir avant que l'outil ne fonctionne si bien que plus personne n'en ait envie.

Ce que je dirais à un autre CEO

Partez de quelque chose de cassé, pas d'une stratégie IA. Nous n'avons pas décidé d'"adopter l'IA dans les RH". Nous avons décidé de réparer un site carrières aux filtres cassés. Le reste s'est construit à partir de là, un irritant à la fois.

Un seul repo, une plomberie partagée. Chaque outil vit dans le repo du site carrières et réutilise les mêmes intégrations Greenhouse et Rippling ainsi que la même authentification. Le deuxième outil a demandé une fraction de l'effort du premier. Le cinquième n'a quasiment rien coûté.

Les non-ingénieurs évaluent les résultats, pas le code. Nos recruteurs ne savent pas lire du TypeScript et n'en ont pas besoin. Ils peuvent vous dire en quelques secondes si une fiche de poste générée sonne comme nous, et le dashboard de qualité leur donne un langage commun pour identifier ce qui cloche. Faites confiance à l'expert métier pour juger le résultat, et laissez l'agent et l'ingénieur se soucier du diff.

Les coûts n'ont rien de spectaculaire. Un modèle rapide et peu coûteux pour la notation en temps réel, un modèle puissant pour la génération, un conteneur qui redescend à zéro quand personne ne recrute à 3 heures du matin. Ce n'est pas un gros poste de dépense. La partie coûteuse, c'est le salaire de l'ingénieur, et un ingénieur par équipe, c'est justement tout le principe.

La vérité, peu glamour, c'est que l'essentiel de la valeur est venu d'une personne impliquée, au plus près du travail, avec un agent de codage qui a fait disparaître l'excuse du "nous n'avons pas de capacité engineering". Cette combinaison est à la portée de presque toutes les entreprises dès aujourd'hui.

Et si une entreprise où les recruteurs livrent du logiciel en production et où le CEO rédige des specs ressemble à l'endroit qu'il vous faut, le site carrières construit par l'équipe est sur careers.doit.com. Les filtres fonctionnent désormais ; j'ai vérifié.