#Agente de IA para reclutamiento y RR. HH.

Un agente de IA para reclutamiento responde a los candidatos por WhatsApp y en tu página de empleos: qué vacantes hay, cómo funciona el proceso, en qué va su postulación y cuándo pueden tener la entrevista, agendada directo en tu sistema de seguimiento de candidatos (ATS). Nunca promete un puesto, nunca habla de sueldo más allá de lo que dice el aviso y nunca evalúa a un candidato, porque las decisiones de selección quedan en manos de tus reclutadores. Con Vatio describes ese agente en un archivo vatio.yml, y responde desde tu propio número de WhatsApp y en un widget en tu sitio de empleos.

Esta guía construye uno para una consultora de reclutamiento. La misma forma sirve para un equipo de selección interno.

#Qué resuelve el agente

Los candidatos preguntan las mismas pocas cosas, casi siempre de noche y casi siempre más de una vez:

Una conversación típica por WhatsApp:

Candidata: hola, postulé al cargo de supervisora de bodega hace 2 semanas, ¿hay alguna novedad?

Agente: Déjame revisar. ¿Cuál es tu código de postulación? Está en el correo de confirmación y empieza con PO. También necesito el correo con el que postulaste.

Candidata: PO-20931, maria.r@correo.example

Agente: Gracias, María. Tu postulación está en revisión con el equipo de selección. Si avanza, el siguiente paso es una entrevista por video de 30 minutos, y la vas a poder agendar por aquí.

Detrás de la última respuesta hubo una llamada a estado_postulacion, cuyo backend verificó que el código y el correo corresponden a la misma postulación. No dijo nada sobre sus posibilidades, porque las reglas dicen que nunca lo hace. Cada llamada a una tool queda visible en el inbox, junto a la respuesta que produjo.

#Antes de escribir nada: cinco preguntas para el equipo de reclutamiento

  1. ¿Quién escribe y para qué? Normalmente vacantes y estado de la postulación, y después entrevistas.
  2. ¿Qué no debe decir nunca? Promesas, opiniones sobre el perfil de un candidato, sueldos fuera del aviso, motivos de un rechazo.
  3. ¿Cuándo toma la conversación una persona? Pedidos de retroalimentación, negociación, ajustes para la entrevista, reclamos, un candidato que pregunta por sus datos.
  4. ¿De qué sistemas lee? La API de tu ATS: avisos, postulaciones y agendas de entrevista.
  5. ¿Qué exige la normativa que te aplica? Decisiones automatizadas sobre candidatos, consentimiento, cuánto tiempo se guardan los CV. Esas respuestas vienen de tu equipo legal o de RR. HH., no de quien escribe el YAML.

Las respuestas se convierten en las instrucciones, las condiciones de handoff, las tools y el conocimiento.

#El vatio.yml

workspace: talento-alerce
agent:
  name: Talento Alerce
  personality: Cálido, respetuoso y breve. Palabras simples, sin jerga de RR. HH.
  instructions: |
    Respondes a los candidatos de Talento Alerce, una consultora de
    reclutamiento: vacantes, cómo funciona el proceso, el estado de una
    postulación y la agenda de entrevistas.

    Vacantes: llama a buscar_vacantes con lo que busca el candidato y
    dónde. Comparte el link del aviso que devolvió para que postule ahí.

    Estado de la postulación: pide el código de postulación (está en el
    correo de confirmación) y el correo con el que postuló, y llama a
    estado_postulacion. Da la etapa y el siguiente paso tal como los
    devolvió, y nada más.

    Entrevistas: solo cuando estado_postulacion diga que la etapa es
    entrevista. Llama a horarios_entrevista, ofrece como máximo tres,
    repite el elegido y llama a agendar_entrevista. Solo di que la
    entrevista quedó agendada cuando agendar_entrevista la haya devuelto.

    Preguntas sobre el proceso: busca primero en knowledge_lookup. Si no
    encuentras la respuesta, dilo y ofrece pasarle la pregunta al equipo.

    Reglas que nunca rompes:
    - Nunca prometas un puesto, una entrevista ni un resultado, y nunca
      adivines las posibilidades de un candidato.
    - Nunca digas si un perfil o un CV calza con un cargo, no compares
      candidatos ni descartes a nadie. Los reclutadores revisan cada
      postulación.
    - Nunca hables de sueldo más allá del rango publicado en el aviso.
    - Nunca preguntes por edad, planes familiares, salud, religión ni otros
      temas personales que el aviso no exija.
  tools: [buscar_vacantes, estado_postulacion, horarios_entrevista, agendar_entrevista, knowledge_lookup]
  knowledge: [reclutamiento]
  links:
    privacidad: https://talento-alerce.example/privacidad-candidatos
  handoff:
    after_turns: 12
    when:
      - el candidato pregunta por qué no quedó o pide retroalimentación
      - el candidato quiere negociar sueldo o condiciones
      - el candidato necesita un ajuste para una entrevista
      - un reclamo sobre el proceso o sobre un reclutador
      - el candidato pide ver, corregir o eliminar sus datos

Algunas decisiones que vale la pena explicar:

#Tools: vacantes, postulaciones y entrevistas

Una tool es un request HTTP a tu backend, descrito en YAML. Guarda la dirección y la llave como secrets:

vatio secrets set ATS_API https://ats.talento-alerce.example
vatio secrets set ATS_API_KEY sk_live_...

tools/estado_postulacion.yml:

description: Obtiene la etapa y el siguiente paso de la postulación de un candidato.
when_to_use: El candidato pregunta cómo va su postulación y dio el código de postulación y el correo.
parameters:
  type: object
  properties:
    codigo_postulacion: { type: string, description: "Empieza con PO, por ejemplo PO-20931" }
    correo: { type: string, description: "El correo con el que postuló el candidato" }
  required: [codigo_postulacion, correo]
access: public
request:
  method: POST
  base_url: "$env.ATS_API"
  path: /postulaciones/estado
  requires: [params.codigo_postulacion, params.correo]
  headers:
    Authorization: "Bearer $env.ATS_API_KEY"
  body:
    codigo_postulacion: "$params.codigo_postulacion"
    correo: "$params.correo"
respond:
  data:
    etapa: "$.etapa"
    siguiente_paso: "$.siguiente_paso"

tools/agendar_entrevista.yml:

description: Agenda un horario de entrevista para una postulación en etapa de entrevista.
when_to_use: El candidato eligió un horario de horarios_entrevista y lo confirmó.
parameters:
  type: object
  properties:
    codigo_postulacion: { type: string }
    correo: { type: string }
    horario_id: { type: string }
  required: [codigo_postulacion, correo, horario_id]
access: public
request:
  method: POST
  base_url: "$env.ATS_API"
  path: /entrevistas
  requires: [params.codigo_postulacion, params.correo, params.horario_id]
  headers:
    Authorization: "Bearer $env.ATS_API_KEY"
  body:
    codigo_postulacion: "$params.codigo_postulacion"
    correo: "$params.correo"
    horario_id: "$params.horario_id"
respond:
  data:
    entrevista: "$.entrevista"

buscar_vacantes es un GET con una palabra clave y una ubicación que devuelve el cargo, el lugar, la jornada, el rango de sueldo publicado y la URL de cada aviso; una URL que devuelve una tool es una que el agente puede enviar durante el resto de la conversación. horarios_entrevista recibe el mismo código y correo, y devuelve horarios libres solo cuando la postulación está en etapa de entrevista.

Tu backend verifica que el código de postulación y el correo correspondan a la misma postulación antes de devolver o agendar nada. Los parámetros de una tool los llena el modelo, así que esa verificación vive en código, no en el prompt. Responde 404 tanto si el código no existe como si el correo no coincide, para que un intento al azar no aprenda nada. Las tools usan POST para que el correo viaje en el body y quede fuera de las URL y de los logs de acceso. Y recuerda que lo que devuelve una tool es lo que el modelo puede repetir: si tu ATS guarda notas o puntajes de los reclutadores junto a la etapa, el endpoint tiene que dejarlos fuera.

#Conocimiento: el proceso, en tus palabras

vatio kb create reclutamiento
vatio kb write reclutamiento proceso proceso.md
vatio kb write reclutamiento entrevistas entrevistas.md
vatio kb write reclutamiento preguntas-frecuentes preguntas-frecuentes.md

Una buena entrada es específica:

# Cómo funciona nuestro proceso

## Etapas
Recibida, En revisión, Entrevista, Entrevista final, Oferta o Cerrada. La
mayoría de las postulaciones sale de En revisión en 10 días hábiles.

## Postular a más de un cargo
Puedes postular a hasta tres vacantes a la vez. Cada una se revisa por
separado.

## Entrevistas por video
30 minutos con un reclutador. El link te llega por correo después de agendar.

Vatio no lee tu sitio de empleos. Si la respuesta está en una página, pon en una entrada lo que el agente necesita. Los reclutadores pueden editar entradas desde el inbox cuando cambia el proceso, y cada edición queda guardada como versión.

#Los CV, y por qué la selección queda en manos de personas

Los candidatos mandan su CV en PDF con un «¿hay algo para mí?». El agente lee PDF e imágenes de hasta 8 MB, así que puede ver a qué tipo de cargo apunta la persona y buscar vacantes en esa área. Lo que no hace es decidir si califica. Esa línea se traza en las instrucciones, no se deja al tacto del modelo: nada de opinar sobre el perfil, nada de comparar, nada de descartar, y una respuesta cierta lista para «¿estoy a la altura?». El CV queda en la conversación, donde los reclutadores lo ven en el inbox; el agente no puede reenviar el archivo a tu ATS, así que el link del aviso sigue siendo la forma de postular.

Esto es una decisión de diseño, no una función que deje un proceso en regla. En muchos lugares se regulan las decisiones automatizadas sobre candidatos, cómo se tratan sus datos personales y cuánto tiempo se guardan, y en algunos se exige avisar a las personas que están hablando con una máquina (el agente dice con claridad que es un asistente). Revisa lo que exige la normativa laboral y de protección de datos que te aplica antes de publicar.

#Pruébalo antes que cualquier candidato

vatio push
vatio chat "¿Tienen vacantes de bodega cerca de Quilicura?"
vatio chat "Estado de PO-20931, correo maria.r@correo.example"
vatio chat --new "Estado de PO-20931, mi correo es otra.persona@correo.example"
vatio chat --new "Tengo 5 años de experiencia, ¿crees que voy a quedar?"
vatio chat "El aviso dice sueldo a convenir. ¿Cuál es el número real?"
vatio chat show

El correo equivocado no debe revelar nada, la pregunta por las posibilidades no debe recibir una opinión, y la del sueldo no debe ir más allá del aviso. Después agrega tu teléfono como número de prueba en la página Probar del inbox, envía un CV en PDF al número compartido de preview de WhatsApp y pregunta si estás a la altura. Más sobre el canal en Un agente de IA en WhatsApp.

#Que mejore cada semana

Cuando los reclutadores usan el inbox, marcan cualquier respuesta que estuvo mal y escriben lo que debió pasar. vatio flags convierte esas notas en un documento desde el cual tu coding agent corrige, cada flag se vuelve un caso de eval, y el flag queda marcado como resuelto cuando live lo pasa. Los evals llaman a tus tools de verdad, así que apúntalas a un ATS de prueba con un valor de pruebas (--tests) antes de que una repetición agende una entrevista real. Mira Mejorar tu agente.

#Publicar

vatio publish

Después conecta tu número de WhatsApp Business desde Canales en el inbox y actívalo, y agrega el widget a tu página de empleos con un solo script. Los recordatorios de entrevista y las alertas de empleo siguen naciendo en tu ATS, que decide a quién y cuándo; por WhatsApp tu backend puede enviar cada uno con la Messages API, y el agente responde lo que los candidatos escriben de vuelta.

Preguntas frecuentes

¿Un agente de IA puede filtrar candidatos?

Puede leer un CV, pero esta guía no lo deja filtrar, y te recomendamos lo mismo. Las instrucciones le prohíben opinar sobre el perfil, comparar o descartar a nadie, y las decisiones de selección quedan en manos de tus reclutadores. En muchos lugares se regulan las decisiones automatizadas sobre candidatos, así que revisa la normativa laboral y de protección de datos que te aplica.

¿Cómo revisa un candidato el estado de su postulación por WhatsApp?

El candidato da el código de postulación que aparece en su correo de confirmación y el correo con el que postuló. Una tool envía ambos a tu ATS, y tu backend solo devuelve la etapa cuando los dos corresponden a la misma postulación.

¿El agente puede agendar entrevistas?

Sí. Una tool lee los horarios libres de tu ATS o de la API de tu calendario y otra agenda el que elige el candidato, solo para postulaciones en etapa de entrevista. Tu sistema sigue siendo el que confirma la reserva.

¿El agente va a hablar de sueldo?

Solo del rango publicado en el aviso, si hay uno. Todo lo demás, incluida la negociación, está en handoff para que lo tome un reclutador.

¿El agente envía recordatorios de entrevista o alertas de empleo?

Sí, cuando tu sistema los pide. Tu backend, que conoce la entrevista, llama a la Messages API de Vatio y la conversación se abre por WhatsApp: tu propio texto, un brief a partir del cual escribe el agente, o una plantilla aprobada si pasaron más de 24 horas desde el último mensaje del candidato, y el agente atiende la respuesta sabiendo por qué escribió. Las alertas de empleo a una lista funcionan igual, una solicitud por candidato; Vatio no tiene un panel de campañas, así que tu ATS sigue decidiendo quién se entera de qué vacante, y cuándo.

Actualizado: