Un flow n8n qui réconcilie le plan de recrutement de l’entreprise (les embauches approuvées par trimestre, par équipe, par niveau, avec des dates de démarrage) par rapport aux postes ouverts dans l’ATS et aux embauches réelles enregistrées dans le HRIS — et publie un rapport d’écart hebdomadaire dans Slack avec les variances ligne par ligne. Remplace la feuille de calcul du vendredi « quel est l’écart ? » du responsable recrutement par un digest structuré que la finance peut valider. Détecte les modes d’échec qui coûtent silencieusement un trimestre — des postes ouverts sur des équipes déjà à plan, des embauches comptabilisées sous la mauvaise équipe, des conversions de freelances comptées comme nouvelles embauches.
Quand l’utiliser
- L’entreprise dispose d’un plan de recrutement écrit avec une granularité équipe / niveau / date de démarrage (pas « nous embaucherons 50 au T3 » — « 12 en ingénierie, dont 4 IC senior, 2 IC intermédiaire, avec 6 qui démarrent avant la semaine 6 »).
- Vous avez au moins deux parmi : le plan de recrutement dans une source structurée (module de plan Carta, BambooHR, feuille de calcul finance), des postes ouverts dans Ashby ou un autre ATS, et des embauches enregistrées dans le HRIS.
- Vous clôturez un trimestre et avez besoin de voir la variance de prévision assez tôt pour faire quelque chose à ce sujet (pas la veille de la réunion du conseil).
- Le plan dispose de libellés d’équipe qui correspondent aux libellés d’équipe de l’ATS, OU vous avez une table de correspondance que vous pouvez maintenir.
Quand NE PAS l’utiliser
- Pas de plan structuré. Un plan qui vit dans une présentation ou un document de notes de réunion n’est pas réconciliable. Mettez d’abord le plan dans une source structurée ; le flow ne lit pas PowerPoint.
- Le hiring manager est la source de vérité. Si les embauches sont enregistrées dans des feuilles de calcul informelles par manager, la réconciliation est sans signification car « l’actuel » est ce que chaque manager dit. La valeur du flow dépend du HRIS comme actuel.
- Entreprises pré-Série B avec moins de 30 embauches par an. La charge de réconciliation dépasse la valeur à petite échelle ; un responsable recrutement et le CEO peuvent tenir le plan en tête.
- Le plan change chaque semaine. Si le plan est constamment révisé en milieu de trimestre, le signal de variance est dominé par le bruit de révision du plan. Stabilisez d’abord la cadence de changement de plan.
Configuration
- Importez le flow. Déposez
apps/web/public/artifacts/headcount-plan-reconciliation-n8n/headcount-plan-reconciliation-n8n.jsondans votre instance n8n. Chaque nœud portenotesInFlow: truepour que les notes intégrées expliquent la logique de réconciliation. - Câblez les credentials. Trois requis :
PLACEHOLDER_PLAN_DB_CRED_ID(accès en lecture à l’emplacement du plan — Postgres, Snowflake, ou un connecteur Sheets),PLACEHOLDER_ASHBY_CRED_ID(portée lecture Ashby),PLACEHOLDER_HRIS_CRED_ID(portée lecture HRIS ; BambooHR / Workday / Rippling sont pré-configurés, les autres nécessitent un connecteur). - Rédigez la correspondance des équipes. Un fichier YAML sous
n8n/data/team_mapping.ymlfait correspondre les libellés d’équipes du plan aux libellés d’équipes de l’ATS et du HRIS. Sans cela, le flow ne peut pas réconcilier entre systèmes. La rédaction de la correspondance est le coût ponctuel ; la maintenance continue est faible (uniquement quand des équipes sont créées ou fusionnées). - Configurez la destination Slack. Rapports de variance par équipe vers les canaux par équipe, plus un rapport agrégé vers un canal de direction du recrutement. Le nœud
Compose Variance Reportdu flow crée le message par modèle ; ajustez selon la préférence de votre équipe pour un résumé vs un détail. - Planifiez. Le défaut est hebdomadaire le lundi à 8h heure locale. Le nœud Cron a un
timezonedéfini explicitement — ajustez au fuseau horaire de votre bureau. - Test à blanc sur le dernier trimestre. Rejouez sur le plan et les réels du dernier trimestre. Confirmez que les chiffres de variance du flow correspondent à ce que votre partenaire finance avait en fin de trimestre. S’ils ne correspondent pas, la correspondance des équipes ou la classification freelance-vs-CDI est incorrecte.
Ce que le flow fait
Huit nœuds. La logique de réconciliation est déterministe ; le LLM n’intervient qu’à l’étape narrative de variance (5), et uniquement pour composer un résumé lisible par un humain des résultats déterministes.
- Cron Trigger — lundi 8h heure bureau (fuseau horaire défini explicitement dans les paramètres du nœud).
- Fetch Plan — extrait le plan de recrutement du trimestre en cours depuis la source du plan. Schéma :
team,level,count,target_start_date,req_status(approved/pending). - Fetch Open Reqs (Ashby) — extrait tous les postes ouverts depuis Ashby. Schéma :
req_id,team,level,opened_at,target_start_date. - Fetch Hires (HRIS) — extrait les embauches effectuées ce trimestre depuis le HRIS. Schéma :
hire_id,team,level,start_date,employment_type(fte/contractor/intern). - Reconcile — nœud Code. Joint plan + postes + embauches par équipe/niveau. Pour chaque cellule (équipe, niveau) :
- Postes ouverts vs plan — nombre de postes ouverts vs objectif du plan.
- Embauches vs plan — nombre d’embauches CDI vs objectif du plan. Les freelances et stagiaires ne sont PAS comptés (le bucket conversion-freelance du flow est séparé).
- Variance —
(plan - embauches - postes_ouverts). Négatif = au-dessus du plan. Positif = écart. - Signal de dérive — signale les cellules où la variance a changé de >3 depuis la dernière exécution, suggérant une approbation non planifiée ou une embauche manquée.
- Cellules anomalie : postes ouverts sans entrée dans le plan (poste non autorisé ?), embauches comptabilisées sur des équipes absentes du plan (mal classifiées ?), conversions de freelances déclarées comme nouvelles embauches (double comptage ?).
- Claude Compose Narrative — prend l’output structuré de réconciliation et rédige un résumé de variance de 200 mots par canal d’équipe + un résumé agrégé de 400 mots pour la direction. Le LLM ne calcule PAS les variances ; il narre les résultats déterministes. Le prompt interdit explicitement au modèle d’inférer des causes (« l’équipe est en retard parce que… ») car c’est le travail du lecteur.
- Post Per-Team — message Slack par canal d’équipe avec uniquement la variance de cette équipe. Posture de confidentialité : chaque équipe voit uniquement ses propres chiffres.
- Post Aggregate — message Slack vers le canal de direction du recrutement avec le tableau inter-équipes. Inclut les cellules anomalie avec un lien vers les enregistrements sources.
Réalité des coûts
Par exécution hebdomadaire, sur Claude Sonnet 4.6 :
- Tokens LLM — la composition narrative est la seule étape LLM. Typiquement 2-4k d’entrée (table de réconciliation structurée + instructions du skill) et 1-2k de sortie (résumés par équipe + agrégat). Environ 0,02-0,04 $ par exécution. Négligeable à cadence hebdomadaire.
- Coûts API plan-source / ATS / HRIS — appels en lecture uniquement. Dans les quotas gratuits pour Ashby et la plupart des fournisseurs HRIS.
- Temps du responsable recrutement — le gain. La reconstruction de la feuille de calcul le vendredi après-midi prend 60-120 minutes par semaine quand elle est faite sérieusement ; lire le digest du lundi prend 5-10 minutes. Le gain de temps le plus important est sur les cellules anomalie, souvent non détectées lors de la réconciliation manuelle jusqu’à la fin de trimestre.
- Temps de configuration — 90 minutes y compris la rédaction de la correspondance des équipes. La correspondance des équipes est le coût de configuration contraignant.
Métriques de succès
Suivez trois éléments, mensuellement :
- Précision en fin de trimestre — en fin de trimestre, quelle était la différence entre les embauches projetées (semaine 8 du trimestre) et les embauches réelles (semaine 13) ? Devrait tomber de la dérive historique de l’entreprise à moins de 5 %. L’alerte précoce est ce qui rend la variance exploitable.
- Délai de résolution des anomalies — délai de « cellule anomalie signalée » à « anomalie résolue » (correctement classifiée, plan mis à jour, ou embauche réattribuée). Devrait tomber de « découvert en fin de trimestre » à moins de 5 jours.
- Fréquence de révision du plan — combien de fois le plan lui-même change en milieu de trimestre. Le flow le fait remonter ; si les révisions sont hebdomadaires, la stabilité du plan est elle-même le problème et le signal de variance est du bruit.
Alternatives
- vs tableaux de bord natifs de l’ATS (Ashby Hiring Plan, Greenhouse Headcount Planning). Les tableaux de bord natifs de l’ATS fonctionnent si l’ATS est à la fois la source du plan ET la source de l’actuel. Choisissez-les si vous pouvez consolider. Choisissez le flow si votre plan vit dans le système de la finance, vos postes dans l’ATS, et vos embauches dans le HRIS — trois systèmes qui nécessitent une jointure et qu’aucun tableau de bord ATS unique ne voit.
- vs modules de planification des effectifs Carta / Pave / Lattice. Identique à ci-dessus ; si la plateforme est votre source unique, utilisez-la. Le flow est pour le cas multi-systèmes.
- vs tableau de bord construit par la finance. Les tableaux de bord BI construits par la finance (Looker, Mode, Hex) gèrent bien les jointures. Choisissez le BI si vous avez la capacité analytique. Choisissez le flow si vous ne l’avez pas, ou si vous voulez que la variance soit poussée par Slack plutôt que tirée par tableau de bord.
- vs la feuille de calcul manuelle du vendredi. Le défaut. Mode d’échec prévisible : l’auteur de la feuille de calcul part, la méthodologie dérive, et les variances en fin de trimestre surprennent le conseil. Le flow est la correction légère.
Points de vigilance
- Dérive de la correspondance des équipes. Protection : la première étape de réconciliation du flow vérifie que chaque équipe du plan, chaque équipe de l’ATS et chaque équipe du HRIS apparaît dans le fichier de correspondance. Les entités sans correspondance remontent comme cellules anomalie ; le rapport les signale explicitement plutôt que de les supprimer silencieusement.
- Double comptage des conversions de freelances. Protection : la requête HRIS filtre par
employment_type = 'fte'. Les conversions de freelances existants en CDI apparaissent dans une section séparée « conversions ce trimestre », pas dans le décompte des nouvelles embauches. - Révision du plan en milieu de trimestre effaçant la variance. Protection : le rapport montre les chiffres du plan actuel ET les chiffres du plan de début de trimestre initial, avec le delta affiché. Le lecteur voit les deux signaux.
- Embauches hors cycle (équipes acquises, stagiaire vers CDI). Protection : le flow signale toute embauche avec une
start_dateavant le début du trimestre comme « hors cycle » et la présente séparément. Ces cas sont fréquents (acquisition, clôture tardive) et nécessitent une lecture différente des embauches habituelles du plan. - Confidentialité : canaux par équipe voyant les chiffres des autres équipes. Protection : le modèle de post Slack par équipe ne référence que la ligne de variance de cette équipe. Le post agrégé (inter-équipes) va uniquement dans le canal de direction du recrutement, pas dans les canaux par équipe.
- Source du plan obsolète. Protection : le flow vérifie le
last_updated_atde la source du plan. Si plus ancien que 14 jours, émettez un en-tête d’avertissement sur le rapport (« Plan mis à jour il y a >14 jours — la variance peut refléter l’obsolescence du plan, pas un vrai écart »).
Stack
Le bundle d’artifact se trouve dans apps/web/public/artifacts/headcount-plan-reconciliation-n8n/ et contient :
headcount-plan-reconciliation-n8n.json— l’export du flow n8n avec tous les nœuds configurés_README.md— configuration des credentials, format de correspondance des équipes, procédure de test à blancteam-mapping-template.yml— le YAML de correspondance des équipes à copier et remplir
Outils utilisés par le workflow : n8n (l’orchestration), Ashby (l’ATS — remplacez par Greenhouse en remplaçant le nœud fetch-reqs), Claude (composition narrative), Slack (la destination du rapport). Le connecteur HRIS est propre à chaque entreprise.
Concepts liés : planification des effectifs, métriques du funnel de recrutement, coût par embauche.