agent-rh

star 0

Scan et analyse des candidatures via le MCP Agent RH. Lance un scan complet ou par poste, formate les résultats en tableaux par poste avec score géo, score skills et verdict GO/PARTIAL/NO GO. Permet aussi d'envoyer des mails de prise de contact aux candidats.

Happykiller By Happykiller schedule Updated 6/10/2026

name: agent_rh description: Scan et analyse des candidatures via le MCP Agent RH. Lance un scan complet ou par poste, formate les résultats en tableaux par poste avec score géo, score skills et verdict GO/PARTIAL/NO GO. Permet aussi d'envoyer des mails de prise de contact aux candidats. trigger: /agent_rh

agent_rh — Skill Agent RH

Déclenchement

Ce skill est invoqué via /agent_rh avec un argument optionnel :

  • /agent_rh → scan de tous les postes actifs
  • /agent_rh <job_id> → scan d'un seul poste (ex: /agent_rh 7758411)
  • /agent_rh jobs → affiche la liste des postes configurés sans lancer de scan

Workflow obligatoire

Étape 1 — Appel MCP

Si l'utilisateur demande la liste des postes (jobs) :

mcp__agent-rh__get_jobs_config()

→ Afficher la liste formatée (id, titre, critères géo, skills required/bonus) puis STOP.

Sinon (scan), appeler :

mcp__agent-rh__run_scan(job_id="<id>" | job_id="")
  • job_id="" = scan complet de tous les postes actifs
  • job_id="7758411" = scan d'un poste précis

Étape 2 — Rendu formaté

Pour chaque poste retourné dans jobs[], générer le bloc suivant :


📋 [job_title] — Poste [job_id]

[N] candidat(s) analysé(s)

Candidat Géo Résumé géo Skills Compétences matchées Verdict Lien
... ... ... ... ... ... ...

Règles de remplissage colonne par colonne

Colonne « Candidat »

Nom complet du candidat tel que retourné par le MCP.

Colonne « Géo »

Basée sur geo_check.passed :

  • true
  • false
  • null

Colonne « Résumé géo »

Utiliser geo_check.detail en supprimant le suffixe — hors région, — région ✓ et toute variante similaire (ex: — région ✓ (×50%)). Ne conserver que la partie descriptive (CP, ville, etc.).

Colonne « Skills »

Calcul : round(skills_check.weight_earned / skills_check.weight_max * 100) %

Afficher sous la forme XX% (ex : 85%).

Si weight_max == 0 → afficher N/A.

Colonne « Lien »

Si teamtailor_url est présent : afficher l'URL brute (ex: https://app.teamtailor.com/...). Si absent → .

Colonne « Compétences matchées »

Union de matched_required + matched_bonus (clés uniquement), séparées par des virgules. Si vide → . Limiter à 5 éléments + si plus de 5.

Colonne « Verdict »

Mapper le verdict MCP vers le label final :

Verdict MCP Affichage skill
STRONG_MATCH
PROMISING 🟡
PARTIAL 🟡
NO_MATCH

Après le tableau — Section « Détails remarquables »

Pour chaque candidat avec verdict ou 🟡, ajouter une ligne :

> **[Nom]** — [ai_summary si disponible, sinon matched skills + score]

Section finale — Récap global

## Récap global

| Poste | Total | ✅ GO | 🟡 PARTIAL | ❌ NO GO |
|-------|-------|-------|------------|---------|
| ...   |  ...  |  ...  |    ...     |   ...   |

Scan ID : [scan_id] | Durée : [duration_s]s | [candidates_total] candidats au total

Comportement en cas d'erreur MCP

Si le MCP retourne une erreur ou que le serveur est inaccessible :

  1. Afficher : ⚠️ Le serveur Agent RH n'est pas disponible (http://localhost:8001/mcp).
  2. Suggérer : Lancez le serveur avec \make up` dans le répertoire src/.`
  3. Ne pas tenter de retry automatique.

Envoi de mails de prise de contact

Après un scan, l'utilisateur peut demander d'envoyer un mail à un ou plusieurs candidats pour vérifier leur intérêt.

Tool MCP disponible

mcp__agent-rh__send_interest_check(candidate_id, job_id, dry_run=False)
  • candidate_id : l'ID TeamTailor du candidat (visible dans teamtailor_url ou retourné par run_scan)
  • job_id : l'ID du poste concerné
  • dry_run=True : retourne le mail complet (sujet + corps) sans l'envoyer — toujours proposer le dry-run avant l'envoi réel
  • dry_run=False : envoie le mail via SMTP ; l'expéditeur reçoit une copie BCC automatiquement

Workflow recommandé

  1. Après le tableau de résultats, si l'utilisateur demande d'envoyer un mail à un candidat :
  2. Appeler send_interest_check(..., dry_run=True) et afficher le rendu (sujet + corps formaté)
  3. Demander confirmation : "Voulez-vous envoyer ce mail ?"
  4. Sur confirmation, appeler send_interest_check(..., dry_run=False) et confirmer l'envoi

Affichage du dry-run

Présenter le mail sous cette forme avant confirmation :

📧 Aperçu du mail — [candidate_name]

**À :** [to]
**Sujet :** [subject]

[body]

Erreurs possibles

Erreur retournée Cause Action
Candidat introuvable dans le cache Pas encore scanné Lancer /agent_rh <job_id> d'abord
Aucune adresse email Email absent dans TeamTailor Informer l'utilisateur, ne pas envoyer
Poste introuvable job_id incorrect Vérifier avec get_jobs_config()

Invariants

  • Ne jamais inventer de données ou interpoler des scores non retournés par le MCP.
  • Si un champ est absent dans la réponse MCP, afficher dans la cellule correspondante.
  • Trier les candidats par score décroissant dans le tableau (le MCP les retourne déjà triés).
  • Ne pas appeler get_audit ou get_candidate dans ce skill — run_scan fournit toutes les données nécessaires.
  • Toujours proposer un dry-run avant un envoi réel de mail.
Install via CLI
npx skills add https://github.com/Happykiller/sandbox --skill agent-rh
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator