ooligo
claude-skill

Feedback de rechazo personalizado con Claude

Dificultad
intermedio
Tiempo de setup
30min
Para
recruiter · talent-acquisition · recruiting-ops
Reclutamiento y TA

Stack

Una Claude Skill que toma los scorecards de entrevista de un candidato rechazado (y, cuando está disponible, transcripciones de BrightHire o Metaview), redacta un email de rechazo o notas para una llamada del reclutador con base en evidencia, y produce las notas del lado del reclutador para la llamada. Reemplaza la carta tipo de rechazo que daña el candidate experience con un feedback personalizado que el candidato puede realmente aprovechar — y se niega a redactar cuando falta la rúbrica, el loop no convergió, o el caso está marcado por jurisdicción.

Cuándo usarlo

  • El candidato llegó al menos a un onsite o a un loop de etapa final, donde, según el costo del recruiting funnel, el candidato ya invirtió suficiente tiempo como para merecer una respuesta real.
  • El equipo tiene al menos dos scorecards firmados sobre el candidato (Ashby submitted: true, Greenhouse status: complete, Lever state: completed). Un scorecard es la visión de un solo entrevistador; la skill se niega a sintetizar feedback desde una sola perspectiva porque eso expone a la firma a reclamos de evidencia selectiva.
  • Existe una rúbrica de rol en rubrics/<role_id>.yaml con anclajes conductuales por dimensión (la misma fuente que lee la interview debrief skill). La skill califica contra los anclajes de la rúbrica, no contra la prosa libre del scorecard.
  • El candidato pidió feedback explícitamente (registrado por escrito en el ATS), O la jurisdicción de residencia del candidato es una donde lo específico no solicitado no acarrea riesgo documentado según la guía del HR-counsel del usuario.
  • Un reclutador revisa y edita cada borrador antes de enviar. La skill escribe los borradores a disco y se detiene; no define ninguna acción send.

Cuándo NO usarlo

  • Envío automático sin revisión del reclutador. El feedback de rechazo redactado y enviado por IA es la forma más confiable de producir un incidente con la EEOC, la ADA o la ley estatal de empleo. El reclutador es la puerta. Si tu objetivo es sacar al humano del loop, este es el workflow equivocado.
  • Candidatos que no pidieron feedback en jurisdicciones deny. Francia (riesgo del Code du travail sobre razones de rechazo documentadas), Alemania (cambio de carga probatoria del § 22 AGG), y cualquier jurisdicción que el HR counsel del usuario haya marcado unsolicited_feedback: deny en el archivo de política. La skill rechaza lo específico en esos casos y escribe la plantilla genérica de rechazo en su lugar. No edites el archivo de política para que un caso de jurisdicción deny pase.
  • Casos marcados por legal. Disputa activa, solicitud de adecuación no atendida, o una queja en registro. La skill devuelve un borrador de rechazo genérico y le hace ver la marca al reclutador. Lo específico en un caso marcado se convierte en evidencia en la disputa.
  • Rechazos en etapas tempranas (resume screen, recruiter screen). El rechazo con plantilla es la herramienta correcta ahí; el costo de modelo por candidato y el tiempo de revisión del reclutador no se amortizan a la escala del top-of-funnel. La skill es para candidatos que llegaron al menos a un onsite.
  • Ranking comparativo (fuiste nuestra segunda elección, tuvimos candidatos más fuertes). La skill se va a negar a redactar esto — el mapping rúbrica-a-feedback no contiene ese lenguaje y la lista negra de frases lo filtra. El ranking comparativo es lo que convierte un rechazo constructivo en un post de Glassdoor.
  • Pedidos de mejora de proceso (pedirle al candidato feedback sobre la entrevista, una referencia, o un testimonial). Pedidos a la inversa en un email de rechazo son riesgo de declaración de testigo ante la EEOC y daño al candidate experience. La lista negra los atrapa.

Setup

  1. Coloca el bundle. Pon apps/web/public/artifacts/rejection-feedback-claude-skill/SKILL.md en tu directorio de skills de Claude Code (o en custom Skills de claude.ai, con autorización de Tier A para datos de candidato según la AI policy).
  2. Configura la fuente de la rúbrica. La skill lee las rúbricas de rol desde rubrics/<role_id>.yaml — el mismo path que usa la interview debrief skill. Si la rúbrica no existe, la skill se niega a correr. Structured interviewing es el prerrequisito, no esta skill.
  3. Completa el mapping rúbrica-a-feedback. Copia references/1-rubric-to-feedback-mapping.md y reemplaza el wording del template con el lenguaje aprobado por tu equipo para hablarle al candidato por cada dimensión de la rúbrica. Consigue el sign-off del HR counsel sobre el wording aprobado una sola vez; el log de auditoría captura el SHA-256 del mapping por corrida, así que las revisiones son visibles en retro.
  4. Escribe el archivo de política por jurisdicción. Un archivo YAML con un bloque por cada jurisdicción donde tu firma contrata. Cada bloque setea unsolicited_feedback: allow o deny y referencia el memo de guía relevante del HR counsel. El bundle trae un template; los deny por defecto son Francia, Alemania y cualquier jurisdicción con guía activa de derecho laboral en contra de razones de rechazo documentadas.
  5. Configura la API del ATS. Token de API de Ashby, Greenhouse o Lever con scope de lectura sobre scorecards y candidatos. La skill jala scorecards por candidate_id; no acepta texto de scorecard pegado porque el texto pegado no se puede auditar de vuelta a la entrevistadora fuente.
  6. Opcional: configura el bundle de transcripciones. Acceso a la API de BrightHire o Metaview. Cuando se pasa un transcript_id, la skill cruza las afirmaciones del scorecard contra los turnos de la transcripción en el paso 4.
  7. Dry-run sobre un candidato cerrado. Corre sobre un candidato que ya fue rechazado el trimestre pasado. Compara el borrador de la skill con lo que el reclutador efectivamente envió. Ajusta el mapping rúbrica-a-feedback si la calibración deriva — el mapping, no el modelo, suele ser la palanca.

Lo que hace realmente la skill

Seis pasos, en orden. El orden importa: el gating por jurisdicción y la validación de scorecards van antes de que el LLM lea contenido del candidato, porque dejar al modelo correr sobre el texto del scorecard en un caso de jurisdicción deny deja una entrada en el log de model calls con datos identificatorios del candidato que la firma no necesitaba retener.

  1. Valida la política por jurisdicción y el consentimiento. Busca la jurisdicción del candidato en el archivo de política. Si la política es unsolicited_feedback: deny y el candidato no pidió feedback por escrito, frena lo específico y cambia a la plantilla genérica de rechazo. Elegir gatillar por consentimiento antes de jalar los scorecards mantiene limpia la narrativa de minimización de datos para el GDPR Art. 5(1)(c).
  2. Jala los scorecards (y la transcripción opcional). Fetch vía la API del ATS. Descarta drafts. Si el loop tiene menos de dos scorecards firmados, frena — feedback sintetizado desde la visión de un solo entrevistador es una opinión, no feedback, y expone a la firma a reclamos de evidencia selectiva.
  3. Identifica dimensiones y evidencia. Calcula la media y la desviación estándar entre entrevistadores por dimensión de la rúbrica. Saca a la luz dimensiones donde la media ≥ 4 (fortaleza, apertura cálida) y la media ≤ 2 (gap del candidato). Niégate a sacar a la luz cualquier dimensión con desviación estándar entre entrevistadores ≥ 1.5 — el loop no convergió, y feedback sobre una dimensión no convergente no sobreviviría un “pero el entrevistador X me puso un 5”. Para cada dimensión expuesta, jala citas textuales de evidencia de los scorecards (o de la transcripción, cuando esté disponible). Sin string textual → la dimensión no se saca a la luz.
  4. Redacta contra el mapping rúbrica-a-feedback. Traduce como mucho una fortaleza y un gap a lenguaje para el candidato usando references/1-rubric-to-feedback-mapping.md. Tope de uno cada uno para que el borrador no se lea como una lista defensiva. Los slots de sustitución del mapping se llenan desde campos estructurados (scorecard, anclaje de rúbrica) o desde la lista de temas aprobados — el LLM nunca redacta libremente un valor de sustitución, lo cual es la guarda contra lo específico falso.
  5. Screening de sesgo y de lo específico falso. Grep del borrador contra references/2-banned-phrase-blocklist.md. Cualquier hit frena la corrida con el string ofensor expuesto. Verifica que cada afirmación específica se mapee de vuelta a un string textual de evidencia del paso 3 — las afirmaciones sin fuente frenan. Este es un pase separado del paso 4 por diseño; el pase de screening solo ve el texto del borrador, sin awareness de los scorecards subyacentes, así que no puede racionalizar una frase prohibida como “pero el entrevistador quiso decir X”.
  6. Escribe a disco y al log de auditoría. Escribe drafts/<candidate-id>.md y (para route: call) drafts/<candidate-id>-call-notes.md según el formato en references/3-output-format.md. Agrega una línea JSONL a audit/<YYYY-MM>.jsonl con candidate_id_hash (SHA-256, no el ID crudo), rubric_sha256, blocklist_sha256, mapping_sha256, dimensiones expuestas, hits de la lista negra, model ID, timestamp. Nada de texto libre identificatorio del candidato en la línea de auditoría.

El formato literal del email, el fallback de rechazo genérico y la plantilla de notas para la llamada viven en references/3-output-format.md. El formato es fijo porque los consumidores aguas abajo — reclutador, candidato y cualquier futura revisión de auditoría — necesitan lenguaje predecible sin drift específico del reclutador.

Costo real

Por borrador de rechazo, con Claude Sonnet 4.5:

  • Tokens del LLM — típicamente 12-25k tokens de entrada (YAML de rúbrica + scorecards + instrucciones de la skill + archivos de referencia) y 0.5-1.5k tokens de salida (el borrador más las notas para la llamada). Con Sonnet 4.5 son aproximadamente 5-10 centavos por borrador. Un equipo de reclutamiento que corre 200 borradores de rechazo al mes gasta 10-20 dólares en costo de modelo.
  • Costo de API del ATS — cero en Ashby (API gratuita), Greenhouse (incluido en el tier), Lever (incluido). Los fetches de transcripción contra BrightHire o Metaview cuentan contra el plan por asiento; los fetches de feedback de rechazo son solo lectura y no consumen nuevos créditos de transcripción.
  • Tiempo del reclutador — la ganancia está acá. Redactar a mano un email de rechazo bien pensado y con base en evidencia desde los scorecards son 20-30 minutos por candidato cuando el reclutador lo hace bien, o 3 minutos cuando pega una carta tipo (que es lo que la mayoría de los equipos termina haciendo a escala). La skill produce el borrador de 20 minutos en menos de 30 segundos; el reclutador revisa y edita en 4-7 minutos. El ahorro neto es de aproximadamente 15-20 minutos por rechazo al estándar de borrador bien pensado — digamos 50-60 horas al mes en un equipo que corre 200 rechazos.
  • Tiempo de setup — 30 minutos para el mapping rúbrica-a-feedback y la política por jurisdicción si tu equipo ya tiene wording aprobado para el candidato en algún lado; más si el HR counsel todavía no opinó sobre el lenguaje del feedback de rechazo (en cuyo caso esa conversación es el prerrequisito, no esta skill).
  • El retorno compuesto en candidate experience. Los candidatos rechazados con feedback específico y con base en evidencia tienen más probabilidad de volver a postularse, más probabilidad de referir a otros, y sustancialmente menos probabilidad de dejar reviews dañinas en Glassdoor — los datos comúnmente citados en la literatura de recruiting están en el rango de 30-50% para la intención de volver a postular, aunque no tenemos fuente primaria para esos números y los tratamos como direccionales. El retorno compuesto se ve en densidad de pipeline a un año, no en el mes que se envió el borrador.

Métrica de éxito

Trackea tres números al mes, en el ATS:

  • Edit-distance del reclutador por borrador. El número de caracteres que el reclutador cambia entre el borrador de la skill y el mensaje enviado. Si la edit-distance tiende a cero, el reclutador está sellando con goma — saca esto en retro y revisita el mapping rúbrica-a-feedback. Si la edit-distance es consistentemente alta, el mapping está mal calibrado.
  • Tasa de respuesta del candidato al rechazo. Las respuestas a un email de rechazo suelen ser notas de gracias y futura postulación (buena señal) o notas de escalado (mala señal). Trackea la tasa de escalado como porcentaje de los rechazos enviados. Un equipo de baseline corriendo cartas tipo suele ver menos de 1% de escalado; el objetivo con esta skill es mantenerse en o por debajo de ese baseline, no por encima. Si la tasa de escalado sube, el mapping rúbrica-a-feedback está produciendo lenguaje que cae mal — recalibra.
  • Tasa de re-postulación dentro de 12 meses. Candidatos rechazados a través de esta skill versus candidatos rechazados con la carta tipo legacy, medido en los siguientes 12 meses. El beneficio compuesto aparece acá, no en el gasto de modelo ni siquiera en el hilo del rechazo.

vs alternativas

  • vs las plantillas de rechazo nativas de Ashby. Ashby (y Greenhouse, Lever) traen plantillas de rechazo con merge fields para nombre del candidato y rol. Son plantillas, no feedback — los merge fields no jalan evidencia del scorecard y no hay una capa de lenguaje anclada en rúbrica. Usa las plantillas de Ashby para rechazos de top-of-funnel donde la plantilla es honesta. Usa esta skill para rechazos de etapa tardía donde la plantilla se lee como menosprecio al tiempo que el candidato invirtió.
  • vs emails de rechazo genéricos. El rechazo genérico es la respuesta correcta en casos de jurisdicción deny, cuando no hubo consentimiento, y cuando la rúbrica no sacó a la luz un específico defendible. La skill escribe la plantilla genérica de rechazo byte por byte en esos casos. La diferencia es que la skill toma la decisión de forma determinística según la política por jurisdicción y la salida de rúbrica, en vez de que el reclutador caiga en lo genérico por fatiga.
  • vs notas escritas a mano por el reclutador. Las notas a mano son el gold standard para candidatos sénior o referidos VIP donde el reclutador tiene el contexto de la relación y el tiempo. La skill se gana el sueldo en el volumen — el 80% de los rechazos de etapa tardía donde el reclutador, si no, pegaría una carta tipo porque redactar a mano a escala no entra en el día. Para el tier sénior, el archivo de notas para la llamada le da al reclutador un punto de partida estructurado para la llamada, y el reclutador improvisa desde ahí.
  • vs un LLM sin archivo de rúbrica y sin lista negra. Este es el modo de falla contra el cual se construye la skill. Un LLM redactando desde scorecards solos, sin anclaje en rúbrica, sin lista negra de frases y sin log de auditoría, produce texto de rechazo rápido, confiado y de apariencia plausible — y aproximadamente uno de cada veinte borradores va a contener una cita alucinada, un ranking comparativo o un proxy de clase protegida. Los archivos de checklist del bundle son lo que mueve la tasa de falla a casi cero.

A qué prestar atención

  • Lenguaje que implica a la EEOC. Cubierto por la lista negra de frases en references/2-banned-phrase-blocklist.md, que corre como pase separado en el paso 5 sin awareness de los scorecards subyacentes. Los hits frenan la corrida con el string ofensor expuesto. No edites la lista negra para que un borrador pase — arregla la rúbrica o el lenguaje del scorecard en su lugar.
  • Lo específico falso del LLM. Cubierto por la regla “sin cita textual no hay síntesis” del paso 3. Cada afirmación del borrador debe rastrearse a un string textual de un scorecard firmado o de una transcripción. Sin string textual → la dimensión no se saca a la luz. Esta es la guarda contra el modo de falla más común del feedback redactado por LLM — citas de apariencia plausible que ningún entrevistador escribió, citadas de vuelta al candidato como hecho.
  • Lenguaje de ranking comparativo. Cubierto por el mapping rúbrica-a-feedback en references/1-rubric-to-feedback-mapping.md, que no contiene wording comparativo, y por la lista negra del paso 5 que lo atrapa si se cuela. El ranking comparativo es lo que convierte un rechazo constructivo en un post de Glassdoor.
  • Riesgo de evidencia selectiva. Cubierto por el paso 2 (frenar si el loop tiene menos de dos scorecards firmados) y el paso 3 (negarse a sacar a la luz dimensiones con desviación estándar entre entrevistadores ≥ 1.5). El desacuerdo entre entrevistadores no se convierte en feedback al candidato.
  • Drift de envío automático. Cubierto por la ausencia de toda acción send en la skill. Los borradores se escriben en drafts/<candidate-id>.md para que el reclutador los revise, edite y envíe desde el outbox del ATS. El reclutador es la puerta.
  • Daño del boilerplate genérico. Cubierto por la negativa del paso 3 a sacar a la luz una dimensión sin evidencia textual — cuando la rúbrica no saca nada seguro para compartir, la skill escribe la plantilla de rechazo genérico en lugar de sintetizar específicos débiles. El rechazo genérico es honesto; los específicos débiles son peores que ningún específico.
  • PII en el log de auditoría. Cubierto porque el paso 6 escribe solo candidate_id_hash (SHA-256), nunca el candidate ID crudo, el nombre o el texto del scorecard. El log de auditoría es para reproducibilidad de la corrida, no para retención de datos del candidato. Los borradores para el candidato viven en drafts/ bajo la propia política de retención del reclutador.
  • Drift de calibración entre roles y seniority. Cubierto por YAMLs de rúbrica por rol y porque el mapping rúbrica-a-feedback está versionado por equipo. Los rechazos de senior leadership necesitan un framing distinto al de entry level; ese ajuste vive en el archivo de mapping, no en el código de la skill.
  • Privacidad y residencia de datos. Verifica que la skill opera dentro de IA enterprise Tier A según la AI policy. El contenido de la entrevista es sensible; el candidato no consintió que sea procesado por un modelo de terceros a menos que tu AI policy y tu lenguaje de consentimiento de recolección de scorecards lo cubran explícitamente.

Stack

El bundle de la skill vive en apps/web/public/artifacts/rejection-feedback-claude-skill/ y contiene:

  • SKILL.md — la definición de la skill
  • references/1-rubric-to-feedback-mapping.md — completar por equipo, wording aprobado por HR-counsel por dimensión de rúbrica
  • references/2-banned-phrase-blocklist.md — pre-flight checks sobre el borrador (no editar para que pasen borradores sesgados)
  • references/3-output-format.md — los formatos literales de email, de rechazo genérico y de notas para la llamada

Herramientas que el workflow asume que ya usas: Claude (el modelo), Ashby o Greenhouse o Lever (el ATS donde viven los scorecards), y opcionalmente BrightHire o Metaview (transcripciones de entrevista para un anclaje de evidencia más rico). Workflow hermano que comparte la fuente de rúbrica: la interview debrief skill.

Archivos de este artefacto

Descargar todo (.zip)