API para desenvolvedores
Integre o AssessFit ao seu ATS, ao Zapier ou a ferramentas internas — crie vagas, convide candidatos, busque resultados e receba webhooks assinados no momento em que um candidato termina.
Autenticação
Gere uma chave de API em Employer Dashboard → Settings → API & integrations e envie-a em toda requisição:
curl https://assessfit.com/api/v1/jobs \ -H "X-Api-Key: tp_live_…"
As chaves valem por espaço de trabalho. Rotacionar uma chave invalida a anterior imediatamente. As requisições são limitadas a 300/min por IP.
Endpoints
GET/api/v1/jobs
Lista as vagas com contagens de convites e conclusões.
POST/api/v1/jobs
Cria uma vaga e convida candidatos numa só chamada. Os e-mails de convite saem automaticamente; cada convite consome um crédito.
curl -X POST https://assessfit.com/api/v1/jobs \
-H "X-Api-Key: tp_live_…" -H "Content-Type: application/json" \
-d '{
"title": "Senior Accountant",
"roleKey": "accountant",
"tests": ["attention", "financial", "numerical", "conscientiousness"],
"cameraRequired": true,
"shareResults": false,
"candidates": [
{ "name": "Ana Putri", "email": "ana@example.com" }
]
}'
Chaves de função: accountant, engineer,
sales, support,
marketing, analyst,
custom. Dá para omitir tests? Não — passe as chaves dos testes que quiser; a biblioteca fica no painel.
GET/api/v1/jobs/:id
Detalhe completo da vaga: cada convite com seus carimbos de tempo do funil (tracking.sent/opened/loggedIn), o
linkde convite pessoal, e o objeto result quando concluído.
POST/api/v1/jobs/:id/invites
Adiciona candidatos a uma vaga existente: {"candidates":[{"name":"…","email":"…"}]}. Retorna os convites criados com seus links.
GET/api/v1/invites/:id/result
Busca o resultado completo de um candidato: nota geral, notas por teste, nota de integridade, veredicto e sinalizações, e análise de tempos. Retorna 404 até o candidato terminar.
Webhooks
Defina uma URL de webhook em Settings. O AssessFit envia eventos JSON via POST com assinatura HMAC-SHA256 calculada sobre o corpo bruto usando sua chave de API como segredo:
POST https://your-app.example.com/hooks/assessfit
X-AssessFit-Event: candidate.completed
X-AssessFit-Signature: sha256=3f5a…
{
"event": "candidate.completed",
"createdAt": "2026-07-22T09:14:03.000Z",
"data": {
"inviteId": "inv_…",
"jobId": "job_…",
"jobTitle": "Senior Accountant",
"candidate": { "name": "Ana Putri", "email": "ana@example.com" },
"overall": 84,
"scores": { "attention": 83, "numerical": 100 },
"integrity": { "score": 100, "verdict": "clean" }
}
}
Verifique a assinatura antes de confiar num payload:
// Node.js
const crypto = require("crypto");
function verify(rawBody, signatureHeader, apiKey) {
const expected = "sha256=" +
crypto.createHmac("sha256", apiKey).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected));
}
A entrega é repetida 3× (imediatamente, +2 s, +8 s). Cada tentativa fica visível em
Settings → Recent webhook deliveries, e você pode disparar um evento
webhook.test a qualquer momento com o botão "Send Test Event". Eventos: candidate.completed, webhook.test.
Receitas de integração
- ATS (Greenhouse/Lever/etc.): quando um candidato chega à sua etapa de "Avaliação", chame
POST /api/v1/jobs/:id/invites; no webhookcandidate.completed, grave as notas de volta no perfil do candidato pela API do seu ATS. - Zapier/Make: use "Webhooks by Zapier" como gatilho com sua URL de webhook do AssessFit, e uma ação HTTP com
X-Api-Keypara os convites. - Alerta no Slack: receba o webhook numa função pequena e poste "🏁 Ana Putri finished Senior Accountant — 84/100, integrity clean" no seu canal de contratação.