Ein Claude Skill, der die Referenzgesprächs-Notizen eines Recruiters (Rohtranskript oder aufgezeichnete Zusammenfassung), den Lebenslauf des Kandidaten und die Rollenrubrik nimmt und einen strukturierten Referenzbericht produziert: Dimensionsbewertung mit verbatim Zitaten, Widersprüche zwischen Referenzen, Bereiche, die die Referenzen nicht abgedeckt haben (damit der Recruiter weiß, was er die nächste Referenz zu fragen hat), und ein Gesamtkonfidenzband — niemals eine Einstellungs/Keine-Einstellungs-Empfehlung. Ersetzt den 90-minütigen Write-up des Recruiters durch eine 15-minütige Prüf-und-Bearbeitungs-Schleife und bewahrt dabei die Prüfbarkeit der Referenzdaten.
Wann verwenden
Sie haben zwei oder mehr Referenzgespräche abgeschlossen und haben entweder ein Transkript (Fathom, Gong Call-Aufnahmen oder detaillierte Notizen) oder Call-Zusammenfassungen.
Die Stelle hat eine schriftliche Rubrik (dieselbe, die beim strukturierten Interviewen verwendet wird), sodass die Synthese dimensionsbewusst sein kann.
Sie möchten, dass die Behauptungen der Referenzen später prüfbar sind — jede Behauptung im Bericht muss auf ein verbatim Zitat aus den Call-Notizen zurückgeführt werden können, mit dem Namen der Referenz und dem Call-Zeitstempel.
Wann NICHT verwenden
Einstellungs/Keine-Einstellungs-Empfehlung generieren. Der Skill produziert eine strukturierte Bewertung mit Konfidenz pro Dimension. Die Einstellungsentscheidung liegt beim Hiring Manager und dem Interview-Debrief. Den Skill-Output an eine Entscheidung zu verdrahten, löst dieselben Bedenken für automatisierte Entscheidungsfindung aus wie Auto-Ablehnung beim Screening.
Den Referenzgespräch selbst ersetzen. Der Skill verarbeitet Notizen; er interviewt keine Referenzen. Referenzen per E-Mail automatisch einen Fragebogen zu senden („KI-generierter Referenzfragebogen”) produziert minderwertige Daten und erodiert die Bereitschaft der Referenz, bei zukünftigen Gesprächen offen zu sprechen.
Gespräche ohne Einwilligung aufzuzeichnen. Die meisten US-Bundesstaaten sind Einparteien-Einwilligung für den Recruiter zur Aufzeichnung; einige (CA, IL, FL, MD, MA, MI, MT, NH, PA, WA) sind Zweiparteien. EU ist DSGVO — aufgezeichnete Gespräche benötigen eine explizite Rechtsgrundlage. Der Skill verarbeitet Notizen unabhängig davon, wie sie erfasst wurden; er genehmigt das Aufzeichnen nicht.
Hintergrundprüfungen ohne Genehmigung des Kandidaten. Andere Einwilligungsposition, anderer Workflow, andere rechtliche Exposition.
Setup
Das Bundle ablegen.apps/web/public/artifacts/reference-check-summary-skill/SKILL.md in Ihr Claude Code-Skills-Verzeichnis kopieren.
Die Rollenrubrik wiederverwenden. Der Skill liest dieselbe Rubrikdatei, die für Screening und strukturierte Interviews verwendet wird. Wenn Ihr Team keine gemeinsame Rubrik hat, ist der Interview-Question-Bank-Prompt-Pack die Voraussetzung.
Den Einwilligungsdatensatz konfigurieren. Der Skill schreibt ein consent_check-Feld pro Referenz (wurde der Anruf aufgezeichnet? hat der Kandidat die Referenz autorisiert? hat die Referenz der Verarbeitung der Notizen zugestimmt?). Wenn eine Antwort no oder unknown ist, wird der Bericht mit einem Einwilligungswarnungs-Header gekennzeichnet.
Trockenlauf bei einer abgeschlossenen Einstellung. Die Referenzen für einen letztes Quartal eingestellten Kandidaten verarbeiten. Den Bericht des Skills mit dem eigenen zeitgenössischen Write-up vergleichen. Die Rubrik-Anker abstimmen, wenn der Skill Dimensionen anders gewichtet als das Team.
Was der Skill tatsächlich tut
Fünf Schritte. Die Reihenfolge ist wichtig: Die Einwilligungs- und Rubrik-Verankerung erfolgen vor der Synthese, weil eine Synthese ohne Einwilligung oder Rubrik-Verankerung nur eine Neuerzählung der Gespräche ist.
Einwilligung validieren.consent_check pro Referenz prüfen. Fehlende oder unknown Einwilligung → Warnung-Header im Bericht ausgeben („Einwilligung nicht für Referenz R2 aufgezeichnet — vor dem Teilen des Berichts verifizieren”) und fortfahren. Nicht blockieren; der Recruiter weiß möglicherweise, dass die Einwilligung mündlich gegeben und vergessen wurde zu protokollieren.
In der Rubrik verankern. Die Rollenrubrik lesen. Die Synthese-Dimensionen sind die Rubrik-Dimensionen, keine generischen (“Kommunikation”, “Führung”). Wenn die Rubrik skill_match, level_fit, ownership_signal, team_collaboration hat, sind das die Überschriften des Berichts.
Pro-Dimensions-Synthese. Für jede Rubrik-Dimension jedes Zitat aus den Call-Notizen extrahieren, das die Dimension betrifft. Nach Referenz gruppieren. Jedes Zitat mit Stärke taggen (strong-positive, weak-positive, neutral, weak-negative, strong-negative). Zitate sind verbatim aus den Notizen; Paraphrasieren ist nicht erlaubt, weil es die Prüfbarkeit streicht, die der Skill zu bieten versucht.
Widersprüche und Lücken aufdecken. Dimensionen identifizieren, bei denen zwei Referenzen abweichen (eine stark-positiv, eine andere schwach-negativ) und den Widerspruch explizit aufdecken. Dimensionen identifizieren, die die Referenzen nicht abgedeckt haben (kein Zitat gefunden) und diese als Lücken aufdecken, damit der Recruiter weiß, was er die nächste Referenz zu fragen hat, oder worauf der Rubrik-Ranking-Schritt stattdessen stützen muss.
Konfidenzband pro Dimension, keine Gesamtempfehlung. Für jede Dimension ein Konfidenzband zurückgeben: high (mehrere Referenzen konvergieren mit stark-positiv oder stark-negativ), medium (gemischt, aber konvergierend), low (einzelne Referenz oder Widerspruch), not assessed. Kein Gesamt-Einstellungs/Keine-Einstellungs-Score zurückgeben. Die Entscheidung liegt beim Hiring Manager.
Kostenrealität
Pro Kandidatenbericht (typischerweise 2–4 Referenzen, 60–90 Minuten Gesamtgesprächszeit, 4–8K Wörter Notizen) bei Claude Sonnet 4.6:
LLM-Token — typischerweise 12–20K Input (Notizen + Rubrik + Skill-Anweisungen) und 2–4K Output (strukturierter Bericht). Zu Sonnet 4.6 Listenpreisen ungefähr $0,10–0,18 pro Kandidat. Ein Team mit 20 Referenzzyklen pro Monat gibt $2–4 an Modellkosten aus.
Recruiter-Zeit — der Gewinn. Ein strukturierter Referenzbericht per Hand zu schreiben dauert 60–90 Minuten pro Kandidat. Den Bericht des Skills zu prüfen und Ton hinzuzufügen oder Kontext hinzuzufügen dauert 15–25 Minuten. Die größere Zeitersparnis liegt im Widerspruchs-Abschnitt, den ein Recruiter bei einem ersten Durchlauf durch eigene Notizen oft übersieht.
Setup-Zeit — 30 Minuten einmalig für die Rubrik-Integration und das Einwilligungs-Check-Format. Die Rubrik jeder Stelle wird wiederverwendet, sodass der marginale Setup pro Stelle null ist.
Erfolgsmetrik
Zwei Zahlen verfolgen:
Hiring-Manager-Zufriedenheit mit dem Bericht — eine 1–5-Punktezahl, die der Hiring Manager nach dem Debrief gibt, ob der Bericht die richtigen Dimensionen aufgedeckt hat und die Widersprüche nicht begraben hat. Sollte bei einer kalibrierten Rubrik bei 4+ liegen.
Referenzzyklus-Zeit — Wanduhrzeit von „letzte Referenz abgeschlossen” bis „Hiring Manager hat den Bericht”. Sollte von 1–2 Tagen auf unter 2 Stunden sinken.
Vergleich mit Alternativen
vs. handgeschriebener Bericht. Handschriftlich ist die richtige Wahl für die höchststakigen Einstellungen (Executive, Board-facing), bei denen die narrative Stimme des Recruiters das Lieferobjekt ist. Der Skill verdient seine Einrichtungskosten bei den 80% der Einstellungen, bei denen das strukturierte Artefakt das ist, was das Team braucht.
vs. ATS-nativer Referenzautomatisierung (Greenhouse Reference Check, Crosschq, SkillSurvey). Diese Produkte besitzen die Referenzerfassung (Fragebogen-Referenzen per E-Mail). Diese wählen, wenn Ihre Firma asynchrone Fragebogen-Referenzen bevorzugt. Diesen Skill wählen, wenn Ihr Team Live-Gespräche bevorzugt und der Engpass die Synthese danach ist. Die beiden ergänzen sich; der Skill funktioniert auch auf Fragebogen-Ausgaben.
vs. ChatGPT-Stil „summarize these reference notes”. Generischer Chat gibt einen Absatz zurück, der gut liest und Widersprüche vergräbt. Der Skill ist strukturell anders: Er erzwingt Pro-Dimensions-Gruppierung, verlangt verbatim Zitate, weigert sich, eine Gesamtempfehlung zu verfassen.
Fallstricke
Rückwärtsbias bei hochkonfidenten Referenzen.Schutz: Die Berichtsstruktur erzwingt Pro-Dimensions-Gruppierung statt referenzgeleiteter Erzählung, was es schwieriger macht, dass eine stark meinungsstarke Referenz die Lektüre dominiert.
Halluzinierte Zitate.Schutz: Der Skill ist auf verbatim Extraktion beschränkt. Zitate, die nicht verbatim in den Call-Notizen erscheinen, sind verboten; der Prompt weist das Modell explizit an, eine Dimension wegzulassen, wenn kein Zitat zitiert werden kann, statt zu paraphrasieren.
Übergewichtung einer Referenz.Schutz: Widersprüche werden explizit aufgedeckt, mit beiden Zitaten nebeneinander. Die Konfidenzband-Logik des Berichts stuft auf low bei Dimensionen herab, bei denen Referenzen abweichen, was eine zuversichtliche-aber-fehlerhafte Lektüre verhindert.
Implizite Einstellungsempfehlung durch Reihenfolge.Schutz: Der Bericht ordnet Dimensionen nach der Rubrik, nicht nach der Begeisterung der Referenz. Stark-positive Zitate schweben nicht an die Spitze; sie landen in der Dimension, zu der sie gehören.
Einwilligungs- und Aufzeichnungsexposition.Schutz: Das Einwilligungs-Check-Feld pro Referenz ist erforderlicher Input; fehlende Einwilligung löst einen Warnung-Header aus. Der Skill verarbeitet Notizen unabhängig vom Aufzeichnungsstatus, aber er befreit den Recruiter nicht von der zugrundeliegenden Einwilligungspflicht.
Bias in der zugrundeliegenden Rubrik, der sich durchzieht.Schutz: Wenn die Rubrik Dimensionen hat, die eine Fairness-Prüfung nicht bestehen (“culture fit” ohne Anker, Schulnoten-Scoring), erbt die Synthese den Bias. Die Rubrik für den Pool der Stelle zuerst durch den Diversity-Slate-Auditor laufen lassen.
Stack
Das Skill-Bundle befindet sich unter apps/web/public/artifacts/reference-check-summary-skill/ und enthält:
SKILL.md — die Skill-Definition
references/1-report-format.md — die wörtliche Ausgabe-Vorlage (Pro-Dimensions-Überschriften, Konfidenzband-Skala, Widerspruchs-Abschnitt)
references/2-consent-checklist.md — das Einwilligungs-Check-Schema und die Warnung-Header-Regeln
Tools, die der Workflow voraussetzt: Claude (das Modell). Optional: Fathom oder Gong für Call-Aufnahme; Ashby für den Kandidatendatensatz. Für den parallelen Interview-Debrief-Workflow siehe den Interview-Debrief-Summary-Skill.
---
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.