#Agente de IA para recrutamento e RH
Um agente de IA para recrutamento responde os candidatos no WhatsApp e na sua página de vagas: quais vagas estão abertas, como funciona o processo seletivo, em que pé está a candidatura e quando podem fazer a entrevista, agendada direto no seu sistema de recrutamento (ATS). Ele nunca promete uma vaga, nunca fala de salário além do que está no anúncio e nunca avalia um candidato, porque as decisões de seleção ficam com os seus recrutadores. Com a Vatio você descreve esse agente em um arquivo vatio.yml, e ele responde no seu próprio número de WhatsApp e em um widget no seu site de carreiras.
Este guia monta um para uma consultoria de recrutamento. O mesmo formato serve para um time interno de talentos.
#O que o agente resolve
Os candidatos perguntam as mesmas poucas coisas, quase sempre à noite e quase sempre mais de uma vez:
- Vagas abertas. “Vocês têm alguma coisa em logística perto de Guarulhos?” O agente busca entre as vagas e envia o link do anúncio.
- Status da candidatura. O candidato informa o código da candidatura e o e-mail, e o agente diz a etapa e o próximo passo.
- Agendamento de entrevistas. Para candidaturas na etapa de entrevista, oferece horários livres e agenda o que o candidato escolher.
- O processo. Quantas etapas existem, quanto tempo leva cada uma, o que levar, se dá para se candidatar a duas vagas.
- Todo o resto vai para uma pessoa. Feedback depois de uma reprovação, negociação de salário, adaptações para a entrevista, reclamações.
Uma conversa típica no WhatsApp:
Candidata: oi, me candidatei pra vaga de supervisora de estoque faz 2 semanas, tem alguma novidade?
Agente: Vou verificar. Qual é o código da sua candidatura? Ele está no e-mail de confirmação e começa com CD. Também preciso do e-mail que você usou para se candidatar.
Candidata: CD-20931, maria.r@email.example
Agente: Obrigado, Maria. A sua candidatura está em análise com o time de seleção. Se ela avançar, o próximo passo é uma entrevista por vídeo de 30 minutos, e você vai poder agendar por aqui.
Por trás da última resposta houve uma chamada a status_candidatura, cujo backend conferiu que o código e o e-mail pertencem à mesma candidatura. Ele não disse nada sobre as chances dela, porque as regras dizem que nunca diz. Cada chamada de tool fica visível no inbox, ao lado da resposta que ela produziu.
#Antes de escrever qualquer coisa: cinco perguntas para o time de recrutamento
- Quem escreve, e sobre o quê? Normalmente vagas abertas e status da candidatura, e depois entrevistas.
- O que ele nunca deve dizer? Promessas, opiniões sobre o perfil de um candidato, salário fora do anúncio, motivos de uma reprovação.
- Quando uma pessoa assume? Pedidos de feedback, negociação, adaptações para a entrevista, reclamações, um candidato perguntando sobre os próprios dados.
- De quais sistemas ele lê? A API do seu ATS: vagas, candidaturas e agendas de entrevista.
- O que a legislação que se aplica a você exige? Decisões automatizadas sobre candidatos, consentimento, por quanto tempo os currículos ficam guardados. Essas respostas vêm do seu jurídico ou do RH, não de quem escreve o YAML.
As respostas viram as instruções, as condições de handoff, as tools e o conhecimento.
#O vatio.yml
workspace: ipe-talentos
agent:
name: Ipê Talentos
personality: Acolhedor, respeitoso e breve. Palavras simples, sem jargão de RH.
instructions: |
Você atende os candidatos da Ipê Talentos, uma consultoria de
recrutamento: vagas abertas, como funciona o processo, o status de uma
candidatura e o agendamento de entrevistas.
Vagas: chame buscar_vagas com o que o candidato procura e onde.
Compartilhe o link do anúncio que ela devolveu para ele se candidatar
por lá.
Status da candidatura: peça o código da candidatura (está no e-mail de
confirmação) e o e-mail com que ele se candidatou, e chame
status_candidatura. Informe a etapa e o próximo passo do jeito que ela
devolveu, e nada além disso.
Entrevistas: só quando status_candidatura disser que a etapa é
entrevista. Chame horarios_entrevista, ofereça no máximo três, repita o
escolhido e chame agendar_entrevista. Só diga que a entrevista está
agendada quando agendar_entrevista a tiver devolvido.
Dúvidas sobre o processo: busque primeiro em knowledge_lookup. Se não
encontrar a resposta, diga isso e ofereça passar a pergunta ao time.
Regras que você nunca quebra:
- Nunca prometa uma vaga, uma entrevista nem um resultado, e nunca
chute as chances de um candidato.
- Nunca diga se um perfil ou currículo combina com uma vaga, não
compare candidatos nem elimine ninguém. Os recrutadores analisam
todas as candidaturas.
- Nunca fale de salário além da faixa publicada no anúncio.
- Nunca pergunte sobre idade, planos de família, saúde, religião ou
outros assuntos pessoais que a vaga não exija.
tools: [buscar_vagas, status_candidatura, horarios_entrevista, agendar_entrevista, knowledge_lookup]
knowledge: [recrutamento]
links:
privacidade: https://ipe-talentos.example/privacidade-candidatos
handoff:
after_turns: 12
when:
- o candidato pergunta por que não passou ou pede feedback
- o candidato quer negociar salário ou condições
- o candidato precisa de uma adaptação para uma entrevista
- uma reclamação sobre o processo ou sobre um recrutador
- o candidato pede para ver, corrigir ou apagar os próprios dados
Algumas escolhas que vale explicar:
- “Os recrutadores analisam todas as candidaturas.” A regra também é a resposta. Quando um candidato pergunta “eu tenho chance?”, o agente tem algo verdadeiro para dizer em vez de uma opinião.
- “Do jeito que ela devolveu, e nada além disso.” Um agente que suaviza “não selecionado” para “ainda em análise” fez uma promessa em seu nome. As etapas são palavras que o seu time escolheu; o agente as repete.
- Salário é a faixa do anúncio ou nada. Se o anúncio diz “a combinar”, o agente diz o mesmo e a pergunta vai para um recrutador.
- O horário de atendimento decide o que acontece depois de uma transferência. Ele não vai no
vatio.yml: o time de recrutamento o define na página Negócio do inbox, por exemplo segunda a quinta das 9:00 às 18:00 e sexta das 9:00 às 17:00. Dentro do horário o agente fica em silêncio para um recrutador assumir. Fora dele continua ajudando e avisa que o time responde no próximo dia útil. A Vatio ainda não notifica ninguém de uma transferência; a conversa aparece como aguardando no inbox. Veja a documentação de handoff.
#Tools: vagas, candidaturas e entrevistas
Uma tool é um request HTTP para o seu backend, descrito em YAML. Guarde o endereço e a chave como secrets:
vatio secrets set ATS_API https://ats.ipe-talentos.example
vatio secrets set ATS_API_KEY sk_live_...
tools/status_candidatura.yml:
description: Consulta a etapa e o próximo passo da candidatura de um candidato.
when_to_use: O candidato pergunta como está a candidatura e informou o código e o e-mail.
parameters:
type: object
properties:
codigo_candidatura: { type: string, description: "Começa com CD, por exemplo CD-20931" }
email: { type: string, description: "O e-mail com que o candidato se candidatou" }
required: [codigo_candidatura, email]
access: public
request:
method: POST
base_url: "$env.ATS_API"
path: /candidaturas/status
requires: [params.codigo_candidatura, params.email]
headers:
Authorization: "Bearer $env.ATS_API_KEY"
body:
codigo_candidatura: "$params.codigo_candidatura"
email: "$params.email"
respond:
data:
etapa: "$.etapa"
proximo_passo: "$.proximo_passo"
tools/agendar_entrevista.yml:
description: Agenda um horário de entrevista para uma candidatura na etapa de entrevista.
when_to_use: O candidato escolheu um horário de horarios_entrevista e confirmou.
parameters:
type: object
properties:
codigo_candidatura: { type: string }
email: { type: string }
horario_id: { type: string }
required: [codigo_candidatura, email, horario_id]
access: public
request:
method: POST
base_url: "$env.ATS_API"
path: /entrevistas
requires: [params.codigo_candidatura, params.email, params.horario_id]
headers:
Authorization: "Bearer $env.ATS_API_KEY"
body:
codigo_candidatura: "$params.codigo_candidatura"
email: "$params.email"
horario_id: "$params.horario_id"
respond:
data:
entrevista: "$.entrevista"
buscar_vagas é um GET com uma palavra-chave e uma localização que devolve o cargo, o local, a jornada, a faixa salarial publicada e a URL de cada anúncio; uma URL que uma tool devolve é uma que o agente pode enviar pelo resto da conversa. horarios_entrevista recebe o mesmo código e e-mail, e devolve horários livres só quando a candidatura está na etapa de entrevista.
O seu backend confere se o código da candidatura e o e-mail pertencem à mesma candidatura antes de devolver ou agendar qualquer coisa. Quem preenche os parâmetros de uma tool é o modelo, então essa checagem mora no código, não no prompt. Responda 404 tanto quando o código não existe quanto quando o e-mail não bate, para que uma tentativa no chute não aprenda nada. As tools usam POST para que o e-mail vá no body e fique fora das URLs e dos logs de acesso. E lembre que o que uma tool devolve é o que o modelo pode repetir: se o seu ATS guarda anotações ou notas dos recrutadores junto da etapa, o endpoint precisa deixá-las de fora.
#Conhecimento: o processo, nas suas palavras
vatio kb create recrutamento
vatio kb write recrutamento processo processo.md
vatio kb write recrutamento entrevistas entrevistas.md
vatio kb write recrutamento perguntas-frequentes perguntas-frequentes.md
Uma boa entrada é específica:
# Como funciona o nosso processo
## Etapas
Recebida, Em análise, Entrevista, Entrevista final, Proposta ou Encerrada.
A maioria das candidaturas sai de Em análise em até 10 dias úteis.
## Candidatar-se a mais de uma vaga
Você pode se candidatar a até três vagas ao mesmo tempo. Cada uma é
analisada separadamente.
## Entrevistas por vídeo
30 minutos com um recrutador. O link chega por e-mail depois do agendamento.
A Vatio não lê o seu site de carreiras. Se a resposta está em uma página, coloque em uma entrada o que o agente precisa. Os recrutadores podem editar entradas pelo inbox quando o processo muda, e cada edição fica guardada como versão.
#Currículos, e por que a seleção fica com pessoas
Os candidatos mandam o currículo em PDF com um “tem alguma coisa pra mim?”. O agente lê PDFs e imagens de até 8 MB, então consegue ver que tipo de vaga a pessoa procura e buscar vagas nessa área. O que ele não faz é decidir se ela se qualifica. Essa linha é traçada nas instruções, não deixada para o tato do modelo: nada de opinar sobre o perfil, nada de comparar, nada de eliminar, e uma resposta verdadeira pronta para “eu tenho chance?”. O currículo fica na conversa, onde os recrutadores o veem no inbox; o agente não consegue encaminhar o arquivo para o seu ATS, então o link do anúncio continua sendo o jeito de se candidatar.
Isso é uma decisão de design, não um recurso que deixa um processo em conformidade. Muitos lugares regulam decisões automatizadas sobre candidatos, como os dados pessoais deles são tratados e por quanto tempo ficam guardados, e alguns exigem avisar as pessoas de que estão falando com uma máquina (o agente diz com clareza que é um assistente). Confira o que a legislação trabalhista e de proteção de dados que se aplica a você exige antes de publicar.
#Teste antes de qualquer candidato
vatio push
vatio chat "Vocês têm vagas de estoque perto de Guarulhos?"
vatio chat "Status da CD-20931, e-mail maria.r@email.example"
vatio chat --new "Status da CD-20931, meu e-mail é outra.pessoa@email.example"
vatio chat --new "Tenho 5 anos de experiência, você acha que eu passo?"
vatio chat "O anúncio diz salário a combinar. Qual é o valor de verdade?"
vatio chat show
O e-mail errado não deve revelar nada, a pergunta sobre as chances não deve receber uma opinião, e a do salário não deve ir além do anúncio. Depois adicione o seu telefone como número de teste na página Testar do inbox, envie um currículo em PDF para o número compartilhado de preview do WhatsApp e pergunte se você tem chance. Mais sobre o canal em Um agente de IA no WhatsApp.
#Melhore toda semana
Quando os recrutadores usam o inbox, eles reportam qualquer resposta errada e escrevem o que deveria ter acontecido. vatio flags transforma essas notas em um documento a partir do qual o seu coding agent corrige, cada relato vira um caso de eval, e o relato fica resolvido quando o live passa nele. Os evals chamam as suas tools de verdade, então aponte-as para um ATS de teste com um valor de testes (--tests) antes que uma repetição agende uma entrevista real. Veja Melhorar seu agente.
#Publicar
vatio publish
Depois conecte o seu número de WhatsApp Business em Canais no inbox e ative, e adicione o widget à sua página de vagas com uma única tag de script. Os lembretes de entrevista e os alertas de vagas continuam nascendo no seu ATS, que decide para quem e quando; pelo WhatsApp o seu backend pode enviar cada um pela Messages API, e o agente responde o que os candidatos escrevem de volta.
Perguntas frequentes
Um agente de IA pode fazer a triagem de candidatos?
Ele consegue ler um currículo, mas este guia não o deixa fazer triagem, e recomendamos que você também não deixe. As instruções o proíbem de opinar sobre o perfil, comparar ou eliminar alguém, e as decisões de seleção ficam com os seus recrutadores. Muitos lugares regulam decisões automatizadas sobre candidatos, então confira a legislação trabalhista e de proteção de dados que se aplica a você.
Como o candidato consulta o status da candidatura pelo WhatsApp?
O candidato informa o código da candidatura que está no e-mail de confirmação e o e-mail com que se candidatou. Uma tool envia os dois para o seu ATS, e o seu backend só devolve a etapa quando os dois pertencem à mesma candidatura.
O agente consegue agendar entrevistas?
Sim. Uma tool lê os horários livres do seu ATS ou da API da sua agenda e outra agenda o que o candidato escolher, só para candidaturas na etapa de entrevista. O seu sistema continua sendo quem confirma o agendamento.
O agente vai falar de salário?
Só da faixa publicada na vaga, se houver uma. Qualquer coisa além disso, incluindo negociação, está no handoff para um recrutador assumir.
O agente envia lembretes de entrevista ou alertas de vagas?
Sim, quando o seu sistema pede. O seu backend, que sabe da entrevista, chama a Messages API da Vatio e a conversa se abre no WhatsApp: o seu próprio texto, um brief a partir do qual o agente escreve, ou um modelo aprovado quando já passaram 24 horas desde a última mensagem do candidato, e o agente cuida da resposta sabendo por que escreveu. Alertas de vagas para uma lista funcionam do mesmo jeito, uma requisição por candidato; a Vatio não tem um painel de campanhas, então o seu ATS continua decidindo quem fica sabendo de qual vaga, e quando.
Atualizado: