Configuración de plantillas de proceso
Referencia completa para configurar plantillas de procesos de contratación con YAML — tipos de etapa, opciones de configuración, revisores y ejemplos.
Descripción general
Una plantilla de proceso define las etapas por las que pasa un candidato durante tu proceso de contratación. Las plantillas se escriben en YAML y consisten en una lista ordenada de etapas, cada una con un tipo, un nombre y una configuración opcional.
Cuando creas una oferta de empleo y seleccionas una plantilla, las etapas se instancian en orden. Los candidatos avanzan por cada etapa de forma secuencial — desde la solicitud hasta la oferta.
Estructura básica
name: My Hiring Process
description: |
A short description of this template.
Supports **Markdown** formatting.
tags:
- engineering
- remote
stages:
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself."
- type: live_interview
name: "Interview"
config:
duration_minutes: 60
- type: offer
name: "Offer"
Claves de nivel superior
| Clave | Requerida | Descripción |
|---|---|---|
stages |
Sí | Lista ordenada de definiciones de etapa (al menos una) |
name |
No | Nombre de la plantilla (también se puede establecer en el campo del formulario) |
description |
No | Descripción del proceso con formato Markdown |
tags |
No | Lista de etiquetas de texto para categorización |
quick_fields |
No | Campos de metadatos del candidato (consulta Campos rápidos más adelante) |
Claves de etapa
Cada etapa requiere name y type. El hash opcional config y la lista de reviewers varían según el tipo de etapa.
| Clave | Requerida | Descripción |
|---|---|---|
name |
Sí | Nombre visible de la etapa |
type |
Sí | Uno de los 10 tipos de etapa enumerados a continuación |
config |
No | Opciones de configuración específicas del tipo |
reviewers |
No | Lista de asignaciones de revisores |
Referencia de tipos de etapa
application_form
El punto de entrada para los candidatos. Recopila información estructurada mediante campos de formulario personalizados. Opcionalmente retiene a los candidatos en estado de revisión antes de avanzarlos.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
screening_enabled |
boolean | false | Retener solicitudes para revisión manual antes de avanzar |
screening_message |
string | — | Mensaje mostrado a los candidatos mientras la revisión está activa |
fields |
array | — | Lista de definiciones de campos de formulario (ver a continuación) |
Opciones de campos de formulario:
| Clave | Requerida | Tipo | Descripción |
|---|---|---|---|
name |
Sí | string | Identificador del campo |
type |
Sí | string | text, textarea, file, url, select, checkbox, email, phone |
required |
No | boolean | Si el campo debe completarse obligatoriamente |
label |
No | string | Etiqueta visible (por defecto usa el nombre) |
placeholder |
No | string | Texto de ejemplo |
max_length |
No | integer | Cantidad máxima de caracteres (mínimo: 1) |
options |
No | array | Opciones para campos de tipo select |
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself."
screening_enabled: true
screening_message: "We'll review your application shortly."
fields:
- name: resume
type: file
required: true
- name: experience_level
type: select
required: true
options:
- "Junior (0-2 years)"
- "Mid (2-5 years)"
- "Senior (5+ years)"
- name: cover_letter
type: textarea
required: false
max_length: 500
code_assignment
Un ejercicio de programación para realizar en casa. Cuando GitHub está conectado, se crea un repositorio privado a partir de una plantilla para cada candidato. Incluye gestión de plazos de entrega.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
github_template |
string | — | Repositorio plantilla de GitHub (por ejemplo, org/hiring-assignment) |
duration_days |
integer | — | Días permitidos para completar la tarea (mínimo: 1) |
estimated_hours |
string | — | Esfuerzo estimado (por ejemplo, "3-8") |
Compensación: Los pagos se configuran por etapa en la interfaz de configuración de la etapa, no en el YAML de la plantilla. Cualquier tipo de etapa puede ofrecer compensación. Consulta Candidate Payouts para más detalles.
- type: code_assignment
name: "Take-Home Assignment"
config:
candidate_description: "Complete a practical coding exercise."
github_template: "mycompany/hiring-challenge"
duration_days: 7
estimated_hours: "3-6"
portfolio_upload
Los candidatos suben muestras de trabajo (archivos de diseño, muestras de escritura, etc.). Admite restricciones de tipo de archivo y límites de carga.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
accept |
array | — | Extensiones de archivo permitidas (por ejemplo, pdf, png, figma) |
max_files |
integer | — | Número máximo de archivos (mínimo: 1) |
- type: portfolio_upload
name: "Portfolio Review"
config:
candidate_description: "Share 3-5 examples of your best work."
accept:
- pdf
- png
- jpg
- figma
max_files: 5
questionnaire
Preguntas escritas para que los candidatos respondan de forma asíncrona. Útil para evaluación basada en escenarios en roles de soporte, ventas o redacción.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
questions |
array | — | Lista de definiciones de preguntas |
Opciones de preguntas:
| Clave | Requerida | Tipo | Descripción |
|---|---|---|---|
type |
Sí | string | Categoría de la pregunta (por ejemplo, scenario) |
prompt |
Sí | string | El texto de la pregunta |
- type: questionnaire
name: "Written Scenarios"
config:
candidate_description: "Respond to these real-world scenarios."
questions:
- type: scenario
prompt: "A customer reports a billing error. Walk us through your response."
- type: scenario
prompt: "You discover a bug affecting 10% of users. What do you do?"
video
Presenta un video a los candidatos. Admite videos subidos (a través de Mux) o videos incrustados desde plataformas externas.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
video_source_type |
string | — | mux (subido) o oembed (incrustación externa) |
video_oembed_url |
string | — | URL del video incrustado (cuando la fuente es oembed) |
video_description |
string | — | Descripción o contexto del video |
video_min_watch_percentage |
integer | — | Porcentaje mínimo de visualización requerido (1-100) |
- type: video
name: "Company Introduction"
config:
candidate_description: "Watch this video about our team and culture."
video_source_type: oembed
video_oembed_url: "https://www.youtube.com/watch?v=example"
video_description: "A 5-minute overview of our engineering team."
video_min_watch_percentage: 80
video_recording
Los candidatos graban o suben una respuesta en video a una indicación. Útil para presentaciones en video, cartas de presentación en video o entrevistas en video asíncronas. Requiere la integración con Mux.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
max_duration_seconds |
integer | 120 | Duración máxima de grabación en segundos |
allow_upload |
boolean | true | Permitir a los candidatos subir un archivo de video pregrabado |
max_retakes |
integer | — | Número de regrabaciones permitidas (vacío = ilimitado) |
- type: video_recording
name: "Video Introduction"
config:
candidate_description: "Record a 2-minute video introducing yourself."
max_duration_seconds: 120
allow_upload: true
max_retakes: 3
team_review
Una etapa de revisión interna donde tu equipo evalúa a un candidato. Admite umbrales de votación y reglas de veto.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Mensaje mostrado al candidato durante esta etapa |
voting |
hash | — | Configuración de votación (ver a continuación) |
Opciones de votación:
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
threshold |
integer | — | Mínimo de votos afirmativos para avanzar (1-10) |
require_all_reviewers |
boolean | false | Todos los revisores asignados deben votar |
veto_auto_rejects |
boolean | false | Un solo veto rechaza automáticamente al candidato |
- type: team_review
name: "Code Review"
config:
candidate_description: "Our team is reviewing your submission."
voting:
threshold: 2
require_all_reviewers: true
veto_auto_rejects: true
live_interview
Una entrevista síncrona realizada por videollamada o de forma presencial. Se integra con la programación de calendario.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
duration_minutes |
integer | — | Duración de la entrevista en minutos (mínimo: 15) |
interviewers_required |
integer | — | Número de entrevistadores necesarios (mínimo: 1) |
includes_roleplay |
boolean | false | Si la entrevista incluye un ejercicio de simulación de rol |
- type: live_interview
name: "Technical Interview"
config:
candidate_description: "A conversation about your technical skills."
duration_minutes: 60
interviewers_required: 2
reference_check
Recopila y verifica las referencias de los candidatos.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Instrucciones mostradas al candidato |
references_required |
integer | — | Número de referencias necesarias (mínimo: 1) |
- type: reference_check
name: "References"
config:
candidate_description: "Provide contact details for your references."
references_required: 2
offer
La etapa final en la que extiendes una oferta al candidato. Generalmente tiene una configuración mínima.
| Clave de configuración | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
candidate_description |
string | — | Mensaje mostrado al candidato |
- type: offer
name: "Offer"
config:
candidate_description: "We'd love to have you join the team."
Revisores
Puedes asignar revisores a cualquier etapa. Cada revisor necesita una dirección de correo electrónico y un rol.
| Clave | Requerida | Descripción |
|---|---|---|
email |
Sí | Dirección de correo electrónico del revisor (debe coincidir con un miembro del equipo) |
role |
Sí | reviewer (estándar) o lead (responsable principal de la decisión) |
- type: team_review
name: "Code Review"
config:
voting:
threshold: 2
reviewers:
- email: [email protected]
role: lead
- email: [email protected]
role: reviewer
- email: [email protected]
role: reviewer
Campos rápidos
Los campos rápidos capturan metadatos del candidato en el nivel superior de la plantilla. Se muestran en la barra lateral del candidato para consulta rápida.
| Clave | Requerida | Tipo | Descripción |
|---|---|---|---|
key |
Sí | string | Identificador único |
label |
Sí | string | Etiqueta visible |
field_type |
No | string | text (predeterminado), textarea, select, date |
placeholder |
No | string | Texto de ejemplo |
options |
No | array | Opciones para campos de tipo select |
quick_fields:
- key: salary_expectation
label: "Salary Expectation"
field_type: text
placeholder: "$80,000 - $100,000"
- key: start_date
label: "Earliest Start Date"
field_type: date
- key: work_authorization
label: "Work Authorization"
field_type: select
options:
- "US Citizen"
- "Permanent Resident"
- "Requires Sponsorship"
Ejemplo completo
Una plantilla completa para contratar a un ingeniero de software, que incluye revisión de solicitudes, una tarea de programación, revisión del equipo, dos rondas de entrevistas, referencias y una oferta. Para agregar compensación a la etapa de tarea, configura los pagos en la interfaz de configuración de la etapa; consulta Candidate Payouts.
name: Software Engineer - Standard
description: |
Comprehensive process for mid-to-senior software engineers.
Includes a take-home assignment with team code review.
tags:
- engineering
- technical
- assignment
quick_fields:
- key: salary_expectation
label: "Salary Expectation"
field_type: text
- key: notice_period
label: "Notice Period"
field_type: text
stages:
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself and your experience."
screening_enabled: true
screening_message: "We're reviewing your application."
fields:
- name: resume
type: file
required: true
- name: github_url
type: url
required: false
- name: motivation
type: textarea
required: true
max_length: 500
- type: code_assignment
name: "Take-Home Assignment"
config:
candidate_description: "Complete a practical coding exercise at your own pace."
github_template: "mycompany/hiring-assignment"
duration_days: 8
estimated_hours: "3-8"
reviewers:
- email: [email protected]
role: lead
- type: team_review
name: "Code Review"
config:
candidate_description: "Our team reviews your code submission."
voting:
threshold: 2
require_all_reviewers: true
veto_auto_rejects: true
reviewers:
- email: [email protected]
role: lead
- email: [email protected]
role: reviewer
- type: live_interview
name: "Technical Interview"
config:
candidate_description: "A conversation about your technical skills."
duration_minutes: 75
interviewers_required: 2
- type: live_interview
name: "Culture & Values"
config:
candidate_description: "Get to know the team and learn about our culture."
duration_minutes: 45
interviewers_required: 1
- type: reference_check
name: "References"
config:
references_required: 2
- type: offer
name: "Offer"
config:
candidate_description: "We'll present you with an offer to join the team."
Consejos
- Comienza con
application_form— es el punto de entrada natural y te permite recopilar currículos e información básica. - Termina con
offer— mantiene el proceso limpio y te proporciona una etapa final para el seguimiento. - Usa la revisión de solicitudes en el formulario de solicitud para revisar manualmente a los candidatos antes de avanzarlos. Esto evita que candidatos no cualificados reciban tareas.
- Paga por las tareas para realizar en casa — configura los pagos en la configuración de la etapa para compensar a los candidatos. Consulta Candidate Payouts.
- Mantén los procesos por debajo de 7 etapas — los procesos largos provocan el abandono de los candidatos.
- Asigna revisores a las etapas de tipo team_review y code_assignment para que las personas adecuadas sean notificadas automáticamente.
- Usa
candidate_descriptionen cada etapa — los candidatos ven este mensaje, por lo que una comunicación clara reduce la confusión y las solicitudes de soporte.