Uma Claude Skill que recebe uma descrição de vaga, o nível da vaga, as competências must-have e o pool de entrevistadores elegíveis com os pontos fortes calibrados de cada entrevistador, e produz um design de loop completo — progressão de estágio, rubric por estágio com descrições de âncoras, perguntas comportamentais por dimensão e uma tabela de atribuição de entrevistadores com o raciocínio para cada escolha. Em seguida, para em um gate de revisão do gestor de contratação antes que qualquer coisa seja configurada no ATS. Substitui “vamos descobrir o loop quando um candidato estiver em triagem” por uma sessão de design de 30 minutos que produz disciplina operacional.
Quando usar
Você tem um JD aprovado, um nível confirmado e uma lista de competências must-have que diferenciam hire de no-hire nesta vaga.
Você tem uma biblioteca de rubrics de structured interviewing com descrições de âncoras por nível de pontuação por faixa de nível. O template de competência em apps/web/public/artifacts/interview-loop-builder-skill/references/1-competency-library.md mostra o formato; se você não conseguir preenchê-lo, ainda não tem um rubric do qual esta skill pode extrair.
Você tem um pool de entrevistadores com pontos fortes calibrados registrados por competência por faixa de nível — veja references/2-interviewer-strengths.md no bundle para a matriz.
Um gestor de contratação revisará o loop antes de ser configurado no Ashby ou Greenhouse. A skill escreve arquivos e para; ela não publica para o ATS.
Quando NÃO usar
Agendamento automático. Esta skill projeta o loop. Ela não agenda entrevistas, não combina calendários nem envia links de booking para candidatos. Isso é Goodtime, Ashby Scheduling ou Greenhouse Scheduling. Acoplar design e agendamento em uma skill acopla dois modos de falha que deveriam falhar independentemente.
Substituir o design do rubric com o gestor de contratação. A skill emite descrições de âncoras por nível de pontuação extraindo da biblioteca de competências, mas a biblioteca em si — como é um 5 para systems-design no nível IC5 — é de propriedade do gestor de contratação e do head da função. Se a biblioteca estiver vazia ou toda template, a skill recusa e surfacea um TODO em vez de inventar âncoras de rubric para uma função sobre a qual não tem sinal calibrado.
Loops templated genéricos sem calibração específica da vaga. Se os inputs não nomeiam o nível, as competências must-have ou o pool de entrevistadores elegíveis, a skill recusa. Um loop de quatro estágios com rótulos genéricos “comportamental”, “técnico”, “system design”, “liderança” parece estruturado mas não é. Cada candidato recebe as mesmas perguntas independentemente das prioridades da vaga, o que derrota o propósito da estrutura.
Vagas abaixo de um limiar de complexidade definido. Uma vaga de prestador de duas semanas não precisa de um loop de quatro estágios. A skill avisa e sugere uma triagem de um estágio se a vaga for contratual, horista ou com expectativa de menos de 6 meses.
Substituir o treinamento em behavioral interviewing. As perguntas emitidas pela skill seguem o formato situação/comportamento/resultado, mas os entrevistadores ainda precisam de calibração treinada para pontuar consistentemente. A skill é o andaime; o treinamento é o pré-requisito.
Configuração
Coloque o bundle. Coloque apps/web/public/artifacts/interview-loop-builder-skill/SKILL.md no seu diretório de skills do Claude Code (ou Skills personalizadas do claude.ai). A skill expõe uma função callable: design_loop.
Preencha a biblioteca de competências. Copie references/1-competency-library.md para o repo da sua equipe. Substitua cada placeholder pelas suas competências reais, definições, faixas de nível cobertas e descrições de âncoras por nível de pontuação. A skill recusa executar se a biblioteca for apenas template.
Preencha a matriz de pontos fortes dos entrevistadores. Copie references/2-interviewer-strengths.md. Liste cada entrevistador elegível, sua equipe e as faixas de nível para as quais estão calibrados para pontuar cada competência. A coluna “Última entrevista” é o trigger para re-calibrar aos 6 meses de inatividade.
Configure os inputs por vaga. Para uma determinada vaga, passe o caminho do JD, o nível, um array de 3-6 IDs de competência e um caminho para a matriz de pontos fortes preenchida. A skill emite loop.md e scaffolds de scorecard por estágio em scorecards/.
Dry-run em um loop fechado. Execute em uma vaga que você projetou manualmente no último trimestre. Compare o mapeamento de estágio e as atribuições de entrevistadores da skill com o design manual. Se divergirem, a biblioteca de competências ou a matriz de entrevistadores é geralmente a coisa que precisa de ajuste, não o prompt da skill.
O que a skill realmente faz
Seis passos, em ordem. A ordem importa: validação determinística e mapeamento acontecem antes que o LLM gere âncoras de rubric e perguntas, e o passo de experiência do candidato no final re-lê o loop montado para capturar sobrecarga que é invisível ao atribuir cada estágio isoladamente.
Valida os inputs. Cada ID de competência existe na biblioteca; o pool de entrevistadores tem pelo menos uma pessoa calibrada por competência must-have no nível da vaga; o nível está dentro das faixas cobertas da biblioteca. Para com TODOs explícitos se qualquer verificação falhar. Projetar um loop de Diretor com uma biblioteca apenas de IC produz rubrics inflados — este é o passo que evita isso.
Mapeia competências para estágios. A triagem do recrutador avalia fit e básicos (nunca no rubric). A triagem do HM pega as 1-2 competências mais diferenciantes. O loop on-site distribui o restante uma por entrevista onde possível. A regra de uma-competência-por-entrevista é opinionada — agrupar duas competências em uma entrevista de 60 minutos produz sinal mais raso em ambas e torna o rubric mais difícil de aplicar no momento.
Gera o rubric por estágio. Para cada estágio pós-triagem, extrai as descrições de âncoras para a faixa de nível do candidato da biblioteca de competências. Gera 3-5 perguntas comportamentais por dimensão seguindo o formato situação/comportamento/resultado, mais um acompanhamento sugerido por pergunta. Perguntas hipotéticas “o que você faria” são excluídas por padrão — elas recompensam suposição articulada sobre experiência evidenciada.
Atribui entrevistadores com raciocínio. Para cada estágio pós-triagem, propõe 1-3 entrevistadores do pool. Combina por fit de calibração (requisito rígido), carga (nenhum entrevistador em mais de um estágio do mesmo loop) e diversidade de perspectiva (pelo menos um entrevistador fora da equipe de contratação onde o pool permite). Cada atribuição vem com uma string de raciocínio explícita.
Passo de experiência do candidato. Re-lê o loop montado. Tempo total de entrevista ativa acima de 5 horas para IC ou 7 para liderança → sinaliza e sugere um take-home. Mais de 6 entrevistadores distintos → sinaliza fadiga do loop. Dois estágios sondando a mesma competência → sinaliza sinal redundante. Estágios em fusos horários diferentes sem acomodação → surfacea um TODO.
Gate de revisão do gestor de contratação. Escreve loop.md e scorecards/<NN>-<stage-id>.md. Para. A skill não define nenhuma ação “publicar no ATS.” O HM abre o arquivo, edita e configura o loop no Ashby ou Greenhouse eles mesmos.
O formato de output literal e o layout do scaffold de scorecard estão em references/3-loop-output-format.md no bundle. O formato é fixo porque os consumidores downstream — entrevistador lendo o scorecard, facilitador de debrief consolidando pontuações — precisam de estrutura previsível.
Realidade de custos
Por design de loop, com Claude Sonnet 4.5:
Tokens LLM — tipicamente 30-60k tokens de input (JD mais biblioteca de competências mais matriz de entrevistadores mais instruções da skill) e 10-20k tokens de output (loop mais 3-5 scaffolds de scorecard com âncoras e perguntas). No Sonnet 4.5, isso é aproximadamente US$0,20-0,40 por design de loop. Uma função contratando 8 vagas por trimestre gasta menos de US$5 em custo de modelo nesta skill.
Tempo do recrutador e do gestor de contratação — a vitória está aqui. Um design de loop manual do zero com pulls de rubric calibrados é 90-120 minutos de tempo de HM mais recrutador na chamada de design, mais outros 30-60 minutos documentando perguntas e atribuições. A skill comprime isso para uma sessão de revisão de 30 minutos no loop gerado. Por vaga, isso é aproximadamente 90 minutos de tempo de IC sênior ou gestor economizados.
Tempo de configuração — 30 minutos por vaga uma vez que a biblioteca de competências e a matriz de entrevistadores estejam preenchidas. A biblioteca e a matriz são o pré-requisito — net-new, essas levam uma sessão de calibração por faixa de competência, que é um investimento em structured interviewing, não a configuração desta skill.
Benefício composto — loops estruturados produzem melhor quality of hire do que loops ad-hoc em todos os estudos publicados nos últimos vinte anos. A vitória da skill é tornar “estruturado” o padrão em vez da exceção, removendo o overhead de design por vaga.
Métrica de sucesso
Acompanhe três números por vaga por trimestre, no ATS:
Lead time de design do loop — horas de “vaga aprovada” até “loop configurado no ATS”. Deve cair materialmente após a skill estar no loop. Se não cair, o gargalo é a revisão do HM, não o design — surfacea o loop mais cedo na sequência de kickoff da vaga.
Concordância entre avaliadores no rubric — por dimensão de competência, com que frequência as pontuações independentes dos entrevistadores caem dentro de um ponto. Deve atingir 80% ou mais em competências calibradas. Abaixo disso, as descrições de âncoras na biblioteca de competências são a coisa a ajustar, não a skill.
Quality of hire em 12 meses — a métrica de longo prazo que o loop visa mover. Compare coortes contratados por loops projetados pela skill vs loops ad-hoc na mesma família de vagas. Se o coorte projetado pela skill não superar, re-examine o mapeamento de competência para estágio em vez de abandonar a estrutura.
vs alternativas
vs templates de entrevista estruturada do Ashby — o Ashby possui o loop configurado, a renderização do scorecard e o debrief em um produto. Escolha os templates do Ashby se quiser uma UX gerenciada e sua equipe vai viver no ATS. Escolha esta skill se quiser as âncoras de rubric, a matriz de pontos fortes dos entrevistadores e o mapeamento de competência para estágio no seu próprio repo, com controle de versão, com o passo de design substituível conforme a biblioteca de competências evolui. O output da skill é o input para a configuração de loop do Ashby, não uma substituição para ele.
vs loops templated genéricos — todo ATS inclui templates padrão de quatro estágios (“triagem por telefone, triagem pelo HM, técnica, painel on-site”). Passam por estruturados à primeira vista mas não são. O mesmo template é aplicado a um Backend IC4 e a um CS Manager M2, com as mesmas perguntas genéricas, independentemente de quais competências realmente diferenciam hire de no-hire em cada vaga. A skill ganha seus 30 minutos de configuração na segunda vaga porque o design é calibrado por vaga em vez de tamanho único.
vs design DIY de loop pelo gestor de contratação — um HM sênior consegue projetar um bom loop do zero em 90-120 minutos. Eles tendem a não fazer isso, porque sob pressão de prazo eles reutilizam o último loop que executaram, independentemente do fit. A vitória da skill não é “projeta melhor do que um HM experiente no pico”; é “projeta tão bem quanto um HM experiente consistentemente, em todas as vagas e todas as semanas.” A consistência é o benefício composto.
vs nenhum loop estruturado — as meta-análises publicadas em structured interviewing colocam entrevistas estruturadas em aproximadamente o dobro da validade preditiva de não estruturadas para desempenho no trabalho. Se o seu status quo é não estruturado, a skill não é a questão — adotar estrutura é. A skill é como tornar a estrutura barata o suficiente para realmente implantar em cada vaga.
Pontos de atenção
Sobrecarga de entrevistador da mesma pessoa sendo atribuída em todo lugar.Proteção: o passo de atribuição na skill impõe “nenhum entrevistador em mais de um estágio do mesmo loop” como regra rígida. A tabela de atribuição surfacea um entrevistador reserva por estágio para que o recrutador tenha um fallback quando o primário estiver indisponível, em vez de reutilizar o primário em dois estágios.
Sinal redundante entre estágios.Proteção: o passo de experiência do candidato re-lê o loop montado e sinaliza qualquer competência sondada em mais de um estágio. A tabela de mapeamento competência-para-estágio no topo do output do loop torna a redundância visível para o gestor de contratação no momento da revisão.
Experiência do candidato negligenciada.Proteção: o passo de experiência do candidato é um passo separado e nomeado na skill em vez de uma frase no final do loop. Ele impõe limites de tempo total (5 horas IC, 7 horas liderança), limites de entrevistadores distintos (6), sugestões de take-home para competências que inflam o loop e TODOs de acomodação de fuso horário. Sem esse passo, “mais uma conversa de 30 minutos” se acumula invisivelmente.
Drift de calibração dentro de um único loop.Proteção: o bloco de rubric emitido por estágio inclui descrições de âncoras por nível de pontuação extraídas da biblioteca de competências, não texto livre “rate 1 to 5”. As âncoras são o que mantém a calibração quando o mesmo candidato é pontuado por quatro entrevistadores diferentes no mesmo loop. Rubric vago → pontuações vagas → debrief que re-debate cada dimensão por anedota.
Gestor de contratação homologando o design sem ler.Proteção: a skill para no gate de revisão e escreve para arquivos. Não há ação “publicar no ATS.” O HM tem que abrir o arquivo e editá-lo antes de configurar o loop — esse atrito é intencional. Se os HMs começarem a assinar sem ler, o conteúdo do loop deriva dos requisitos da vaga e a skill para de ganhar seu tempo economizado.
Calibração de entrevistadores desatualizada.Proteção: a matriz de entrevistadores tem uma coluna “Última entrevista.” Células com mais de 6 meses acionam re-calibração antes que o entrevistador seja atribuído novamente. Quando a interview intelligence revela perguntas que não estão produzindo sinal útil, atualize as âncoras da biblioteca de competências e a skill emite as novas âncoras na próxima execução.
Stack
O bundle de skill está em apps/web/public/artifacts/interview-loop-builder-skill/ e contém:
SKILL.md — a definição da skill com frontmatter, regras de quando invocar, inputs, método e pontos de atenção emparelhados com proteções
references/1-competency-library.md — a taxonomia de competências com descrições de âncoras por nível de pontuação por faixa de nível; preencha por função antes de executar
references/2-interviewer-strengths.md — a matriz do pool de entrevistadores elegíveis com cobertura calibrada por competência; preencha por equipe antes de executar
references/3-loop-output-format.md — o formato Markdown literal que a skill emite, incluindo o layout do scaffold de scorecard
Ferramentas que o workflow assume que você já usa: Claude (o modelo), Ashby ou Greenhouse (o ATS onde o HM configura o loop projetado), BrightHire ou Metaview (interview intelligence cujo sinal alimenta de volta o ajuste de âncoras da biblioteca de competências). Combina diretamente com o JD writer upstream e o interview debrief summary downstream.
---
name: interview-loop-builder
description: Take a job description, level, must-have competencies, and an interviewer pool with strengths, and produce a complete interview loop design — stage progression, per-stage rubric, behavioral questions per dimension, and interviewer assignments paired with the rubric dimension each one is scoring. Stops at a hiring-manager review gate before the loop is configured in the ATS.
---
# Interview loop builder
## When to invoke
Use this skill when a recruiter or hiring manager has a confirmed opening, an approved JD, and needs the structured interview loop designed before the first candidate moves into the screen stage. Take the JD, the role's level, the must-have competencies, and the eligible interviewer pool with each interviewer's calibrated strengths, and produce a Markdown loop design plus per-stage scorecard scaffolds.
Do NOT invoke this skill for:
- **Auto-scheduling.** This skill designs the loop; it does not schedule. Calendar coordination, interviewer-availability matching, and candidate-facing booking links are Ashby Scheduling, Greenhouse Scheduling, or Goodtime's job. Mixing design and scheduling in one skill couples two failure modes that should fail independently.
- **Replacing the rubric design with the hiring manager.** The skill maps competencies to a rubric *dimension* and writes anchor descriptions per score level, but the actual rubric per role family is owned by the hiring manager and the head of the function. If `references/1-competency-library.md` is empty or all-template, the skill refuses and surfaces a TODO rather than inventing a rubric for a function it has no calibrated signal on.
- **Generic templated loops without role-specific calibration.** If the inputs do not name the level, the must-have competencies, or the interviewer pool, the skill refuses. A four-stage loop with generic "behavioral", "technical", "system design", "leadership" labels passes for structured but is not — every candidate gets the same questions regardless of role priorities, which defeats the point.
- **Roles below a defined complexity threshold.** A two-week contractor role does not need a four-stage loop. The skill warns and suggests a one-stage screen if the role is contract, hourly, or under 6 months expected tenure.
## Inputs
- Required: `job_description` — path to a Markdown file (typically the output of the JD-writer skill, or a manually authored JD).
- Required: `level` — one of `IC1`, `IC2`, `IC3`, `IC4`, `IC5`, `IC6`, `M1`, `M2`, `M3`, `Director`, `VP`. Drives loop length and the competency-to-stage mapping.
- Required: `must_have_competencies` — array of 3-6 competency IDs drawn from `references/1-competency-library.md`. The skill maps each to a stage and refuses if more than 6 are provided (loop length blows out, signal per interview drops).
- Required: `interviewer_pool` — path to `references/2-interviewer-strengths.md` filled in for the role's function, listing each eligible interviewer with their calibrated strengths (which competencies they have been calibrated to score on what level bands).
- Optional: `loop_length_max` — hard cap on number of post-screen stages, default 4. Above 5, the skill warns about candidate-experience cost.
- Optional: `time_zone` — interviewer/candidate timezone hint used in the candidate-experience pass to flag any cross-timezone stages that need an explicit accommodation.
## Reference files
Always read these from `references/` before generating the loop. They contain the user's competency taxonomy, the interviewer pool, and the output format. Without them, the loop is a template, not a design.
- `references/1-competency-library.md` — the team's calibrated competency taxonomy with rubric dimensions and behavioral-anchor descriptions per score level. Replace the template with your real library before running.
- `references/2-interviewer-strengths.md` — the eligible interviewer pool with each interviewer's calibrated strengths. The skill matches competencies to interviewers using this matrix.
- `references/3-loop-output-format.md` — the literal Markdown format the skill emits, including the per-stage rubric block, the interviewer-assignment table with rationale, and the candidate-experience summary.
## Method
Run these six steps in order. Do not parallelize — later steps depend on context from earlier steps, and the candidate-experience pass at the end deliberately re-reads the assembled loop to catch overload that is invisible while assigning each stage in isolation.
### 1. Validate inputs
Open `job_description`, `references/1-competency-library.md`, and `references/2-interviewer-strengths.md`. Confirm:
- Each ID in `must_have_competencies` exists in the competency library. Unknown IDs → stop and surface them.
- The interviewer pool contains at least one interviewer calibrated on each must-have competency at the role's level. If a competency has no calibrated interviewer, surface a TODO ("hire / calibrate an interviewer for {competency} at {level} before designing this loop") and stop.
- The level falls inside the range the competency library has anchor descriptions for. Designing a Director loop with an IC-only library produces inflated rubrics; refuse.
### 2. Map competencies to stages
For each must-have competency, decide the stage where it is best evaluated. The mapping is opinionated:
- **Recruiter screen** evaluates fit, interest, comp alignment, and basic must-have-skill confirmation. Never a competency dimension on the rubric — recruiters do not score the rubric.
- **Hiring-manager screen** evaluates the top 1-2 competencies that most differentiate hire / no-hire on this role. The HM is the highest-signal interviewer; spending HM time on lower-priority competencies wastes calibration.
- **On-site loop** spreads remaining competencies one-per-interview where possible. One competency per interview is the engineering choice — bundling two competencies into one 60-minute interview produces shallower signal on both, and it makes the rubric harder for the interviewer to apply in the moment.
- **Working-session / take-home** (optional, only for IC4+ technical roles) evaluates competencies that need extended time or written artefact (system design, written communication, code review depth).
The output of this step is a `competency → stage` table with the rationale for each placement.
### 3. Design the per-stage rubric
For each post-screen stage, generate the rubric block. Each rubric dimension corresponds to one competency from step 2. For each dimension:
- Pull the anchor descriptions from `references/1-competency-library.md` for the candidate's level band.
- Generate 3-5 behavioral questions that probe the dimension. Each question must reference the situation / behavior / outcome shape; hypothetical "what would you do if…" questions are excluded by default because they reward articulate guessing over evidenced experience.
- Generate one suggested probing follow-up per question for the interviewer to use when the candidate's first answer is shallow.
The choice to include anchors and follow-ups in the output (rather than just the questions) is what separates a usable scorecard from "here are some questions, score it from 1 to 5". Without anchors, calibration drifts within a single loop.
### 4. Assign interviewers with rationale
For each post-screen stage, propose 1-3 interviewer candidates from the eligible pool. Match by:
- Calibration fit — the interviewer is calibrated on this competency at this level band. Hard requirement.
- Load balance — no interviewer is assigned to more than one stage in the same loop. Prevents the "only one person actually evaluates this candidate" failure mode where a single interviewer dominates the debrief.
- Diversity of perspective — where the eligible pool allows, propose at least one interviewer from outside the hiring team to reduce consensus bias in the debrief.
Output: an assignment table with the rationale per assignment ("Jamie calibrated at IC4 on systems-design; Priya outside the hiring team, last interviewed at this level 6 weeks ago").
### 5. Candidate-experience pass
Re-read the assembled loop and check, in order:
- Total interview time across all stages. Above 5 hours active for an IC role or 7 hours for a leadership role, flag and suggest moving one competency to a take-home.
- Number of distinct interviewers the candidate meets. Above 6, flag ("loop fatigue").
- Stages that require the candidate to repeat the same story. If two stages probe the same competency, surface as redundant.
- Cross-timezone stages without an accommodation note. Surface a TODO for the recruiter.
The choice to do this as a separate step rather than during stage design is deliberate: while assigning each stage in isolation it is easy to add "one more 30-minute conversation"; only by re-reading the full assembled loop does the candidate-side cost become legible.
### 6. Hiring-manager review gate
Stop. Write the loop design to `loop.md` per the format in `references/3-loop-output-format.md`. Write each stage's scorecard scaffold to `scorecards/<stage>.md`. Do not push anything to Ashby, Greenhouse, or Lever. Do not mark the role as "loop ready" in the ATS. Surface the path to both files and exit.
The hiring manager's job from here: read the loop, validate the competency-to-stage mapping reflects the actual role priorities, edit the questions, and configure the loop in the ATS. The skill does not re-enter the loop until the hiring manager confirms changes for a v2 design.
## Output format
```markdown
# Interview loop — {Role title} ({level})
Generated: {ISO timestamp} · Competencies: {n} · Stages: {n} · Total active time: {hours}
## Competency → stage mapping
| Competency | Stage | Rationale |
|---|---|---|
| Systems design | On-site Interview B | Highest differentiator at IC5; needs 60min for depth |
| Stakeholder influence | HM screen | Top hire/no-hire signal for this role |
| ... | ... | ... |
## Stage 1: Recruiter screen (30 min)
- Goal: confirm fit, interest, must-have-skill basics, comp alignment
- Key questions: ...
- Disqualifying signals: ...
- Not on rubric (screen, not scored)
## Stage 2: Hiring-manager screen (45 min)
- Goal: depth on {top 1-2 competencies}
- Rubric dimensions: {dim 1}, {dim 2}
- Behavioral questions:
1. {Question} — Probe: {follow-up}
2. ...
- Scorecard scaffold: `scorecards/02-hm-screen.md`
## Stage 3: On-site Interview A — {Competency} (60 min)
- Rubric dimension: {dim}
- Anchor descriptions ({level band}):
- 5 — {anchor}
- 4 — {anchor}
- 3 — {anchor}
- 2 — {anchor}
- 1 — {anchor}
- Behavioral questions:
1. {Question} — Probe: {follow-up}
2. ...
- Scorecard scaffold: `scorecards/03-onsite-a.md`
## Suggested interviewer assignments
| Stage | Primary | Backup | Rationale |
|---|---|---|---|
| HM screen | {HM name} | — | hiring manager |
| Onsite A — Systems design | Jamie L. | Priya R. | Jamie calibrated IC5 systems-design; Priya outside hiring team |
| ... | ... | ... | ... |
## Stage N: Debrief
- Format: independent scoring submitted before discussion
- Decision criteria: {explicit thresholds — e.g. "no rubric dimension < 3, aggregate >= 16"}
## Candidate-experience pass
- Total active interview time: {hours}
- Distinct interviewers: {n}
- Cross-timezone stages: {none | list with accommodation TODO}
- Redundant signal flagged: {none | list}
- Take-home recommendation: {none | move {competency} to take-home}
## Open TODOs for hiring manager
- ...
```
## Watch-outs
- **Interviewer overload from the same person being assigned everywhere.** *Guard:* step 4 enforces "no interviewer in more than one stage of the same loop" as a hard rule. The assignment table surfaces backup interviewers per stage so the recruiter has a fallback when the primary is unavailable, rather than re-using the primary in two stages.
- **Redundant signal across stages.** *Guard:* the candidate-experience pass in step 5 re-reads the loop and flags any competency probed in more than one stage. The competency-to-stage table in the output makes redundancy visible to the hiring manager in review.
- **Candidate experience neglected.** *Guard:* the candidate-experience pass in step 5 is a separate, named step rather than a sentence at the bottom of the loop. It enforces total-time caps, distinct-interviewer caps, take-home suggestions for competencies that bloat the loop, and timezone accommodation TODOs.
- **Calibration drift inside a single loop.** *Guard:* the rubric block emitted in step 3 includes anchor descriptions per score level pulled from the competency library, not free-text "rate 1 to 5". Anchors are the thing that holds calibration when the same candidate is scored by four different interviewers.
- **Hiring manager rubber-stamps the design.** *Guard:* skill stops at the review gate in step 6 and writes to files. There is no "publish to ATS" action defined anywhere in this skill. The HM has to open the file and edit it before configuring the loop.
- **Generic loops where role specificity matters.** *Guard:* step 1 refuses to run if `must_have_competencies` is empty or if the interviewer pool is missing calibrated coverage. The skill never falls back to a "default loop" for the function.
# Competency library — TEMPLATE
> Replace this template's contents with your team's actual competency
> library. The interview-loop-builder skill reads this file on every
> run; without your real library, the loop output is generic and the
> rubric anchors are uncalibrated.
## How to use
Each competency has:
- A short ID (used by `must_have_competencies` in the skill input)
- A one-sentence definition
- The level bands it has anchor descriptions for
- Anchor descriptions per score level (1-5) per level band
The skill maps each competency to a stage and emits the anchors for the candidate's level band into the per-stage rubric.
## Coverage matrix
| Competency ID | Definition | Bands covered |
|---|---|---|
| systems-design | Designs systems that meet current requirements while preserving headroom for known future needs. | IC3, IC4, IC5, IC6 |
| stakeholder-influence | Builds shared understanding and commitment across stakeholders without formal authority. | IC4, IC5, IC6, M1, M2, M3 |
| technical-depth | Reasons from first principles in the candidate's primary technical domain. | IC1, IC2, IC3, IC4, IC5, IC6 |
| ownership | Drives ambiguous problems to resolution, including the parts not in the original scope. | IC2, IC3, IC4, IC5, IC6, M1, M2 |
| communication-written | Writes documents that move decisions forward without a meeting. | IC3, IC4, IC5, IC6, M1, M2, M3 |
| people-leadership | Hires, develops, and retains a high-performing team. | M1, M2, M3, Director, VP |
| strategic-thinking | Identifies the right problem to solve before optimizing the solution. | IC5, IC6, M2, M3, Director, VP |
## Per-competency anchors
### systems-design (IC4 band)
- **5** — Designs the system end-to-end including failure modes, upgrade paths, and observability. Names trade-offs explicitly with reasoning per axis (latency, cost, complexity, blast radius).
- **4** — Designs the happy path and the most likely failure modes. Names trade-offs but reasoning is uneven across axes.
- **3** — Designs the happy path. Identifies failure modes when prompted. Trade-offs implicit, surfaced under follow-up questioning.
- **2** — Designs a workable system but misses obvious failure modes or scaling cliffs. Trade-offs not articulated.
- **1** — Designs a system that does not meet stated requirements, or cannot articulate why a design is structured as proposed.
> Replace the IC4 anchors above with your real anchors. Add anchor
> blocks for IC3, IC5, and IC6 in the same shape.
### stakeholder-influence (M2 band)
- **5** — Names the specific stakeholders, their incentives, the surface area of the disagreement, and the sequence of conversations that produced commitment. Outcome was a documented decision change.
- **4** — Names the stakeholders and incentives, walks through conversations, but the outcome description is fuzzy.
- **3** — Walks through one or two conversations. Stakeholder incentives are inferred under prompting.
- **2** — Describes the disagreement and the resolution but cannot describe the work between them.
- **1** — Describes a meeting outcome with no underlying stakeholder work.
> Replace the M2 anchors above with your real anchors. Add anchor
> blocks for IC4, IC5, IC6, M1, M3 in the same shape.
## Calibration discipline
When you add or change anchors:
- Run a calibration session with at least 3 interviewers scoring the same recorded interview. If their scores diverge by more than 1 point, the anchors are not calibrated yet.
- Date each change. The skill does not version anchors automatically; if you change an anchor mid-loop, the consistency of the loop is on you.
- Retire anchors that the calibration set cannot reproduce. Vague anchors are worse than no anchors — they create the illusion of structure.
## Last edited
{YYYY-MM-DD} — update on every material change.
# Interviewer strengths matrix — TEMPLATE
> Replace this template's contents with your team's actual interviewer
> pool and calibrated strengths. The interview-loop-builder skill
> reads this file on every run; without it, the assignment table is
> guessed rather than matched.
## How to use
Each row is one eligible interviewer. Columns are the competency IDs from `1-competency-library.md`. Each cell is the level band(s) the interviewer is calibrated to score that competency on. Empty cell = not calibrated; the skill will not assign.
The skill reads this matrix in step 4 (interviewer assignment) and matches by:
1. Calibration fit (interviewer is calibrated on the competency at the candidate's level band).
2. Load — at most one stage per loop per interviewer.
3. Diversity — at least one interviewer from outside the hiring team when the eligible pool allows.
## Pool
| Interviewer | Team | systems-design | stakeholder-influence | technical-depth | ownership | communication-written | people-leadership | strategic-thinking | Last interview (date) |
|---|---|---|---|---|---|---|---|---|---|
| Jamie L. | Platform | IC4, IC5 | — | IC3, IC4 | IC4 | — | — | — | 2026-04-19 |
| Priya R. | Data | — | IC4, IC5, M1 | IC4 | IC4, IC5 | IC4, IC5 | — | — | 2026-04-22 |
| Marcus T. | Product | — | IC5, M1, M2 | — | IC5 | M1, M2 | M1, M2 | M2 | 2026-04-12 |
| Aiko S. | Eng leadership | IC5, IC6 | M1, M2, M3 | IC5 | IC5, M1 | M2, M3 | M1, M2, M3 | M2, M3, Director | 2026-04-26 |
> Replace the rows above with your real interviewer pool. The columns
> are the competency IDs you defined in `1-competency-library.md`.
## Calibration discipline
When you add an interviewer or extend an interviewer's coverage:
- They sit shadow on at least 2 interviews at the new level band, then reverse-shadow (they score, the calibrated interviewer audits) on at least 2 more.
- Both calibrated interviewer and new interviewer sign off in the matrix before the cell is added.
- Retire a calibration band if the interviewer has not used it in 6 months. The "Last interview" column is the trigger to re-calibrate.
## Outside-the-hiring-team rule
The skill prefers at least one interviewer outside the hiring team per loop, to reduce consensus bias in debriefs. To make this work:
- Tag each interviewer's `Team` accurately.
- Ensure the eligible pool for each role family includes at least 2 outside-team interviewers per must-have competency at the role's level. If it does not, the skill will assign in-team only and surface a TODO ("expand cross-team calibration for {competency}").
## Last edited
{YYYY-MM-DD} — update on every calibration change.
# Loop output format — TEMPLATE
> The interview-loop-builder skill emits its output in the format
> below. This file documents the format so the team can adjust before
> running the skill at scale; the skill reads this file as the literal
> template, not a guideline.
## File layout
The skill writes:
- `loop.md` — the loop design, in the format below.
- `scorecards/<NN>-<stage-id>.md` — one scorecard scaffold per post-screen stage, with the rubric block prefilled and an empty scoring section.
## loop.md format
```markdown
# Interview loop — {Role title} ({level})
Generated: {ISO timestamp}
Competencies: {n}
Stages: {n}
Total active interview time: {hours}h
Distinct interviewers: {n}
## Inputs summary
- JD: {path}
- Level: {level}
- Must-have competencies: {comma-separated IDs}
- Interviewer pool: {path to filled interviewer-strengths matrix}
- Loop length cap: {n}
- Time zone hint: {tz | not provided}
## Competency → stage mapping
| Competency | Stage | Rationale |
|---|---|---|
## Stage 1: Recruiter screen (30 min)
Goal, key questions, disqualifying signals. Not on rubric.
## Stage 2: Hiring-manager screen (45 min)
Goal, rubric dimensions, behavioral questions with probes, scorecard
scaffold link.
## Stage 3..N: On-site interviews (60 min each)
For each stage:
- Rubric dimension (single competency)
- Anchor descriptions for the candidate's level band (5 lines, one
per score level, pulled from competency library)
- Behavioral questions with probes (3-5)
- Scorecard scaffold link
## Suggested interviewer assignments
| Stage | Primary | Backup | Rationale |
|---|---|---|---|
## Stage N+1: Debrief
Format (independent scoring before discussion), decision criteria
(explicit thresholds), debrief facilitator.
## Candidate-experience pass
- Total active interview time
- Distinct interviewers
- Cross-timezone stages with accommodation TODOs
- Redundant signal flagged
- Take-home recommendation if loop is over the time cap
## Open TODOs for hiring manager
- ...
```
## scorecards/<NN>-<stage-id>.md format
```markdown
# Scorecard — {Stage} ({Competency})
**Candidate:** {name}
**Interviewer:** {name}
**Date:** {YYYY-MM-DD}
**Level:** {level}
## Rubric dimension: {Competency}
Anchor descriptions ({level band}):
- 5 — {anchor}
- 4 — {anchor}
- 3 — {anchor}
- 2 — {anchor}
- 1 — {anchor}
## Behavioral questions
1. {Question}
- Probe: {follow-up}
- Notes:
2. ...
## Scoring
- Score: ___ / 5
- Evidence (cite candidate's words for the score):
- Hire / no-hire on this dimension: ___
- One-line rationale:
## Submit
Independent scoring submitted to debrief before discussion.
```
## What the format enforces
- Every rubric dimension has anchor descriptions inline. No "rate 1 to 5" without anchors.
- Every behavioral question has a probe. Interviewers do not have to invent follow-ups in the moment.
- Every interviewer assignment has a rationale. The hiring manager can audit why a person was assigned without re-running the skill.
- The candidate-experience pass is a section, not a sentence.
- Open TODOs are explicit. The skill never silently leaves a gap.
## Last edited
{YYYY-MM-DD}