RPO : accélérer les e-mails candidats et le suivi de sélection avec Claude Code
RPO : rédiger les e-mails candidats et suivre les statuts de sélection avec Claude Code. Prompt, script de vérification et règles RGPD.
Un vendredi en fin d’après-midi, trois clients, trente-cinq candidats à gérer. Réponses pour caler des entretiens, lettres de refus, relances de dossiers. J’avais ma boîte de réception ouverte et je suis resté trente minutes à me demander par quoi commencer.
Et là, la bêtise. J’ai envoyé au candidat du client B un e-mail écrit pour le client A : « Votre prochain entretien est mardi prochain ». J’ai vu l’erreur à la seconde où j’ai cliqué sur Envoyer, et j’ai blêmi.
Le métier de RPO (recrutement externalisé), c’est ce genre de changement de contexte mental à répéter toute la journée. Chaque client a son propre processus de sélection et son propre ton. Chaque candidat est à une étape différente. Tant qu’on fait tourner ça à la mémoire et à la volonté, en pleine période chargée quelque chose finit toujours par casser.
Ce que j’ai mis en place ces derniers mois, ce n’est pas l’« automatisation totale » des e-mails. C’est une frontière simple : je confie à Claude Code la rédaction des brouillons et le tri, mais la décision d’envoyer reste entre des mains humaines. Voici la marche à suivre concrète, avec un prompt prêt à copier-coller et un script de vérification.
Points clés
- Dans le RPO, la plupart des reprises de travail ne viennent pas de la « rédaction » mais d’un trou dans le suivi : on ne sait plus quel candidat est à quelle étape.
- Confiez à Claude Code les brouillons d’e-mails candidats, l’inventaire des statuts de sélection et la détection des oublis ; gardez l’envoi et la décision d’embauche pour vous.
- En modélisant les e-mails par patrons, on passe de 5 à 8 minutes par message à 1 ou 2 minutes. À 100 e-mails par semaine, cela représente environ 20 heures économisées par mois.
- Pour les données personnelles : ne transmettez jamais à l’IA les noms réels ni les coordonnées ; travaillez avec des pseudonymes et des étiquettes d’étape.
- L’article fournit un modèle de prompt réutilisable tel quel et un script de vérification qui repère les statuts de sélection à l’arrêt.
À qui s’adresse cet article, et où ça coince toujours
Cet article vise les chargés de RPO qui absorbent le recrutement de plusieurs entreprises clientes. Seul, vous suivez 5 à 10 sociétés et plusieurs dizaines de candidats en parallèle en permanence. Réponses aux approches sur les jobboards, échanges avec les cabinets, organisation des entretiens, annonces des résultats : presque tous les canaux convergent vers vous.
Posons d’abord le flux de travail habituel.
- Recueillir auprès du client le profil recherché et le processus de sélection
- Sourcer des candidats via les jobboards et les cabinets
- Annoncer aux candidats le résultat de la présélection sur dossier
- Caler les dates des premiers et seconds entretiens
- Récupérer l’évaluation du client après chaque entretien
- Envoyer les réponses d’offre ou de refus
- Partager un rapport d’avancement avec le client
Ce déroulé ne change pas beaucoup d’un RPO à l’autre. Le problème, c’est de faire tourner le même déroulé en parallèle pour autant de clients.
Voici les reprises de travail les plus fréquentes. Ça vous parle ?
- Reprendre tel quel pour le client B un message écrit avec le ton du client A, et créer un malaise.
- Promettre « une réponse sous 48 heures après l’entretien », puis ne plus tenir quand les candidats s’accumulent.
- Oublier pendant plusieurs jours un candidat bloqué en attente de l’évaluation du client.
- Réécrire de zéro chaque lettre de refus et s’épuiser en fin de journée.
- Voir le statut dans le tableur diverger de l’état réel des échanges.
Aucun de ces points n’est une question de compétence : c’est juste que le changement de contexte mental ne suit plus le volume de travail en parallèle. C’est précisément là que l’IA entre en jeu.
Ce qu’on confie à l’IA, et ce qu’un humain doit toujours trancher
Posons d’emblée la frontière. La laisser floue, c’est s’exposer à l’envoi raté que je décrivais en ouverture.
| Tâche | Confié à Claude Code | Tranché par un humain |
|---|---|---|
| E-mails candidats | Rédaction du brouillon, ajustement du ton | Cliquer sur Envoyer |
| Statut de sélection | Inventaire de la liste, détection des oublis | La décision d’embauche elle-même |
| Organisation des dates | Mise en forme des créneaux, brouillon de relance | La confirmation finale |
| Rapport d’avancement | Agrégation des chiffres, brouillon | La décision de le transmettre au client |
| Lettre de refus | Génération d’un texte attentionné | La validité du motif de refus |
Le principe est simple. Ce qui, en cas d’erreur, s’arrête dans le dossier Brouillons, on le confie à l’IA ; ce qui, une fois sorti, ne se rattrape plus, on le garde pour soi. L’envoi, le résultat, la confirmation : ces trois actions sont les dernières que des doigts humains touchent. Une fois cette règle posée, on ne se plante plus, même en période chargée.
Pour décider plus finement de ces permissions, l’article rédigé pour les profils non techniques, Claude Code pour les non-ingénieurs, est un bon repère.
Cas d’usage 1 : produire les brouillons d’e-mails candidats par patrons
C’est ici que le gain est le plus net. En y regardant bien, les e-mails du RPO se résument à quelques patrons : dossier accepté, créneau d’entretien, refus, offre. La structure du texte est la même ; ne changent que le nom du candidat et le ton du client.
L’idée : enregistrer les textes récurrents comme des « modèles », puis transmettre la situation à Claude Code pour qu’il ne produise que le brouillon. Avant, un message me prenait 5 à 8 minutes à écrire ; en le coulant dans un modèle, 1 à 2 minutes suffisent.
La comparaison avant/après donne ceci.
- Avant : j’écris chaque fois de zéro en regardant ma boîte de réception. En fin de journée, le texte devient bâclé.
- Après : je transmets la situation en quelques puces, le brouillon sort. L’humain ne fait que vérifier les faits et ajuster.
Voici le modèle de prompt pour générer le brouillon. Copiez-le tel quel et ne remplacez que ce qui est entre crochets.
Tu es un assistant de rédaction d'e-mails pour un service de recrutement externalisé (RPO).
Rédige en français le brouillon d'un e-mail destiné à un candidat, selon les conditions ci-dessous.
# Ton du client
[ex. : poli et formel ; éviter le jargon]
# Type d'e-mail
[dossier accepté / proposition de créneau d'entretien / refus / offre]
# Situation
- Désignation du candidat : [Candidat A, ou autre pseudonyme]
- Poste visé : [poste commercial, etc.]
- Information à transmettre : [premier entretien le 12/06 à 14h00, en ligne]
- Complément : [3 jours sans nouvelles depuis le dernier contact, ajouter une brève excuse]
# Contraintes
- environ 100 à 150 mots
- proposer aussi un objet
- ne mettre aucune information identifiant la personne dans le corps du message
- comme un humain relit avant l'envoi, lister en fin de message les points à vérifier
L’astuce, c’est de faire produire ces « points à vérifier » à la fin. Quand l’IA signale elle-même les endroits incertains, la relecture humaine se boucle en un instant. Si vous voulez affiner la construction de vos prompts, lisez aussi Techniques avancées de prompt engineering.
Cas d’usage 2 : repérer chaque matin les oublis de suivi
Le deuxième usage : détecter les candidats à l’arrêt. La pire chose dans le RPO, c’est d’« oublier » quelqu’un. Laisser un candidat bloqué trois jours en attente de l’évaluation du client, c’est risquer à la fois la perte d’opportunité et l’atteinte à la confiance.
Ici, ne laissez pas l’IA juger : il est plus sûr de repérer les oublis avec une règle mécanique. Gardez dans un CSV l’étape de chaque candidat et la date de dernière mise à jour, puis laissez un script faire ressortir « ceux qui n’ont pas bougé depuis plusieurs jours ».
Le script Node.js suivant liste les candidats sans mouvement depuis 3 jours ou plus. Il est conçu pour tourner sans nom réel, uniquement avec des identifiants pseudonymisés. Placez candidates.csv dans le même dossier et exécutez.
import { readFile } from "node:fs/promises";
// Format de candidates.csv :
// id,stage,lastUpdate,owner
// C001,presélection,2026-06-01,Masa
// C002,attente premier entretien,2026-06-05,Masa
const STALE_DAYS = 3;
const today = new Date("2026-06-07");
const raw = await readFile(new URL("./candidates.csv", import.meta.url), "utf8");
const rows = raw.trim().split("\n").slice(1); // on retire l'en-tête
const stale = [];
for (const line of rows) {
const [id, stage, lastUpdate, owner] = line.split(",").map((s) => s.trim());
const days = Math.floor((today - new Date(lastUpdate)) / 86400000);
if (days >= STALE_DAYS) {
stale.push({ id, stage, owner, days });
}
}
stale.sort((a, b) => b.days - a.days);
if (stale.length === 0) {
console.log("Aucun candidat à l'arrêt.");
} else {
console.log(`Candidats sans mouvement depuis ${STALE_DAYS} jours ou plus : ${stale.length}`);
for (const c of stale) {
console.log(`- ${c.id} / ${c.stage} / responsable ${c.owner} / ${c.days} jours d'arrêt`);
}
}
L’exécution se résume à ceci.
node check-stale.mjs
La liste obtenue, transmettez-la directement à Claude Code en demandant : « À partir de cette liste de dossiers à l’arrêt, rédige les brouillons de relance à envoyer aujourd’hui, classés par étape », et vous rejoignez le cas d’usage 1. La décision pour l’humain, la détection fastidieuse des oublis pour la machine, la rédaction pour l’IA. Les rôles se répartissent proprement.
Cas d’usage 3 : figer les règles de ton par client dans CLAUDE.md
Le troisième usage : un dispositif pour éviter de confondre les tons d’un client à l’autre. Mon envoi raté de l’introduction venait à la racine du fait que « la règle du client A et celle du client B s’étaient mélangées dans ma tête ».
Cela s’évite en écrivant les règles de chaque client dans un fichier que l’IA relit à chaque fois. Avec Claude Code, si vous notez les règles du projet dans CLAUDE.md, il s’y réfère automatiquement à chaque demande.
Par exemple, on écrirait ceci.
- Client A : registre très soutenu. Vouvoiement strict. Pas d’émojis. Réponse dans la journée.
- Client B : un peu plus décontracté. Ajouter systématiquement une phrase qui rassure le candidat sur ses inquiétudes.
- Commun : ne jamais garantir un salaire ni des avantages. Toujours proposer plusieurs créneaux de date.
La manière de bien construire ce fichier est détaillée dans Bonnes pratiques pour CLAUDE.md. Une fois les règles dans un fichier, même quand la tête ne suit plus en période chargée, l’IA arrête les confusions à votre place.
Comme liste de contrôle après mise en place, vérifier les points suivants avant l’envoi fait quasiment disparaître les incidents.
- Le client destinataire et le ton du message correspondent-ils ?
- La désignation et le poste du candidat sont-ils corrects ?
- La date, le lieu et l’URL sont-ils exacts ?
- Ai-je garanti à tort un salaire ou des avantages ?
- N’ai-je pas collé de données personnelles dans la consigne envoyée à l’IA ?
Estimation du ROI et précautions sur les données personnelles
Voici un repère grossier de gain de temps. Avec 100 e-mails candidats par semaine, 7 minutes par message avant et 2 minutes après, cela fait environ 8 heures par semaine, soit autour de 30 heures par mois. En ajoutant le temps manuel de détection des arrêts, la période chargée profite encore plus. Ce ne sont que des ordres de grandeur, mais la vraie valeur, c’est de réinvestir le temps gagné dans les entretiens candidats et les propositions.
En revanche, ici on avance avec prudence. Le RPO est un métier qui manipule des données personnelles à la pelle. Ne collez jamais directement dans la consigne à l’IA le nom réel, le numéro de téléphone, l’adresse e-mail ou la date de naissance d’un candidat. Tenez-vous-y rigoureusement.
Concrètement, voici comment concevoir les choses.
- Traiter les candidats sous un pseudonyme comme « Candidat A » ou « C001 ».
- Ne pas transmettre à l’IA le contenu des coordonnées ou du CV ; l’humain fait le rapprochement de son côté.
- Si vous voulez masquer aussi le nom du client, le remplacer par « Société X ».
- Vérifier dans les conditions du service utilisé que les données saisies ne servent pas à l’entraînement.
Même en travaillant sous pseudonyme, c’est largement suffisant pour modéliser les e-mails et détecter les arrêts. Mieux : ne pas transmettre de données personnelles rend les textes plus génériques, donc plus réutilisables.
Pour gagner encore en régularité dans vos demandes quotidiennes, les astuces de productivité pour Claude Code complètent bien cette méthode.
FAQ
Q. Puis-je laisser envoyer les e-mails entièrement en automatique ? Mieux vaut éviter. Un e-mail de RPO, une fois envoyé, ne s’annule pas. Ne brisez pas la frontière : l’IA va jusqu’au brouillon et aux points de vérification, c’est l’humain qui appuie sur Envoyer.
Q. Puis-je faire lire et résumer le CV d’un candidat par l’IA ? À manier avec prudence du point de vue des données personnelles. Si un résumé est vraiment nécessaire, masquez le nom et les coordonnées et ne transmettez que le contenu des missions et le nombre d’années d’expérience. Vérifiez aussi au préalable que votre contrat avec le client autorise l’usage d’une IA externe.
Q. Je ne sais pas programmer ; puis-je quand même utiliser le script de vérification ? Il suffit d’installer Node.js et de taper une seule ligne de commande. Commencez par mettre en place l’environnement avec le guide de démarrage de Claude Code, vous trébucherez moins.
Q. Pour commencer petit, par où débuter ? Par les brouillons de lettre de refus. Le texte est standardisé et, en plus, le réécrire à chaque fois est discrètement pénible. Le seul fait d’en faire un modèle réduit nettement l’épuisement de fin de journée.
En conclusion
J’ai créé de mon côté un CSV de 20 candidats fictifs et fait tourner le script de détection ci-dessus. Il a fait ressortir d’un coup 5 candidats à l’arrêt depuis 3 jours ou plus ; les oublis de l’époque où je parcourais la liste à l’œil ont disparu comme par magie.
Pour les brouillons d’e-mails, j’ai écrit les tons des clients A et B sous forme de règles à la manière d’un CLAUDE.md, puis généré une dizaine de messages. Zéro confusion de ton. Ce que j’ai découvert, c’est que les « points à vérifier » que l’IA ajoute en fin de message sont plus utiles que je ne l’imaginais : « Vérifiez que le jour de la semaine de la date correspond bien aux faits » revenait à chaque fois, et la relecture humaine se bouclait en quelques dizaines de secondes.
À l’inverse, un jugement humain comme la validité d’un motif de refus ne peut évidemment pas être délégué à l’IA. Là, garder la main comme le prévoit la frontière s’est révélé être le bon choix.
Les équipes de RPO qui veulent transformer tout le suivi de sélection en un dispositif d’entreprise gagneront du temps en cadrant la conception opérationnelle ensemble via une formation ou un accompagnement. Pour celles et ceux qui veulent d’abord tester en solo, copiez le script de détection et le modèle de prompt ci-dessus et faites-les tourner demain matin sur votre boîte de réception.
En référence externe, pour le traitement des données personnelles, consultez les lignes directrices à jour sur le site officiel de la CNIL afin d’avancer sereinement.
PDF gratuit: cheatsheet Claude Code
Saisissez votre email et téléchargez une page avec commandes, habitudes de review et workflow sûr.
Nous protégeons vos données et n'envoyons pas de spam.
À propos de l'auteur
Masa
Ingénieur spécialisé dans les workflows pratiques avec Claude Code.
Articles liés
Checklist d'autorisations avant de laisser Claude Code modifier un site client
Un cadre pour agences: zones lisibles, modifiables et interdites avant toute édition IA.
Transformer les tickets support SaaS en étapes reproductibles avec Claude Code
Un flux support pour convertir des signalements flous en rapport exploitable par l'équipe technique.
Transformer ses vieilles notes Obsidian en brief Claude Code en 10 minutes
Triez vos notes Obsidian en faits, décisions et inconnues pour obtenir un brief que Claude Code exécute direct. Une routine de 10 minutes.