ooligo
claude-skill

Redactor de descripciones de puesto con Claude

Dificultad
principiante
Tiempo de setup
20min
Para
recruiter · hiring-manager · talent-acquisition
Reclutamiento y TA

Stack

Un Claude Skill que entrevista a un hiring manager sobre un rol recién abierto y produce un draft de JD estructurado, skills-based y consciente de la jurisdicción dentro del mismo día laboral. El skill se entrega como un SKILL.md más tres archivos de referencia en apps/web/public/artifacts/jd-writer-claude-skill/. Mételo en tu directorio de skills de Claude Code, reemplaza las plantillas con los andamios reales de tu equipo, y el skill convierte el patrón de 90 minutos “ya escribiré el JD esta semana” en una conversación de 20 minutos que produce un draft que el recruiter puede editar y publicar.

Cuándo usarlo

Usa el skill en el momento en que se abre el rol, antes de cualquier sourcing, antes de cualquier publicación externa, antes de que el recruiter haya gastado tiempo en la call de intake. La forma correcta de input es: título del rol más nivel, las notas sueltas de intake del hiring manager, la jurisdicción objetivo y de uno a tres JDs comparables (internos o externos) para anclar la voz. El skill conduce una entrevista de cinco a ocho preguntas contra esas notas, mapea las respuestas al andamio de role-family relevante de references/1-role-family-templates.md y emite un draft en Markdown.

El caso de uso donde el skill gana más fuerte: abrir un rol el lunes y necesitar un JD postable el miércoles en una jurisdicción de pay transparency. La matriz de jurisdicciones en references/3-jurisdiction-matrix.md inserta el lenguaje verbatim de pay-disclosure, el statement EEO y el lenguaje de acomodación para la jurisdicción objetivo; el recruiter no tiene que buscar NYC Local Law 32 ni California SB 1162 a mitad de draft.

Cuándo NO usarlo

  • Auto-publicar un JD sin revisión del recruiter. El skill emite un draft, no una publicación. El hiring manager y el recruiter ambos revisan antes de que toque un ATS o un job board. Los JDs redactados por IA introducen errores sutiles — título equivocado, jurisdicción equivocada, scope equivocado — que necesitan un catch humano.
  • Roles en jurisdicciones de auditoría de rangos salariales antes de revisión de compliance. NYC §8-1402, California SB 1162, Colorado Equal Pay Act todos requieren que el rango publicado refleje un estimado de “buena fe”; el rango del skill viene del input del manager, que no ha sido auditado contra el historial real de ofertas. Rutea el draft a compliance, no a la API de publicación.
  • Posting de movilidad interna. Voz distinta, requisitos EEO distintos, a menudo convenciones distintas de scope-framing. Usa una plantilla específica de mobility en su lugar.
  • Backfills donde el JD anterior sigue siendo preciso. Actualiza la fecha last_reviewed del JD anterior y publícalo. Re-redactar introduce drift sin beneficio.
  • Roles donde el hiring manager aún no ha decidido el scope. El skill amplifica el intake — no puede reemplazarlo. Si el manager no puede responder “cómo se ve el éxito a doce meses como un resultado medible”, el siguiente paso correcto es otra call de scoping, no un draft de JD.

Setup

  1. Pon SKILL.md y el directorio references/ en tu carpeta de skills de Claude Code, preservando la estructura.
  2. Reemplaza references/1-role-family-templates.md con los andamios reales de tu equipo. Los defaults cubren engineering, ventas, marketing, ops y leadership pero usan órdenes de sección genéricos.
  3. Reemplaza references/2-biased-language-blocklist.md con la blocklist real de tu equipo. Los defaults se basan en investigación pública de bias-in-JD (Gaucher 2011, benchmarks de Textio 2023) pero cada equipo tiene sus propios términos específicos al contexto que añadir.
  4. Haz que employment counsel revise references/3-jurisdiction-matrix.md antes de confiar en los bloques verbatim de EEO y acomodación — los defaults son un punto de partida, no asesoría legal.
  5. Prueba sobre un rol donde ya existe un JD actual. Compara la salida del skill con el JD existente; el gap muestra qué necesitan codificar tus andamios y blocklist.

Qué hace realmente el skill

El skill corre cinco sub-tareas en orden estricto, documentadas en la sección Method de SKILL.md. Paso uno: entrevistar contra las notas de intake — cinco a ocho preguntas clarificadoras dirigidas que cubren scope, éxito a doce meses como resultado medible, contexto del equipo, must-have versus nice-to-have skills como conductas observables, el día-a-día realista y las partes difíciles. Por qué intake-notes-first en lugar de template-first: empezar desde una plantilla sesga hacia responsabilidades genéricas, y el JD resultante se lee como cualquier otro JD en LinkedIn.

Paso dos: mapear las respuestas al andamio de role-family más cercano. Paso tres: convertir cada requisito en una skill u outcome observable — “5+ años en FAANG” se convierte en “diseñó y operó sistemas distribuidos a más de 10M requests por día”; “título de CS requerido” se convierte en “fluidez demostrable en systems-design por entrevista o portafolio, título no requerido”. Los requisitos cargados de credenciales encogen el pool de candidatos en un 40-60% sin elevar la calidad de hire, según estudios públicos de BCG y Burning Glass. El skill se niega a escribir “X años de experiencia requeridos” sin una justificación específica de outcome.

Paso cuatro: corre una pasada de bias-screening separada contra el draft completo. Los términos sesgados se acumulan en revisiones, no en primeros drafts; el screening post-draft los detecta de forma más confiable que el self-monitoring durante el draft. Paso cinco: insertar los bloques de compliance verbatim específicos de la jurisdicción.

Realidad de costos

Por JD, el skill gasta aproximadamente 30k-60k tokens (turnos de entrevista, lecturas de referencias, draft, pasada de bias-screen, lookup de jurisdicción), lo que corre alrededor de $0.15-$0.40 en Sonnet 4.5 o $0.75-$2.00 en Opus 4.7. Costo de tiempo: 15-20 minutos de tiempo del hiring manager en la entrevista, 10-15 minutos de tiempo de edición del recruiter. Compáralo con el status quo donde el recruiter gasta 60-90 minutos redactando desde una call de intake de 30 minutos, luego rutea de vuelta al manager para dos rondas de edits a lo largo de tres a cinco días. El skill comprime la cola de redacción sin remover la revisión humana.

El costo compuesto que el skill evita es aguas abajo: un JD vago produce un pool de aplicantes vago, que produce 2-3 rondas extra de screening por hire, según recruiting funnel metrics. El costo por-JD del skill se paga a lo largo del funnel, no solo en el paso de redacción.

Métrica de éxito

Cycle time de “rol abierto” a “JD publicado”. Status quo en la mayoría de equipos de ops: 4-7 días calendario. Con el skill en su lugar: 1-2 días calendario. Trackea esto en tu ATS como req_opened_at a posting_published_at, filtrado a roles donde el hiring manager realmente usó el skill. Métrica secundaria: ratio de requisitos must-have a nice-to-have. El skill capea los must-haves en cinco; la métrica debería converger a una forma 5:N en lugar de la forma 12:0 que producen los JDs cargados de credenciales.

vs alternativas

  • JDs escritos manualmente por el hiring manager: máxima varianza. Un manager con habilidad produce un gran JD; un manager reluctante produce una copia del JD del rol anterior con el título cambiado. El skill normaliza el output independientemente del engagement del manager.
  • Textio: bias screening en tiempo real fuerte, buenos benchmarks, débil en la redacción estructural (edita, no redacta). Buen complemento, no reemplazo — corre el skill primero, luego pega en Textio para un screen de segunda pasada.
  • Datapeople: similar a Textio con guía más fuerte de pay-transparency. El mismo patrón de complemento.
  • Prompt genérico de Claude sin el skill: produce JDs genéricos porque la voz de la marca, los andamios de role-family, la matriz de jurisdicciones y la blocklist viven en tus archivos de referencia, no en un prompt libre. El skill es la estructura que hace que el output del LLM no sea genérico.

A vigilar

  • Términos sesgados se cuelan de vuelta durante los edits. La pasada de bias-screening corre sobre el primer draft; si el recruiter reescribe una sección, la pasada necesita re-correrse. Guard: el skill emite un hint rerun-bias-screen como última línea de cada output, y se niega a marcar un JD bias_checked: true sin una llamada explícita de re-screen.
  • Must-haves no realistas se inflan cuando el manager es un experto de dominio. Los engineers escribiendo JDs de engineering tienden a listar cada herramienta que ellos personalmente usan como must-have. Guard: el skill capea los must-haves en cinco y fuerza cualquier cosa más allá a nice-to-have, con override explícito del manager requerido para exceder el cap.
  • Omisión del rango salarial en jurisdicciones reguladas. Publicar sin un rango en NY, CA, CO, WA o IL dispara multas por violación. Guard: cuando la jurisdicción coincide con la lista regulada y pay_range falta, el skill reemplaza la sección de comp con un TODO bloqueante y se niega a emitir un status “ready-to-post”.
  • Mismatch de voz con el employer brand. Los defaults genéricos de Claude producen JDs genéricos. Guard: el skill requiere al menos un JD comparable en el input comparables y se niega a redactar sin él.
  • Length creep. Los JDs por encima de 600 palabras se leen en diagonal y la calidad de hire baja a medida que crece la longitud. Guard: el skill apunta a 400 palabras para roles individual-contributor y 550 para leadership, con un footer de word-count que avisa por encima del cap.

Stack

  • Claude Code o Claude.ai con Skills personalizados habilitados — corre el loop de entrevista de SKILL.md y las lecturas de referencias.
  • Tu ATS — destino del JD publicado. El skill emite Markdown; el recruiter pega en el ATS.
  • Tu referencia de voz de employer brand — al menos un JD comparable cargado en el input comparables en cada corrida.
  • Opcional: Textio o Datapeople — bias screen de segunda pasada sobre el draft antes de publicar.

Archivos de este artefacto

Descargar todo (.zip)