ooligo
claude-skill

Personalize sourced-candidate outreach at scale with Claude

Dificultad
intermedio
Tiempo de setup
30-60 min
Para
recruiter · sourcer
Reclutamiento y TA

Stack

Un Claude Skill que toma una lista de candidatos prospectados — desde Gem, LinkedIn Recruiter o cualquier exportación CSV — y genera una línea de asunto personalizada y un párrafo de apertura de 2-3 oraciones para cada candidato, fundamentado en señales públicas reales de LinkedIn y GitHub en lugar de variables de plantilla genéricas. El skill aplica una verificación de proxies de clase protegida antes de generar cualquier mensaje, impone una guardia contra fabricaciones que rechaza el uso de señales inferidas, y devuelve una respuesta genérica limpia para los candidatos donde no existe señal calificada, en lugar de inventar una. El bundle se incluye en apps/web/public/artifacts/candidate-personalization-at-scale-skill/ y contiene SKILL.md, una plantilla de configuración de personalización, una guía de jerarquía de señales y outputs de muestra para tres niveles de confianza.

Cuándo usar

Usa este skill cuando tu equipo de sourcing envía más de 20-30 mensajes de outreach por reclutador por día y el primer contacto es una plantilla que todos los candidatos pueden reconocer como tal. Las tasas de respuesta a mensajes genéricos de sourcing en roles técnicos han disminuido de forma medible en los últimos 4 años a medida que los candidatos reciben más de ellos. Un mensaje que hace referencia a un proyecto público específico, un trabajo nombrado de su LinkedIn, o una contribución reciente de GitHub rinde diferente al que no lo hace, porque señala que el emisor leyó algo más allá del “título del cargo” y “empresa actual.”

El skill está diseñado para sourcing outbound. No está diseñado para candidatos inbound (quienes deben recibir respuestas que hagan referencia a su solicitud real), ni para roles donde la personalización basada en datos de perfil público requiere aprobación legal previa.

Puntos de invocación típicos:

  • Una secuencia de Gem donde el primer contacto se personaliza por candidato antes de la inscripción masiva. El skill se ejecuta antes de la inscripción, no dentro de Gem: generás los borradores en lote, los revisás y pegás las versiones aprobadas en las variables de la secuencia.
  • Un workflow manual del sourcer donde el sourcer exporta una lista de LinkedIn Recruiter, la procesa con el skill, revisa los borradores, edita los de confianza media y los envía manualmente o a través de Gem.
  • Un script sobre una exportación CSV que agrega una columna “personalized_subject” y “personalized_opening” a cada fila antes de que el sourcer revise e inscriba.

Cuándo NO usar

No uses este skill para candidatos inbound. El contexto relevante para un solicitante es su currículum y carta de presentación, no su perfil público — enviarles un mensaje que hace referencia a su GitHub deja de lado que ya tienes la cosa más relevante.

No lo uses cuando la única señal disponible para un candidato es demográfica — un nombre, una foto, una universidad que funciona como proxy demográfico. El skill tiene una barrera estricta para esto. No reduzcas el umbral ni modifiques el prompt para anularla. Usar la afiliación a una universidad o membresía en una comunidad como gancho de personalización selectiva es trato diferenciado en la mayoría de las jurisdicciones de contratación, independientemente de la intención.

No lo uses con más de 500 candidatos en un único lote no supervisado. A ese volumen, un error de fabricación o una señal incorrecta que se habría detectado en revisión se envía a cientos de candidatos antes de que alguien lo vea. Como mínimo, construí un paso de revisión de muestra.

No lo uses para roles donde tu equipo de compliance restringe el uso de datos de perfil público en comunicaciones de contratación (ciertos contextos de defensa, financieros o regulados). Consultá con el área legal antes de implementarlo.

Configuración

La configuración tarda 30-60 minutos para configurar el skill y calibrar la lista de proxies de clase protegida. La conexión con la secuencia depende de cómo usés Gem.

  1. Instala el Skill. Coloca apps/web/public/artifacts/candidate-personalization-at-scale-skill/SKILL.md y la carpeta references/ en .claude/skills/candidate-personalization/ o súbelo como Skill en claude.ai.
  2. Edita la configuración de personalización. Abre references/1-personalization-config.md y actualiza el registro de tono para que coincida con tu marca empleadora, establece el opening_paragraph_max_chars para que se ajuste a la longitud del campo de tu herramienta de secuencias, y edita la plantilla de respaldo para que coincida con tu apertura estándar.
  3. Revisa la lista de proxies de clase protegida. La lista predeterminada en references/1-personalization-config.md cubre URL de foto, género inferido, señales de etnia derivadas del nombre y universidades usadas como proxies demográficos. Pide a tu equipo legal o de RR.HH. que revise y amplíe esta lista antes del primer uso. Esto no es opcional.
  4. Ajusta la jerarquía de señales. Abre references/2-signal-hierarchy.md y verifica los ajustes por familia de roles. Si principalmente buscas roles de ingeniería, los valores predeterminados funcionan. Si buscas roles de diseño o legales, ajustá qué niveles de señal tienen mayor prioridad.
  5. Configura el formato de entrada. El skill espera un objeto candidato con name, current_title, current_company y linkedin_url como mínimo. Opcionalmente, agrega github_handle para roles técnicos. Mapea las columnas de tu exportación CSV a estos campos — la mayoría de las exportaciones de LinkedIn Recruiter se mapean directamente.
  6. Construye el paso de revisión. Configurá tu workflow para que los borradores de confianza media y baja requieran edición del reclutador antes de la inscripción en la secuencia. El skill marca estos con Recruiter action required before send — conectá esa señal a un estado de espera en tu proceso.

Qué hace realmente el skill

Paso 1 — verificación de proxies de clase protegida. Antes de generar cualquier mensaje, el skill verifica los campos de entrada de cada candidato contra la lista de proxies de clase protegida en references/1-personalization-config.md. Si las únicas señales disponibles están en la lista de proxies — URL de foto, género inferido, señales de etnia derivadas del nombre, universidades usadas como proxies demográficos — el skill devuelve la respuesta genérica sin intentar personalización. Esta es una barrera estricta, no una advertencia suave.

Por qué una barrera estricta en lugar de una advertencia: una advertencia depende de que el reclutador tome la decisión correcta bajo presión de cuota. Una barrera estricta elimina la decisión del workflow por completo. Si tienes un programa de contratación afirmativa documentado que usa intencionalmente la afiliación universitaria (por ejemplo, una asociación con una HBCU), configurá eso explícitamente en el archivo de configuración con la base legal documentada.

Paso 2 — extracción de señales. El skill evalúa las señales disponibles en el orden de prioridad definido en references/2-signal-hierarchy.md: primero las notas del reclutador, luego los repositorios públicos de GitHub, luego los bullets de roles de LinkedIn, luego el titular y resumen. Extrae las 1-2 señales principales que sean (a) lo suficientemente específicas como para que el candidato se reconozca a sí mismo en ellas — no solo por su título y empresa — y (b) relevantes para el JD del rol objetivo. Una biblioteca de Redis con 1.200 estrellas es una señal. “Ingeniero senior en Acme” no lo es, porque cualquier reclutador puede verlo.

Si ninguna señal cumple el umbral mínimo de especificidad, el skill devuelve inmediatamente la respuesta genérica en lugar de reducir el estándar para incluir señales no específicas. La “personalización” no específica es peor que ninguna.

Paso 3 — filtro de relevancia con el JD. Para cada señal extraída, el skill evalúa si es relevante para el JD del rol objetivo. Un background en Python es una señal; para un rol de design lead no es un gancho de personalización relevante. Las señales irrelevantes se descartan aunque sean específicas.

Paso 4 — guardia contra fabricaciones. Antes de redactar, el skill verifica que cada señal usada pueda rastrearse a un campo específico en los datos de entrada. Las señales inferidas — “parece que te importan los sistemas distribuidos” derivado de títulos de roles vagos — no se usan. Este es el paso de mayor riesgo en la personalización a escala. Una señal inferida que suena específica pero es incorrecta destruye inmediatamente la confianza del candidato.

Paso 5 — generación del borrador. El skill escribe una línea de asunto y un párrafo de apertura de 2-3 oraciones. La línea de asunto hace referencia a la señal específica en lugar del título del rol. El párrafo de apertura nombra la señal en la primera oración, la conecta con el rol en la segunda y plantea la solicitud en la tercera. Sin copy de venta en el primer contacto.

Paso 6 — puntuación de confianza. Cada borrador se etiqueta como alta, media o baja confianza. Alta: señal específica, relevante para el JD, a nivel de GitHub o nota del reclutador. Media: señal a nivel de LinkedIn, específica pero menos verificable. Baja: se usó la respuesta genérica, sin señal calificada. Los outputs de confianza media y baja requieren revisión del reclutador antes del envío.

Realidad de costos

El costo de tokens por candidato depende de la longitud del perfil y si se incluyen datos de GitHub, pero para una fila de candidato estándar (nombre, título, empresa, titular de LinkedIn, uno o dos bullets de roles) y un JD, se esperan aproximadamente 800-1.500 tokens de entrada y 200-400 tokens de salida. Con los precios de Claude Sonnet 4.x (aproximadamente $3 por millón de tokens de entrada y $15 por millón de salida, a mediados de 2026), cada mensaje personalizado cuesta aproximadamente $0,005-0,01.

Un sourcer que procesa 100 candidatos por día gasta aproximadamente $0,50-$1,00 por día en tokens de Claude. Un equipo de 5 sourcers procesando 200 candidatos por día cada uno gasta aproximadamente $5-10 por día — alrededor de $100-200 por mes. El prompt caching del JD (idéntico para todos los candidatos de un lote) reduce el costo de tokens de entrada en un 30-50%.

Métrica de éxito

La métrica a seguir es la tasa de respuesta por nivel de confianza. Los mensajes personalizados de alta confianza deben producir una tasa de respuesta notablemente mayor que los de confianza media y los genéricos del mismo lote. Si los tres niveles de confianza producen tasas de respuesta similares, o las señales no son lo suficientemente específicas (re-examiná el umbral mínimo de especificidad) o la personalización no está siendo recibida como genuina (la estructura del mensaje necesita edición).

Métrica secundaria: tasa de detección de fabricaciones en la revisión del reclutador. Durante el primer mes, pedí a los sourcers que marquen cada borrador donde la señal citada sea inexacta o no pueda verificarse. Si la tasa de marcado es superior al 5%, el umbral de la guardia contra fabricaciones en references/1-personalization-config.md debe ajustarse.

Comparado con alternativas

vs personalización manual. Un reclutador hábil escribiendo mensajes personalizados manualmente produce un output mejor que este skill — captan matices, contexto y señales de tono que el skill no puede. El skill no es mejor que un reclutador que tiene tiempo para escribir manualmente; es mejor que un reclutador que no tiene ese tiempo, que es la mayoría de los sourcers que envían 50-100 mensajes de outreach por día. El uso correcto es generar un borrador que el reclutador edita en 30 segundos, no reemplazar por completo el juicio del reclutador.

vs las plantillas InMail de LinkedIn Recruiter. El InMail integrado de LinkedIn tiene variables de plantilla (nombre, empresa, título) pero no extracción de señales. Las tasas de respuesta a las plantillas InMail son menores que a los mensajes que hacen referencia a trabajos específicos, y la brecha es más pronunciada para candidatos técnicos senior que reciben muchos InMails con plantillas. Este skill no reemplaza InMail como canal de envío — reemplaza la plantilla genérica con un borrador que parece escrito por una persona que miró el perfil.

vs columnas de AI de Clay para personalización. El enfoque de columnas AI de Clay para personalización de outreach es similar en principio. La diferencia está en la profundidad de las guardias: este skill tiene una guardia explícita contra fabricaciones, una verificación de proxies de clase protegida y un workflow de revisión por nivel de confianza. Para equipos que ya construyeron un workflow de personalización con Clay, este skill es una alternativa si tu equipo de compliance requiere guardias documentadas.

Puntos de atención

  • Detalles de personalización fabricados. Una señal inferida que suena específica pero es incorrecta destruye la confianza del candidato inmediatamente. Guard: el skill solo usa señales rastreables a campos de entrada explícitos y etiqueta la fuente de la señal en cada output. Los reclutadores revisan la línea Signal source antes de enviar.
  • Exposición de proxies de clase protegida. Un gancho de personalización que hace referencia a una HBCU, una comunidad de mujeres en tecnología o un programa codificado por nacionalidad constituye trato diferenciado selectivo en la mayoría de las jurisdicciones de contratación. Guard: la lista de proxies de clase protegida del skill es una barrera estricta verificada antes de que se genere cualquier personalización. Revisá la lista anualmente con el equipo legal o de RR.HH.
  • Envío de respuesta genérica sin editar. Un borrador de baja confianza contiene texto placeholder que ocasionalmente se envía textualmente cuando la presión de cuota es alta. Guard: los outputs de baja y media confianza están marcados con Recruiter action required before send. Construí un estado de espera en tu workflow de inscripción de secuencias.
  • Obsolescencia de señales. Un repositorio de GitHub activo hace 3 años no es evidencia de trabajo actual. Guard: el skill aplica un filtro de vigencia de 24 meses por defecto, configurable en references/1-personalization-config.md.

Bundle de referencia

  • apps/web/public/artifacts/candidate-personalization-at-scale-skill/SKILL.md — definición completa del skill, entradas, método, formato de output y puntos de atención.
  • apps/web/public/artifacts/candidate-personalization-at-scale-skill/references/1-personalization-config.md — registro de tono, límite de longitud del mensaje, plantilla de respaldo, umbrales de la guardia contra fabricaciones, lista de proxies de clase protegida. El archivo de calibración principal. Revisarlo con el equipo legal antes del primer uso.
  • apps/web/public/artifacts/candidate-personalization-at-scale-skill/references/2-signal-hierarchy.md — orden de prioridad de señales, especificidad mínima por nivel, ajustes por familia de roles.
  • apps/web/public/artifacts/candidate-personalization-at-scale-skill/references/3-sample-outputs.md — tres ejemplos literales: alta confianza (señal de GitHub), confianza media (bullet de LinkedIn), baja confianza (respuesta genérica). Para calibración de reclutadores y conexión de inscripción en secuencias.

Archivos de este artefacto

Descargar todo (.zip)