Logo StartupKit
ES
Hiring Guides

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 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 Nombre visible de la etapa
type 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 string Identificador del campo
type 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 string Categoría de la pregunta (por ejemplo, scenario)
prompt 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 Dirección de correo electrónico del revisor (debe coincidir con un miembro del equipo)
role 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 string Identificador único
label 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_description en cada etapa — los candidatos ven este mensaje, por lo que una comunicación clara reduce la confusión y las solicitudes de soporte.

Escriba para buscar...