ooligo
claude-skill

Feedback de rejeição personalizado com o Claude

Dificuldade
intermediário
Tempo de setup
30min
Para
recruiter · talent-acquisition · recruiting-ops
Recrutamento e TA

Stack

Um Claude Skill que pega os scorecards de entrevista de um candidato rejeitado (e, quando disponíveis, transcrições do BrightHire ou Metaview), rascunha um email de rejeição fundamentado em evidências ou notas de talking-points para chamada do recruiter, e produz as notas do lado do recruiter para a chamada. Substitui a rejeição por formulário genérico que prejudica a experiência do candidato por feedback personalizado que o candidato pode realmente usar — e recusa rascunhar quando a rubrica está faltando, o loop não convergiu ou o caso tem um flag de jurisdição.

Quando usar

  • O candidato chegou pelo menos a um onsite ou loop de etapa final, onde pelo custo do funil de recruiting o candidato investiu tempo suficiente para merecer uma resposta real.
  • A equipe tem pelo menos dois scorecards aprovados sobre o candidato (Ashby submitted: true, Greenhouse status: complete, Lever state: completed). Um scorecard é a visão de um entrevistador; o skill recusa sintetizar feedback de uma única perspectiva porque isso expõe o escritório a alegações de evidência seletiva.
  • Uma rubrica de cargo existe em rubrics/<role_id>.yaml com âncoras comportamentais por dimensão (a mesma fonte que o skill de debrief de entrevista lê). O skill pontua contra âncoras de rubrica, não contra prosa livre de scorecard.
  • O candidato solicitou explicitamente feedback (capturado por escrito no ATS), OU a jurisdição de residência do candidato é uma onde especificidades não solicitadas não carregam risco documentado conforme orientação de RH-jurídico do usuário.
  • Um recruiter revisa e edita cada rascunho antes de enviar. O skill escreve rascunhos em disco e para; não define nenhuma ação send.

Quando NÃO usar

  • Envio automático sem revisão do recruiter. Feedback de rejeição rascunhado por IA e enviado é a forma mais confiável de produzir um incidente de EEOC, ADA ou lei de emprego estadual. O recruiter é o portão. Se seu objetivo é remover o humano do loop, este é o workflow errado.
  • Candidatos que não solicitaram feedback em jurisdições de negação. França (risco do Code du travail sobre razões de rejeição documentadas), Alemanha (deslocamento de ônus probatório do parágrafo 22 do AGG) e qualquer jurisdição que o RH-jurídico do usuário marcou unsolicited_feedback: deny no arquivo de política. O skill recusa especificidades nesses casos e escreve o template de recusa genérica. Não edite o arquivo de política para fazer um caso de jurisdição de negação passar.
  • Casos que o jurídico sinalizou. Disputa ativa, pedido de acomodação não tratado ou reclamação registrada. O skill retorna um rascunho de recusa genérica e surfaceia o flag ao recruiter. Especificidades num caso sinalizado se tornam evidência na disputa.
  • Rejeições em estágios mais cedo (triagem de currículo, triagem do recruiter). A recusa por template é a ferramenta certa aí; o custo de modelo por candidato e o tempo de revisão do recruiter não se pagam em volume de topo de funil. O skill é para candidatos que chegaram pelo menos a um onsite.
  • Ranking comparativo (você foi nossa segunda escolha, tivemos candidatos mais fortes). O skill recusará rascunhar isso — o mapeamento de rubrica-para-feedback não contém a linguagem e a blocklist de frases proibidas a captura. Ranking comparativo é o que transforma uma rejeição construtiva em um post no Glassdoor.
  • Pedidos de melhoria de processo (pedir feedback ao candidato sobre a entrevista, uma indicação ou um depoimento). Pedidos reversos em um email de rejeição são um risco de declaração de testemunha EEOC e um dano à experiência do candidato. A blocklist os captura.

Setup

  1. Faça o drop do bundle. Coloque apps/web/public/artifacts/rejection-feedback-claude-skill/SKILL.md no seu diretório de skills do Claude Code (ou skills personalizados do claude.ai, com autorização Tier-A para dados de candidatos conforme política de IA).
  2. Configure a fonte da rubrica. O skill lê as rubricas do cargo em rubrics/<role_id>.yaml — o mesmo caminho que o skill de debrief de entrevista usa. Se a rubrica não existir, o skill recusa executar. Entrevistas estruturadas é o pré-requisito, não este skill.
  3. Preencha o mapeamento de rubrica para feedback. Copie references/1-rubric-to-feedback-mapping.md e substitua a linguagem do template pela linguagem aprovada voltada ao candidato da sua equipe por dimensão de rubrica. Obtenha aprovação do RH-jurídico na linguagem aprovada uma vez; o log de auditoria captura o SHA-256 do mapeamento por execução, então as revisões são visíveis em retro.
  4. Escreva o arquivo de política de jurisdição. Um arquivo YAML com um bloco por jurisdição em que sua empresa contrata. Cada bloco define unsolicited_feedback: allow ou deny e referencia o memo de orientação de RH-jurídico relevante. O bundle inclui um template; os padrões de negação são França, Alemanha e qualquer jurisdição com orientação ativa de lei trabalhista contra razões documentadas de rejeição.
  5. Configure a API do ATS. Token da API do Ashby, Greenhouse ou Lever com escopo de leitura em scorecards e candidatos. O skill puxa os scorecards por candidate_id; não aceita texto de scorecard colado porque o texto colado não pode ser auditado de volta ao entrevistador de origem.
  6. Opcional: configure o bundle de transcrição. Acesso à API do BrightHire ou Metaview. Quando um transcript_id é fornecido, o skill cruza as alegações dos scorecards com os turnos de transcrição no passo 4.
  7. Execute em seco num candidato fechado. Execute num candidato que já foi rejeitado no trimestre passado. Compare o rascunho do skill com o que o recruiter realmente enviou. Ajuste o mapeamento de rubrica para feedback se a calibração derivar — o mapeamento, não o modelo, é geralmente a alavanca.

O que o skill realmente faz

Seis passos, em ordem. A ordem importa: o gate de jurisdição e a validação do scorecard acontecem antes de o LLM ler qualquer conteúdo do candidato, porque deixar o modelo solto em texto de scorecard num caso de jurisdição de negação deixa uma entrada de log de chamada de modelo com dados de identificação do candidato que o escritório não precisava reter.

  1. Valide a política de jurisdição e o consentimento. Consulte a jurisdição do candidato no arquivo de política. Se a política for unsolicited_feedback: deny e o candidato não solicitou feedback por escrito, pare as especificidades e mude para o template de recusa genérica. A escolha de fazer gate no consentimento antes de puxar os scorecards mantém a história de minimização de dados limpa para o Art. 5(1)(c) do GDPR.
  2. Puxe os scorecards (e transcrição opcional). Busque via API do ATS. Descarte rascunhos. Se o loop tiver menos de dois scorecards aprovados, pare — feedback sintetizado da visão de um entrevistador é uma opinião, não feedback, e expõe o escritório a alegações de evidência seletiva.
  3. Identifique dimensões e evidências. Calcule a média e desvio padrão entre entrevistadores por dimensão de rubrica. Surfaceie dimensões onde média ≥ 4 (força, abertura positiva) e média ≤ 2 (lacuna do candidato). Recuse surfacear qualquer dimensão com desvio padrão entre entrevistadores ≥ 1,5 — o loop não convergiu, e feedback sobre uma dimensão não convergida não sobreviveria a um desafio “mas o entrevistador X me deu 5”. Para cada dimensão surfaceada, puxe citações verbatim de evidências dos scorecards (ou transcrição, quando disponível). Sem string verbatim → a dimensão não é surfaceada.
  4. Rascunhe contra o mapeamento de rubrica para feedback. Traduza no máximo uma força e uma lacuna em linguagem voltada ao candidato usando references/1-rubric-to-feedback-mapping.md. Limite a um de cada para que o rascunho não leia como uma lista defensiva. Os slots de substituição do mapeamento são preenchidos a partir de campos estruturados (scorecard, âncora de rubrica) ou da lista de tópicos aprovados — o LLM nunca faz texto livre de um valor de substituição, que é o guarda contra especificidades falsas.
  5. Triagem de viés e especificidades falsas. Faça grep do rascunho contra references/2-banned-phrase-blocklist.md. Qualquer hit para a execução com a string ofensiva surfaceada. Verifique se toda alegação específica mapeia de volta a uma string de evidência verbatim do passo 3 — alegações sem fonte param. Esta é uma passagem separada do passo 4 por design; a passagem de triagem vê apenas o texto do rascunho, sem consciência dos scorecards subjacentes, para que não possa racionalizar uma frase proibida como “mas o entrevistador quis dizer X”.
  6. Escreva em disco e log de auditoria. Escreva drafts/<candidate-id>.md e (para route: call) drafts/<candidate-id>-call-notes.md conforme o formato em references/3-output-format.md. Acrescente uma linha JSONL ao audit/<YYYY-MM>.jsonl com candidate_id_hash (SHA-256, não ID bruto), rubric_sha256, blocklist_sha256, mapping_sha256, dimensões surfaceadas, hits da blocklist, ID do modelo, timestamp. Sem texto livre de identificação do candidato na linha de auditoria.

O formato literal do email, o fallback de recusa genérica e o template de notas de chamada vivem em references/3-output-format.md. O formato é fixo porque os consumidores downstream — recruiter, candidato e qualquer revisor futuro de auditoria — precisam de linguagem previsível sem drift específico do recruiter.

Realidade de custos

Por rascunho de rejeição, no Claude Sonnet 4.5:

  • Tokens de LLM — tipicamente 12-25k tokens de input (rubrica YAML + scorecards + instruções do skill + arquivos de referência) e 0,5-1,5k tokens de output (o rascunho mais as notas de chamada). No Sonnet 4.5 isso é aproximadamente 5-10 centavos de dólar por rascunho. Uma equipe de recruiters executando 200 rascunhos de rejeição por mês gasta 10-20 dólares em custo de modelo.
  • Custo de API do ATS — zero no Ashby (API gratuita), Greenhouse (incluído no tier), Lever (incluído). Fetches de transcrição contra BrightHire ou Metaview contam contra o plano por assento; fetches de feedback de rejeição são somente leitura e não consomem novos créditos de transcrição.
  • Tempo do recruiter — o ganho está aqui. Rascunhar manualmente um email de rejeição fundamentado em evidências a partir dos scorecards é 20-30 minutos por candidato quando o recruiter faz bem, ou 3 minutos quando cola um formulário genérico (que é o que a maioria das equipes acaba fazendo em escala). O skill produz o rascunho de 20 minutos em menos de 30 segundos; o recruiter revisa e edita em 4-7 minutos. Economia líquida de aproximadamente 15-20 minutos por rejeição no nível de qualidade de rascunho cuidadoso — chame de 50-60 horas por mês numa equipe executando 200 rejeições.
  • Tempo de setup — 30 minutos para o mapeamento de rubrica para feedback e a política de jurisdição se sua equipe já tem linguagem aprovada voltada ao candidato em algum lugar; mais longo se o RH-jurídico ainda não pesou sobre linguagem de feedback de rejeição (nesse caso essa conversa é o pré-requisito, não este skill).
  • O retorno composto da experiência do candidato. Candidatos rejeitados com feedback específico e fundamentado em evidências são mais propensos a se reaplicar, mais propensos a indicar outros e substancialmente menos propensos a deixar reviews prejudiciais no Glassdoor — afirmações comumente citadas na literatura de recruiting são de 30-50% para intenção de reaplicar, embora não tenhamos uma fonte primária para esses números e os tratemos como direcionais. O retorno composto aparece na densidade do pipeline um ano depois, não no mês em que o rascunho foi enviado.

Métrica de sucesso

Rastreie três números por mês, no ATS:

  • Distância de edição do recruiter por rascunho. O número de caracteres que o recruiter muda entre o rascunho do skill e a mensagem enviada. Se a distância de edição tender a zero, o recruiter está aprovando sem critério — surfaceie isso em retro e reveja o mapeamento de rubrica para feedback. Se a distância de edição for consistentemente alta, o mapeamento está descalibrado.
  • Taxa de resposta do candidato à rejeição. Respostas a um email de rejeição geralmente são notas de agradecimento-e-futura-candidatura (bom sinal) ou notas de escalada (mau sinal). Rastreie a taxa de escalada como percentagem das rejeições enviadas. Uma equipe de linha de base usando formulários genéricos tipicamente vê menos de 1% de escalada; o objetivo com este skill é ficar nessa linha de base ou abaixo, não acima. Se a taxa de escalada subir, o mapeamento de rubrica para feedback está produzindo linguagem que aterrissa mal — reajuste.
  • Taxa de reaplicação em 12 meses. Candidatos rejeitados através deste skill versus candidatos rejeitados pelo formulário genérico legado, medidos nos próximos 12 meses. O benefício composto aparece aqui, não no gasto de modelo nem mesmo no thread de rejeição em si.

Versus as alternativas

  • Versus templates de rejeição integrados do Ashby. O Ashby (e Greenhouse, Lever) incluem templates de rejeição com campos de merge para nome do candidato e cargo. São templates, não feedback — os campos de merge não puxam evidências de scorecard e não há camada de linguagem fundamentada em rubrica. Use os templates do Ashby para rejeições de topo de funil onde templating é honesto. Use este skill para rejeições de etapa final onde o template lê como dispensivo do tempo que o candidato investiu.
  • Versus emails de recusa genéricos. A recusa genérica é a resposta certa em casos de jurisdição de negação, quando o consentimento não foi dado e quando a rubrica não surfaceou nada específico defensável. O skill escreve o template de recusa genérica byte a byte nesses casos. A diferença é que o skill faz a escolha deterministicamente por política de jurisdição e output da rubrica, em vez de o recruiter padrão para genérico por fadiga.
  • Versus notas escritas manualmente pelo recruiter. As notas manuais são o padrão ouro para candidatos sênior ou indicados VIP onde o recruiter tem o contexto do relacionamento e o tempo. O skill ganha seu espaço em volume — os 80% das rejeições de etapa final onde o recruiter de outra forma colaria um formulário genérico porque rascunho manual em escala não cabe no dia. Para o tier sênior, o arquivo de notas de chamada dá ao recruiter um ponto de partida estruturado para a chamada, e o recruiter improvisa a partir daí.
  • Versus um LLM sem arquivo de rubrica e sem blocklist. Este é o modo de falha contra o qual o skill é construído. Um LLM rascunhando a partir de scorecards sozinhos, sem fundamentação em rubrica, sem blocklist de frases proibidas e sem log de auditoria, produz texto de rejeição rápido, confiante e plausível — e aproximadamente um em vinte rascunhos conterá uma citação alucinada, um ranking comparativo ou um proxy de classe protegida. Os arquivos de checklist do bundle são o que move a taxa de falha para perto de zero.

Pontos de atenção

  • Linguagem que implica EEOC. Guardado pela blocklist de frases proibidas em references/2-banned-phrase-blocklist.md, que roda como uma passagem separada no passo 5 sem consciência dos scorecards subjacentes. Hits param a execução com a string ofensiva surfaceada. Não edite a blocklist para fazer um rascunho passar — corrija a rubrica ou a linguagem do scorecard.
  • Especificidades falsas do LLM. Guardado pela regra “sem síntese sem citação verbatim” no passo 3. Toda alegação no rascunho deve rastrear a uma string verbatim de um scorecard ou transcrição aprovado. Sem string verbatim → a dimensão não é surfaceada. Este é o guarda contra o modo de falha mais comum de feedback rascunhado por LLM — citações plausíveis que nenhum entrevistador escreveu realmente, citadas de volta ao candidato como fato.
  • Linguagem de ranking comparativo. Guardado pelo mapeamento de rubrica para feedback em references/1-rubric-to-feedback-mapping.md, que não contém linguagem comparativa, e pela blocklist no passo 5 que a captura se escorregar. Ranking comparativo é o que transforma uma rejeição construtiva em um post no Glassdoor.
  • Risco de evidência seletiva. Guardado pelo passo 2 (pare se o loop tiver menos de dois scorecards aprovados) e pelo passo 3 (recuse surfacear dimensões com desvio padrão entre entrevistadores em ou acima de 1,5). Desacordo entre entrevistadores não vira feedback do candidato.
  • Drift de envio automático. Guardado pela ausência de qualquer ação send no skill. Os rascunhos são escritos em drafts/<candidate-id>.md para o recruiter revisar, editar e enviar da caixa de saída do ATS. O recruiter é o portão.
  • Dano do boilerplate genérico. Guardado pela recusa do passo 3 em surfacear uma dimensão sem evidência verbatim — quando a rubrica não surfaceia nada seguro para compartilhar, o skill escreve o template de recusa genérica em vez de sintetizar especificidades fracas. Recusa genérica é honesta; especificidades fracas são piores que nenhuma especificidade.
  • PII no log de auditoria. Guardado pelo passo 6 escrevendo apenas candidate_id_hash (SHA-256), nunca o ID bruto do candidato, nome ou texto do scorecard. O log de auditoria é para reprodutibilidade da execução, não retenção de dados do candidato. Os rascunhos voltados ao candidato ficam em drafts/ sob a política de retenção própria do recruiter.
  • Drift de calibração entre cargos e senioridade. Guardado por rubricas YAML por cargo e pelo mapeamento de rubrica para feedback sendo versionado por equipe. Rejeições de liderança sênior precisam de enquadramento diferente das de nível de entrada; o arquivo de mapeamento é onde isso fica, não no código do skill.
  • Privacidade e residência de dados. Verifique se o skill opera dentro do AI Tier A empresarial conforme a política de IA. O conteúdo de entrevista é sensível; o candidato não consentiu com o processamento por um modelo terceirizado a menos que sua política de IA e sua linguagem de consentimento de coleta de scorecards cubram isso explicitamente.

Stack

O bundle do skill fica em apps/web/public/artifacts/rejection-feedback-claude-skill/ e contém:

  • SKILL.md — a definição do skill
  • references/1-rubric-to-feedback-mapping.md — preencha por equipe, linguagem aprovada pelo RH-jurídico por dimensão de rubrica
  • references/2-banned-phrase-blocklist.md — verificações pré-voo no rascunho (não edite para fazer rascunhos tendenciosos passarem)
  • references/3-output-format.md — o email literal, recusa genérica e formatos de notas de chamada

Ferramentas que o workflow assume que você já usa: Claude (o modelo), Ashby, Greenhouse ou Lever (o ATS onde os scorecards vivem) e opcionalmente BrightHire ou Metaview (transcrições de entrevistas para fundamentação de evidências mais rica). Workflow irmão que compartilha a fonte de rubrica: o skill de debrief de entrevista.

Arquivos deste artefato

Baixar tudo (.zip)