Un Claude Skill qui prend les notes d’appel de références du recruteur (transcript brut ou résumé enregistré), le CV du candidat et le rubrique du poste, et produit un rapport de références structuré : évaluation par dimension avec citations verbatim, contradictions entre références, zones non couvertes par les références (afin que le recruteur sache quoi demander à la prochaine référence), et une fourchette de confiance globale — jamais une recommandation embauche/non-embauche. Remplace le compte rendu de 90 minutes du recruteur par une boucle d’examen-et-édition de 15 minutes tout en préservant l’auditabilité des données de référence.
Quand l’utiliser
Vous avez complété deux ou plus appels de référence et disposez soit d’un transcript (Fathom, enregistrements d’appels Gong, ou notes détaillées) soit de résumés d’appels.
Le poste a un rubrique écrit (le même utilisé dans les entretiens structurés) afin que la synthèse puisse être sensible aux dimensions.
Vous voulez que les affirmations des références soient auditables ultérieurement — chaque assertion dans le rapport doit tracer vers une citation verbatim des notes d’appel, avec le nom de la référence et l’horodatage de l’appel.
Quand NE PAS l’utiliser
Générer une recommandation embauche/non-embauche. Le skill produit une évaluation structurée avec une confiance par dimension. La décision d’embauche appartient au hiring manager et au debrief d’entretien. Connecter la sortie du skill à une décision déclenche les mêmes préoccupations de prise de décision automatisée que l’auto-rejet au screening.
Remplacer l’appel de référence lui-même. Le skill traite des notes ; il n’interviewe pas les références. L’envoi automatique d’emails aux références avec un formulaire (« questionnaire de référence généré par IA ») produit des données de faible qualité et érode la volonté de la référence de parler candidement lors de futurs appels.
Enregistrer des appels sans consentement. La plupart des états américains ont le consentement d’une partie pour que le recruteur enregistre ; quelques-uns (CA, IL, FL, MD, MA, MI, MT, NH, PA, WA) ont le consentement des deux parties. L’UE est GDPR — les appels enregistrés nécessitent une base légale explicite. Le skill traite les notes quelle que soit la façon dont elles ont été capturées ; il n’autorise pas l’enregistrement.
Références en coulisses que le candidat n’a pas approuvées. Posture de consentement différente, workflow différent, exposition juridique différente.
Setup
Déposez le bundle. Placez apps/web/public/artifacts/reference-check-summary-skill/SKILL.md dans votre répertoire de skills Claude Code.
Réutilisez le rubrique du poste. Le skill lit le même fichier de rubrique utilisé pour le screening et les entretiens structurés. Si votre équipe n’a pas de rubrique partagé, le pack de questions d’entretien est le prérequis.
Configurez l’enregistrement du consentement. Le skill écrit un champ consent_check par référence (l’appel a-t-il été enregistré ? Le candidat a-t-il autorisé la référence ? La référence a-t-elle consenti au traitement des notes ?). Si une réponse est no ou unknown, le rapport est signalé avec un header d’avertissement de consentement.
Testez sur une embauche clôturée. Traitez les références d’un candidat embauché le trimestre dernier. Comparez le rapport du skill à votre propre compte rendu contemporain. Ajustez les ancres du rubrique si le skill pondère différemment les dimensions que l’équipe.
Ce que le skill fait réellement
Cinq étapes. L’ordre compte : la validation du consentement et l’ancrage au rubrique se produisent avant la synthèse, parce qu’une synthèse sans consentement ou ancrage au rubrique est juste une re-narration des appels.
Valider le consentement. Vérifier consent_check par référence. Consentement manquant ou unknown → émettre un header d’avertissement sur le rapport (« Consentement non enregistré pour la référence R2 — vérifiez avant de partager le rapport ») et continuer. Ne pas bloquer ; le recruteur peut savoir que le consentement a été donné verbalement et a oublié de le consigner.
Ancrer dans le rubrique. Lire le rubrique du poste. Les dimensions de la synthèse sont les dimensions du rubrique, pas des dimensions génériques (« communication », « leadership »). Si le rubrique a skill_match, level_fit, ownership_signal, team_collaboration, ce sont les titres du rapport.
Synthèse par dimension. Pour chaque dimension du rubrique, extraire chaque citation des notes d’appel portant sur la dimension. Regrouper par référence. Étiqueter chaque citation avec la force (strong-positive, weak-positive, neutral, weak-negative, strong-negative). Les citations sont verbatim depuis les notes ; la paraphrase n’est pas autorisée parce qu’elle dépouille l’auditabilité que le skill existe à fournir.
Faire remonter les contradictions et les gaps. Identifier les dimensions où deux références divergent (une strong-positive, une autre weak-negative) et faire remonter la contradiction explicitement. Identifier les dimensions non couvertes par les références (aucune citation trouvée) et les faire remonter comme gaps afin que le recruteur sache quoi demander à la prochaine référence, ou sur quoi l’étape de classement du rubrique devra s’appuyer.
Fourchette de confiance par dimension, pas de recommandation globale. Pour chaque dimension, renvoyer une fourchette de confiance : high (plusieurs références convergent avec strong-positive ou strong-negative), medium (mixte mais convergent), low (référence unique ou contradiction), not assessed. Ne pas renvoyer un score global embauche/non-embauche. La décision appartient au hiring manager.
Coûts réels
Par rapport candidat (typiquement 2-4 références, 60-90 minutes de temps d’appel total, 4-8 000 mots de notes), sur Claude Sonnet 4.6 :
Tokens LLM — typiquement 12-20 000 tokens d’input (notes + rubrique + instructions du skill) et 2-4 000 tokens d’output (rapport structuré). Au tarif public de Sonnet 4.6, environ 0,10-0,18 $ par candidat. Une équipe exécutant 20 cycles de références par mois dépense 2-4 $ en coût modèle.
Temps du recruteur — le gain est là. Rédiger manuellement un rapport de références structuré depuis des scorecards prend 60-90 minutes par candidat. Examiner le rapport du skill et éditer le ton ou ajouter du contexte prend 15-25 minutes. Le gain de temps plus important est sur la section des contradictions, qu’un recruteur manque souvent lors d’une première passe de ses propres notes.
Temps de setup — 30 minutes une fois pour l’intégration du rubrique et le format de vérification du consentement. Le rubrique de chaque poste est réutilisé, donc le setup marginal par poste est nul.
Métrique de succès
Suivez deux chiffres :
Satisfaction du hiring manager avec le rapport — un score 1-5 que le hiring manager donne après le debrief, sur la question de savoir si le rapport a fait remonter les bonnes dimensions et n’a pas enterré les contradictions. Devrait se situer à 4+ sur un rubrique calibré.
Délai du cycle de référence — temps d’horloge murale entre « dernière référence complétée » et « le hiring manager a le rapport ». Devrait passer de 1-2 jours à moins de 2 heures.
Comparaison avec les alternatives
Versus rapport rédigé à la main. La rédaction à la main est le bon choix pour les recrutements à plus forts enjeux (exécutif, avec recommandation de board) où la voix narrative du recruteur est le livrable. Le skill rentabilise son coût de setup sur les 80 % de recrutements où l’artefact structuré est ce dont l’équipe a besoin.
Versus l’automatisation des références native à l’ATS (Greenhouse Reference Check, Crosschq, SkillSurvey). Ces produits possèdent la collecte des références (références de style questionnaire par email). Choisissez-les si votre cabinet préfère les références asynchrones par questionnaire. Choisissez ce skill si votre équipe préfère les appels en direct et que le goulot d’étranglement est la synthèse après. Les deux sont complémentaires ; le skill fonctionne aussi sur les sorties de questionnaire.
Versus ChatGPT-style « résume ces notes de référence ». Le chat générique renvoie un paragraphe qui se lit bien et enterre les contradictions. Le Skill est structurellement différent : il force le regroupement par dimension, requiert des citations verbatim, refuse de produire une recommandation globale.
Points de vigilance
Biais de rétrospection sur les références à haute confiance.Garde-fou : la structure du rapport force le regroupement par dimension plutôt que le récit mené par la référence, ce qui rend plus difficile pour une référence avec une opinion forte de dominer la lecture.
Citations hallucinnées.Garde-fou : le skill est contraint à l’extraction verbatim. Les citations n’apparaissant pas verbatim dans les notes d’appel sont interdites ; le prompt dirige explicitement le modèle à omettre une dimension si aucune citation ne peut être citée plutôt que de paraphraser.
Surpondération d’une référence.Garde-fou : les contradictions sont remontées explicitement, avec les deux citations côte à côte. La logique de fourchette de confiance du rapport rétrograde vers low sur les dimensions où les références divergent, ce qui empêche une lecture confiante mais erronée.
Recommandation d’embauche implicite par l’ordre.Garde-fou : le rapport ordonne les dimensions par le rubrique, pas par l’enthousiasme de la référence. Les citations strong-positive ne flottent pas vers le haut ; elles atterrissent dans la dimension à laquelle elles appartiennent.
Exposition au consentement et à l’enregistrement.Garde-fou : le champ de vérification du consentement par référence est un input requis ; le consentement manquant déclenche un header d’avertissement. Le skill traite les notes quelle que soit le statut d’enregistrement, mais il n’absout pas le recruteur de l’obligation de consentement sous-jacente.
Biais dans le rubrique sous-jacent qui se propage.Garde-fou : si le rubrique a des dimensions qui échouent à une vérification d’équité (« adéquation culturelle » sans ancres, scoring de rang d’école), la synthèse hérite du biais. Faites passer le rubrique par l’auditeur de slate de diversité pour le pool du poste en premier.
Stack
Le bundle du skill se trouve dans apps/web/public/artifacts/reference-check-summary-skill/ et contient :
SKILL.md — la définition du skill
references/1-report-format.md — le template de sortie littéral (titres par dimension, échelle de fourchette de confiance, section des contradictions)
references/2-consent-checklist.md — le schéma de vérification du consentement et les règles de header d’avertissement
Outils supposés par le workflow : Claude (le modèle). Optionnel : Fathom ou Gong pour l’enregistrement d’appels ; Ashby pour la fiche candidat. Pour le workflow de debrief d’entretien parallèle, voir le skill de résumé de debrief d’entretien.
---
name: reference-check-summary
description: Take reference-call notes (transcript or summary) plus the role rubric, and produce a structured per-dimension reference report with verbatim quotes, contradictions surfaced, and per-dimension confidence bands. Never authors an overall hire/no-hire recommendation — the decision sits with the hiring manager.
---
# Reference-check synthesis
## When to invoke
Use this skill when a recruiter has completed two or more reference calls and has notes (transcript, recorded call summary, or detailed manual notes) plus the role rubric. Take the notes plus rubric as input and return a structured Markdown report.
Do NOT invoke this skill for:
- **Generating a hire/no-hire recommendation.** This skill produces structured assessment with confidence per dimension. The hire decision sits with the hiring manager and the interview debrief.
- **Replacing the reference call itself.** This skill processes notes; it does not interview references. AI-generated reference questionnaires erode the reference's willingness to speak candidly.
- **Recording calls without consent.** The skill processes notes regardless of recording status, but does not authorize recording. Two-party-consent jurisdictions and EU GDPR have explicit lawful-basis requirements.
- **Backchannel references the candidate did not approve.** Different consent posture, different workflow.
## Inputs
- Required: `notes_dir` — path to a directory of per-reference Markdown files. Each file: `R1.md`, `R2.md`, etc., with the reference's name, role, relationship, call date, and notes.
- Required: `rubric` — path to the role rubric file. The rubric's dimensions become the report's headings.
- Required: `consent_log` — path to a per-reference consent record (see `references/2-consent-checklist.md`).
- Optional: `candidate_resume` — path to the resume. Used to ground statements like "the reference confirmed the deal mentioned on the resume" rather than re-narrating the resume.
## Reference files
Always read these from `references/`:
- `references/1-report-format.md` — the literal output format. Per-dimension headings come from the rubric, not from this file.
- `references/2-consent-checklist.md` — the consent-check schema and the warning-header rules.
## Method
Five steps, in order.
### 1. Validate consent
Open `consent_log`. For each reference, check four fields: `candidate_authorized` (the candidate gave the recruiter permission to call this person), `recording_consent` (if the call was recorded), `notes_processing_consent` (the reference was told the notes might be processed by AI), `jurisdiction` (which state / country the reference was in during the call).
If any field is `unknown` or `no`, do NOT halt — emit a warning header at the top of the report and continue. The recruiter may have collected consent verbally and forgotten to log it; the warning surfaces the gap for them to verify before sharing the report.
If `recording_consent: no` and `jurisdiction` is in `[CA, IL, FL, MD, MA, MI, MT, NH, PA, WA]` or any EU country, the warning header upgrades to a halt: "Two-party consent jurisdiction; recording without consent is illegal. The skill will not process the notes from this reference. Verify consent and re-run with `consent_log` updated, or omit this reference."
### 2. Ground in the rubric
Read the rubric. The synthesis dimensions ARE the rubric dimensions, not generic ones. If the rubric has `skill_match`, `level_fit`, `ownership_signal`, `team_collaboration`, those are the report's section headings.
If the rubric has dimensions that fail a fairness check (school-tier scoring, "culture fit" without anchors, employment-gap penalties), surface them but proceed — the rubric is upstream of this skill, and the right fix is at the rubric layer, not by silently dropping dimensions here.
### 3. Per-dimension synthesis
For each rubric dimension, read every reference's notes and extract every quote that bears on the dimension. A quote is a verbatim string from the notes; paraphrasing is not allowed. If you cannot extract a verbatim quote for a reference's view on a dimension, the cell stays empty and the dimension's confidence band reflects the gap.
Tag each quote with strength on a 5-level scale:
- `strong-positive` — explicit named outcome, clear ownership, the reference stakes their credibility on it.
- `weak-positive` — observed positive behavior but no named outcome or scope.
- `neutral` — descriptive without judgment.
- `weak-negative` — observed gap or hesitation, qualified.
- `strong-negative` — explicit disqualifying behavior named, with scope.
### 4. Surface contradictions and gaps
For each dimension, compare the per-reference assessments. If two references diverge by ≥2 levels (e.g. one `strong-positive`, one `weak-negative`), surface the contradiction explicitly with both quotes side by side. Do NOT average or smooth — the contradiction IS the signal.
For each dimension, identify gaps: dimensions no reference covered. List them in a "Coverage gaps" section. The recruiter uses this to decide what to ask the next reference, or what the rubric ranking step has to lean on instead.
### 5. Confidence band per dimension
For each dimension, return a confidence band:
- `high` — multiple references converge with strong-positive or strong-negative quotes.
- `medium` — references mostly converge, weak-positive / weak-negative quotes, no contradictions.
- `low` — single reference, contradiction surfaced, or only weak-strength quotes.
- `not assessed` — no reference covered the dimension.
Do NOT return an overall hire/no-hire score. The report ends after the last dimension's confidence band.
## Output format
See `references/1-report-format.md` for the literal template. The shape is:
```
# Reference report — {Candidate name} — {Role}
[CONSENT WARNING HEADER if any reference's consent is missing]
## References
| ID | Name | Role | Relationship | Call date |
|---|---|---|---|---|
| R1 | ... | ... | ... | ... |
## Per-dimension synthesis
### {Dimension 1 from rubric}
**Confidence: {band}**
| Reference | Strength | Quote |
|---|---|---|
| R1 | strong-positive | "..." |
| R2 | weak-positive | "..." |
[CONTRADICTION block if R1 and R2 diverge ≥2 levels]
### {Dimension 2 from rubric} ...
## Coverage gaps
Dimensions no reference addressed:
- {dimension X} — recruiter to ask R3 or rely on rubric ranking step.
## Provenance
- Rubric: `{path}` — SHA `{short}`
- Notes: `{notes_dir}` — N references processed
- Generated: `{ISO timestamp}`
```
## Watch-outs
- **Hallucinated quotes.** *Guard:* the prompt forbids paraphrasing; quotes must appear verbatim in the input notes. If you cannot find a verbatim quote for a reference's view on a dimension, the cell is empty and the confidence band drops.
- **Hindsight bias.** *Guard:* the report is structured per-dimension, not per-reference. A strongly opinionated reference cannot dominate the narrative because the report doesn't have a narrative — it has a table per dimension.
- **Implicit recommendation via ordering.** *Guard:* dimensions are ordered by rubric, not by reference enthusiasm. Strong-positive quotes do not float to the top.
- **Consent gaps.** *Guard:* warning header on missing consent; halt on illegal recording in two-party jurisdictions.
- **Bias inheritance from rubric.** *Guard:* surfaced but not silently dropped — the right fix is at the rubric layer, upstream of this skill.
# Reference report format
This is the literal output template the skill writes. Every report follows this shape so downstream consumers (hiring manager, recruiting coordinator, audit reviewer) read predictable structure.
## Template
```markdown
# Reference report — {Candidate name} — {Role title}
Generated: {ISO timestamp} · Rubric SHA: {short hash} · Skill version: 1.0
{CONSENT WARNING HEADER — present only if any reference has missing consent — see consent-checklist.md}
## References
| ID | Name | Role | Relationship to candidate | Call date | Duration |
|---|---|---|---|---|---|
| R1 | Jamie Liu | VP Eng, Acme Fintech | Direct manager (2y) | 2026-04-28 | 45m |
| R2 | Sam Park | Senior IC peer, Acme Fintech | Cross-team collaborator (1y) | 2026-04-30 | 30m |
## Per-dimension synthesis
### Skill match — production Go and distributed-systems experience
**Confidence: high**
| Reference | Strength | Quote |
|---|---|---|
| R1 | strong-positive | "Owned the entire payments routing rewrite in Go — moved from synchronous to event-driven, took our P99 from 800ms to 180ms over Q3." |
| R2 | strong-positive | "When we needed someone to actually understand the consensus layer in our state machine, Jamie was the only person who could explain why the failover semantics were broken." |
### Level fit — Senior IC scope, cross-team influence
**Confidence: medium**
| Reference | Strength | Quote |
|---|---|---|
| R1 | strong-positive | "Was effectively the tech lead on the routing team — running the design reviews, mentoring two juniors." |
| R2 | weak-positive | "Came over to our team for the integration work — drove the meetings but it was a smaller scope, just three of us." |
*Note: confidence is medium because R2's scope was a single integration; R1's scope was a multi-quarter team-leadership signal. The strong-positive on team-lead scope only comes from R1.*
### Team collaboration — handles disagreement well
**Confidence: low**
| Reference | Strength | Quote |
|---|---|---|
| R1 | strong-positive | "Pushed back on a design I'd already approved, with data — turned out he was right and we caught a P0 before it shipped." |
| R2 | weak-negative | "Sometimes the pushback comes across as harsh in the moment — I had to mediate once between Jamie and one of our front-end folks." |
**⚠️ Contradiction surfaced.** R1 and R2 diverge by 2 levels on this dimension. R1's framing is that the pushback is principled and outcome-positive; R2's framing is that the delivery has interpersonal cost. Recruiter to surface this in the hiring-manager debrief.
### Ownership signal — sees work through to outcome
**Confidence: high**
| Reference | Strength | Quote |
|---|---|---|
| R1 | strong-positive | "Stayed on the routing project through the post-launch operational phase — wasn't the kind of engineer who hands off after launch." |
| R2 | strong-positive | "When the integration work hit a snag with our auth team, Jamie went and unblocked it himself rather than escalating." |
## Coverage gaps
Dimensions the references did not address (no verbatim quote found):
- **Response to ambiguity** — neither reference described a situation where the candidate had to act under unclear requirements. Recruiter to ask R3, or rely on the structured-interview step that probes this.
- **Customer-facing scope** — no quotes on the candidate's interaction with customers or with non-technical stakeholders. If the role requires customer-facing work, this gap matters.
## Provenance
- Rubric: `data/rubrics/senior-backend-engineer.json` — SHA `a3f2b1c4d5e6f7a8`
- Notes: `data/references/jamie-liu/` — 2 references processed
- Consent log: `data/references/jamie-liu/consent.json`
- Generated by: `reference-check-summary` skill v1.0 on Claude Sonnet 4.6
- Generated at: 2026-05-03T14:00:00Z
```
## Notes on the template
- **No overall hire/no-hire recommendation.** The report ends after the last per-dimension table and the coverage-gaps section. The decision sits with the hiring manager.
- **Dimension order matches the rubric.** The skill does NOT reorder by reference enthusiasm or by confidence band. The rubric's ordering reflects the team's prioritization; the report respects that.
- **Quotes are verbatim.** No paraphrasing, no smoothing. If a reference said "kinda harsh" the report says "kinda harsh," not "somewhat harsh."
- **Contradictions surface inline.** A separate "contradictions" section at the end is harder to read than inline notes per dimension.
# Consent checklist for reference processing
The reference-check-summary skill requires a per-reference consent log as input. This file documents the schema, the warning-header rules, and the halt conditions.
## Per-reference consent record
For each reference, the consent log contains:
```json
{
"reference_id": "R1",
"candidate_authorized": true,
"recording_consent": true,
"notes_processing_consent": true,
"jurisdiction": "US-NY",
"recorded": true,
"consent_collected_at": "2026-04-28T14:00:00Z",
"consent_collected_by": "recruiter-email@firm.com"
}
```
### Field definitions
- `candidate_authorized` — the candidate told the recruiter "you can call this person." Without this, the reference call should not have happened. Halt if any reference's value is `false`.
- `recording_consent` — if the call was recorded, the reference consented to recording. The skill needs this only if `recorded: true`.
- `notes_processing_consent` — the reference was told that the notes from the call may be processed by AI to generate a structured report. This is the explicit consent for the skill's processing path under GDPR Art. 6 lawful-basis requirements.
- `jurisdiction` — the state or country the reference was physically in during the call. This determines recording-consent law.
- `recorded` — whether the call was recorded.
## Warning-header rules
If any reference's consent record is missing or has `unknown`/`null` values, the report's top-of-page warning header reads:
```
⚠️ CONSENT WARNING
The following references have incomplete consent records:
- R2: notes_processing_consent is unknown.
- R3: candidate_authorized is unknown.
Verify consent before sharing this report. The skill processed the
notes regardless of the gap; the warning surfaces the gap for the
recruiter to confirm with the candidate and reference.
```
The warning is informational. The skill continues to the report. The recruiter is responsible for either confirming the missing consent (and updating the log for next time) or omitting the affected reference from the shared report.
## Halt conditions
Halt processing for a reference (skip it, do not include in the report) when:
1. **`candidate_authorized: false`** — the reference call should not have happened. Including the reference in the report would compound the underlying consent failure. Surface to the recruiter as a gap to address.
2. **`recorded: true` AND `recording_consent: false` AND `jurisdiction` is in a two-party-consent jurisdiction.** Two-party-consent jurisdictions (CA, IL, FL, MD, MA, MI, MT, NH, PA, WA in the US, plus all EU countries under GDPR) make recording without consent illegal. Processing the recorded notes compounds the violation. The skill refuses to process the reference and surfaces the issue to the recruiter.
```
HALT: R2 was recorded in CA without consent. Recording is illegal
in CA without two-party consent. The skill will not process this
reference's notes. Either delete the recording and re-interview the
reference (with consent this time), or omit the reference from the
report.
```
3. **`notes_processing_consent: false`** — the reference explicitly declined to have notes processed by AI. The skill respects that. The reference's notes can still inform the recruiter's own write-up, but they are not run through the skill.
## Why this matters
GDPR Art. 6 requires a lawful basis for processing personal data. A reference's notes ARE personal data (the reference's, and the candidate's). The lawful basis for AI processing is most commonly explicit consent or legitimate interest with a balancing test. In either case, the reference must have been informed.
NYC LL 144 and the EU AI Act focus on the candidate side, but reference data falls in the same processing pipeline. A defensible recruiting AI posture handles consent on both sides.
The skill cannot enforce that the recruiter actually collected consent. What it can enforce is that the consent is logged before processing, and that missing or contradictory consent surfaces to the recruiter rather than getting buried.
## What goes in the consent log when you didn't collect consent properly
The honest answer: omit the reference from this skill's processing. Use your own write-up. The skill's auditability comes from the consent record being trustworthy; populating it with `unknown` to make the skill run defeats the purpose.
Update your reference-call intake script to collect the four fields above as part of the call opening. The marginal time cost is 30 seconds per call.