Usar WhatsApp API para RH e recrutamento deixou de ser tendência para se tornar necessidade. Com mais de 99% dos brasileiros usando o WhatsApp diariamente, o canal se tornou o meio mais eficiente para triagem de candidatos, agendamento de entrevistas, envio de feedbacks e onboarding de novos colaboradores. Neste artigo, você vai aprender a automatizar cada etapa do processo seletivo usando a ZAP API.
Por que usar WhatsApp no recrutamento?
- Taxa de abertura de 90%+ vs. 20-30% do e-mail
- Velocidade de resposta: candidatos respondem em minutos
- Redução de no-show: lembretes automáticos diminuem faltas em até 60%
- Triagem escalável: processe centenas de candidatos sem aumentar a equipe
Fluxo completo: da candidatura ao onboarding
- Recepção da candidatura: confirmação via WhatsApp
- Triagem automática: perguntas de qualificação
- Convite para entrevista: com data, horário e link
- Follow-up e feedback: lembrete + resultado
- Onboarding: documentos e boas-vindas para aprovados
Implementação: triagem automática
// triagem.js
const axios = require('axios');
const api = axios.create({
baseURL: 'https://zap-api.tech/v1',
headers: { Authorization: 'Bearer ' + process.env.ZAP_TOKEN }
});
const INST = process.env.ZAP_INSTANCE;
const PERGUNTAS = [
'Qual sua disponibilidade para início? (imediata / 15 dias / 30 dias)',
'Qual sua pretensão salarial?',
'Tem experiência com as ferramentas da vaga? (sim / parcialmente / não)',
'Disponibilidade presencial em SP? (sim / não / híbrido)'
];
async function iniciarTriagem(candidato) {
await api.post(`/instances/${INST}/send`, {
phone: candidato.telefone, type: 'text',
body: `${candidato.nome}, vamos a uma triagem rápida (4 perguntas).\n\nPergunta 1/4: ${PERGUNTAS[0]}`
});
}
async function processarResposta(telefone, resposta) {
const candidato = await db.candidatos.findByPhone(telefone);
if (!candidato || candidato.etapa !== 'triagem') return;
candidato.respostas.push(resposta);
const proxima = candidato.pergunta_atual + 1;
if (proxima < PERGUNTAS.length) {
await api.post(`/instances/${INST}/send`, {
phone: telefone, type: 'text',
body: `Pergunta ${proxima + 1}/4: ${PERGUNTAS[proxima]}`
});
await db.candidatos.update(candidato.id, { pergunta_atual: proxima });
} else {
await api.post(`/instances/${INST}/send`, {
phone: telefone, type: 'text',
body: 'Obrigado! Analisaremos seu perfil e retornaremos em até 48h.'
});
}
}
Convite para entrevista + lembrete
async function convidarEntrevista(candidato, entrevista) {
await api.post(`/instances/${INST}/send`, {
phone: candidato.telefone, type: 'text',
body: `Parabéns, ${candidato.nome}! Aprovado na triagem.\n\n` +
`Entrevista: ${entrevista.data} às ${entrevista.horario}\n` +
`Link: ${entrevista.link}\n\nResponda CONFIRMO ou REMARCAR.`
});
}
// Lembrete 1h antes via cron
async function lembrete(candidato, entrevista) {
await api.post(`/instances/${INST}/send`, {
phone: candidato.telefone, type: 'text',
body: `Lembrete: sua entrevista começa em 1 hora.\nLink: ${entrevista.link}\nBoa sorte!`
});
}
Onboarding de novos colaboradores
async function iniciarOnboarding(colaborador) {
await api.post(`/instances/${INST}/send`, {
phone: colaborador.telefone, type: 'text',
body: `Bem-vindo(a) à equipe, ${colaborador.nome}! Enviando seus documentos...`
});
await api.post(`/instances/${INST}/send`, {
phone: colaborador.telefone, type: 'document',
url: 'https://empresa.com/docs/checklist-admissao.pdf',
caption: 'Checklist de documentos para admissão.'
});
}
Boas práticas
- Horário comercial: envie entre 8h e 20h
- LGPD: colete consentimento antes de enviar mensagens
- Fallback humano: sempre ofereça opção de falar com RH
- Personalização: inclua nome, vaga e contexto
FAQ
- Preciso de número dedicado para RH?
Recomendamos sim. Cada instância custa R$49/mês (ou R$29/mês a partir da 3a). - É permitido enviar mensagens de recrutamento?
Sim, com consentimento do candidato e respeito à LGPD. - Quantos candidatos posso processar?
Sem limite. Use o sistema de filas para lotes grandes. - Posso enviar contratos pelo WhatsApp?
Sim. A ZAP API suporta envio de documentos PDF.