Pular para o conteúdo
Português - Brasil
  • Não há sugestões porque o campo de pesquisa está em branco.

ATS Integration: como integrar a nova API da GeekHunter?

Passo 1: Gerar sua API Key

  1. Acesse o dashboard da GeekHunter
  2. Vá em Configurações → Integrações → API Keys
  3. Clique em Gerar nova chave
  4. Copie e armazene com segurança

Passo 2: Configurar autenticação

Todas as requisições devem incluir o header:

Authorization: Bearer SUA_API_KEY

Content-Type: application/json

 


Passo 3: Listar todas as vagas

Endpoint


GET /jobs

Exemplo com cURL



curl -X GET "https://api.geekhunter.com/jobs?page=1&per_page=20" \

 -H "Authorization: Bearer SUA_API_KEY"


Exemplo com JavaScript (fetch)


fetch("https://api.geekhunter.com/jobs?page=1&per_page=20", {

 headers: {

   "Authorization": "Bearer SUA_API_KEY"

 }

})

.then(res => res.json())

.then(data => console.log(data));

Resposta (exemplo)

{

 "data": [

   {

     "job_id": "abc123def4",

     "title": "Backend Developer",

     "created_at": "2026-03-01T09:00:00Z"

   }

 ],

 "meta": {

   "page": 1,

   "per_page": 20,

   "total": 100,

   "total_pages": 5

 }

}

 


Passo 4: Buscar dados de uma vaga específica

Endpoint

GET /jobs/{job_id}

Exemplo

curl -X GET "https://api.geekhunter.com/jobs/abc123def4" \

 -H "Authorization: Bearer SUA_API_KEY"

 


Passo 5: Listar candidatos de uma vaga

Endpoint

GET /jobs/{job_id}/applications

Exemplo

curl -X GET "https://api.geekhunter.com/jobs/abc123def4/applications" \

 -H "Authorization: Bearer SUA_API_KEY"

Resposta (exemplo)

{

 "data": [

   {

     "application_id": "xyz987abcd",

     "name": "João Silva",

     "applied_at": "2026-03-02T10:00:00Z",

     "resume_url": "https://..."

   }

 ]

}

 


 Passo 6: Para rejeitar um candidato

Endpoint

POST /applications/{application_id}/reject

Exemplo

curl -X POST "https://api.geekhunter.com/applications/xyz987abcd/reject" \

 -H "Authorization: Bearer SUA_API_KEY"

Possíveis respostas:

  • 200 → sucesso
  • 422 → candidato já rejeitado

 


Passo 7: Trabalhando com paginação

Use os parâmetros:

  • page → número da página
  • per_page → itens por página (máx: 100)
GET /jobs?page=2&per_page=50

 


Passo 8: Tratamento de erros

Exemplo de erro:

{

 "error": "Invalid parameter",

 "code": "invalid_request"

}

Principais códigos:

 

  • 400 → requisição inválida
  • 401 → API Key inválida
  • 404 → recurso não encontrado
  • 429 → limite excedido


Passo 9: Rate limit

  • Limite: 100 requisições por minuto

Se exceder:

HTTP 429

Retry-After: 30

➡ ️ Aguarde o tempo indicado antes de tentar novamente.


Passo 10: Boas práticas

  • Armazene sua API Key em variáveis de ambiente
  • Implemente retry automático para erros 429
  • Sincronize dados periodicamente (ex: a cada 5 minutos)
  • Sempre trate campos null


Exemplo de fluxo completo

1. Buscar vagas

const jobs = await fetch("/jobs");

2. Para cada vaga, buscar candidatos

for (const job of jobs.data) {

 const applications = await fetch(`/jobs/${job.job_id}/applications`);

3. Exemplo: rejeitar candidato

 for (const app of applications.data) {

   if (app.name === "Teste") {

     await fetch(`/applications/${app.application_id}/reject`, {

       method: "POST"

     });

   }

 }

}