hiGen — Jobs API 2.0

A API oficial para integrar vagas de parceiros ao ecossistema hiGen.

Objetivo da API

A hiGen Jobs API permite que empresas parceiras integrem vagas ao hiGen de forma rápida, padronizada e confiável. Ela foi projetada para oferecer apenas o essencial para um fluxo de publicação simples e eficiente.

Acesso & Autenticação

A integração com a hiGen Jobs API é exclusiva para parceiros selecionados. Trabalhamos com um processo de curadoria humana para garantir que todas as oportunidades publicadas na plataforma mantenham o padrão de qualidade que esperamos oferecer aos candidatos.

Por isso, o acesso não é aberto — cada parceiro é analisado, aprovado e configurado individualmente pela nossa equipe.

Atualmente, o processo de cadastro é manual.
Para solicitar acesso, entre em contato:

partners@higen.io

Após aprovado, você receberá:

Todas as requisições devem incluir o token no header:

Authorization: Bearer SEU_API_TOKEN

Respostas da API (Status Codes)

Principais códigos de resposta retornados pela hiGen Jobs API.

Status Descrição
200 — OK Requisição bem-sucedida.
400 — Bad Request Algum campo obrigatório está ausente ou possui formato inválido.
401 — Unauthorized Token ausente, inválido ou expirado.
404 — Not Found O recurso ou endpoint solicitado não foi encontrado.
409 — Conflict A vaga já existe no hiGen. Utilize o endpoint de atualização.
422 — Unprocessable Entity Falta definir o método de recebimento de aplicações.
500 — Server Error Erro interno no servidor. Tente novamente.

Método de recebimento das aplicações

Antes de criar ou atualizar vagas, o parceiro deve definir como deseja receber as aplicações enviadas pelos candidatos. A hiGen suporta dois formatos de entrega, enviados diretamente no body da requisição:

  • Webhook — recebimento automático via HTTP POST
  • E-mail — envio de cada aplicação diretamente para a caixa de entrada

Escolha o formato que melhor se integra ao seu processo interno. Recomendamos Webhook, pois oferece entrega imediata, maior confiabilidade e automação completa. Ambos os métodos seguem os mesmos padrões de segurança e formatação.

Nota: a configuração de entrega é definida por ambiente. É necessário configurá-la separadamente para sandbox e produção. Sempre que um novo formato for enviado em um ambiente, ele substituirá integralmente a configuração anterior daquele ambiente.

delivery objeto · obrigatório
Define como o parceiro receberá os dados de cada aplicação. O objeto deve seguir um dos formatos abaixo e deve ser enviado diretamente no body da requisição, sendo aplicado exclusivamente ao ambiente atual (sandbox ou produção).

Webhook (recomendado):

{
  "type": "webhook",
  "destination": "https://parceiro.com/webhooks/higen"
}

Observações:

  • O endpoint de webhook deve responder com 200 OK para confirmar o recebimento da aplicação.
  • Recomendamos que o parceiro proteja o endpoint com autenticação própria (token, API key ou mecanismo equivalente).
  • As requisições são enviadas com autenticação via Bearer Token, respeitando o ambiente configurado (sandbox ou produção).

E-mail:

{
  "type": "email",
  "destination": "parceiro@empresa.com"
}
Exemplo de requisição

Webhook — Payload recebido (exemplo)

{
  "partner_job_id": "12345",
  "profile": "higen.io/antonio-carlo",
  "name": "Antonio Carlo",
  "email": "antonio-carlo@email.com",
  "phone": "5511999998888",
  "cpf": "123.456.789-09",
  "curriculum_path": "https://higen.io/cv/...",
  "score_interest": 61,
  "score_interest_analysis": "O score de 61 indica que a vaga em ...",
  "score_curriculum_match": 45,
  "score_curriculum_match_analysis": "O candidato apresenta um perfil ...",
  "ats_required_field": [
    {
      "type": "idiom",
      "answer": [{
        "language": "Inglês",
        "language_level":"Avançado"
      }]
    }, 
    {
      "type": "person_information",
      "answer: [{
        "cpf": "123.456.789-0", 
        "zip_code": "05743-123"
      }]
    }
  ],
  "application_question": [
    {
      "type": "single_free",
      "label": "Conte brevemente sobre sua experiência relevante para esta vaga.",
      "answer": "Tenho 2 anos de experiência com atendimento ao cliente e operações."
    },
    {
      "type": "single_defined",
      "label": "Qual é o seu nível de disponibilidade atual?",
      "options": [
        "Disponível imediatamente",
        "Em até 15 dias",
        "Em até 30 dias",
        "Mais de 30 dias"
      ],
      "answer": "Em até 15 dias"
    },
    {
      "type": "multiple_free",
      "label": "Liste suas principais habilidades técnicas relacionadas à função.",
      "answer": ["SQL", "Python", "Power BI"]
    },
    {
      "type": "multiple_defined",
      "label": "Quais benefícios são mais importantes para você?",
      "options": [
        "Plano de saúde",
        "Flexibilidade / Home office",
        "Vale alimentação/refeição",
        "Bônus ou participação nos lucros"
      ],
      "answer": [
        "Flexibilidade / Home office",
        "Plano de saúde"
      ]
    },
    {
      "type": "date",
      "label": "Qual a sua data de nascimento?",
      "format_date": "DD/MM/YYYY",
      "answer": "12/05/1998"
    },
    {
      "type": "boolean",
      "label": "Você tem disponibilidade para viagens ocasionais?",
      "answer": true
    },
    {
      "type": "number",
      "label": "Qual sua pretensão salarial (em BRL)?",
      "answer": 4800
    }
  ]
}

Criar vaga

Para criar uma vaga no hiGen, envie um JSON no corpo da requisição contendo os campos abaixo. Clique em cada campo para ver detalhes, formatos aceitos e exemplos de preenchimento.

partner_job_id string · obrigatório
Identificador único da vaga no sistema do parceiro. Deve ser exclusivo por parceiro e permanecer estável ao longo do tempo.
"partner_job_id": "12345"
company_name string · obrigatório
Nome da empresa que oferece a vaga.
"company_name": "Atlas Tech"
job_title string · obrigatório
Título da vaga em linguagem clara e objetiva.
"job_title": "Gerente de Desenvolvimento de Talentos"
job_description string · obrigatório
Descrição completa da vaga: responsabilidades, contexto, principais entregas, requisitos e interlocuções.
"job_description": "Liderar a estratégia..."
job_complement string · opcional
Informações adicionais que enriquecem a vaga, mas não fazem parte da descrição principal.
"job_complement": "Atuação com LXP..."
location string · obrigatório (exceto vagas 100% remotas)
Local principal da vaga no formato "Cidade, UF". Para vagas 100% remotas, este campo é opcional.
"location": "São Paulo, SP"
work_model enum · obrigatório
Modelo de trabalho da vaga. Valores permitidos:
Presencial, Remoto, Híbrido
"work_model": "Híbrido"
job_type enum · obrigatório
Tipo de vínculo da vaga. Valores permitidos:
CLT, Terceirizado, Estágio, Trainee, Aprendiz, Freelancer, Autônomo(a), Temporário
"job_type": "CLT"
publication_date string · obrigatório · YYYY-MM-DD
Data em que a vaga foi publicada.
"publication_date": "2025-08-14"
expiration_date string · opcional · YYYY-MM-DD
Data em que a vaga deixa de ser exibida. Se não enviada, o hiGen aplica automaticamente um prazo máximo de 90 dias. Datas acima desse limite são ajustadas automaticamente. Para manter a vaga ativa por mais tempo, basta reenviá-la ou atualizá-la.
"expiration_date": "2025-11-30"
salary_range objeto · opcional
Faixa salarial estimada para a vaga. A moeda deve sempre ser BRL.
"salary_range": {
                "min": 22000,
                "max": 30000,
                "currency": "BRL"
                }
seniority_level string · opcional
Exemplos: Júnior, Pleno, Sênior.
"seniority_level": "Sênior"
selection_process string · opcional
Resumo das etapas do processo seletivo.
"selection_process": "Case + Comitê"
job_pcd boolean · opcional
Indica se a vaga é acessível para PCD. Aceita apenas true ou false.
"job_pcd": true
benefit array de string · opcional
Lista de benefícios oferecidos.
"benefit": ["Plano de saúde", "VR/VA"]
differential array de string · opcional
Diferenciais desejados da vaga.
"differential": ["Career frameworks"]
requirement array de string · opcional
Requisitos essenciais da vaga.
"requirement": ["Ensino médio completo"]
ats_required_field array de objetos · opcional
Campos estruturados que a empresa deseja coletar do candidato. Priorize solicitar apenas o essencial — quanto menos dados forem exigidos, maior a taxa de conclusão da candidatura. Somente o tipo person_information permite solicitar campos individuais.
Sem o campo field, todos os dados pessoais serão solicitados.
Com field, apenas os campos informados serão exibidos ao candidato.

Ex.:
{ "type": "person_information" } → solicita todos os dados pessoais
{ "type": "person_information", "field": ["cpf", "zip_code"] } → solicita apenas CPF e CEP

Modelos disponíveis:

  • academic_experience — formação educacional
  • achievement_or_certificate — certificados e prêmios
  • idiom — idiomas
  • professional_experience — experiência profissional
  • skill — habilidades
  • person_information — dados pessoais
    • full_name
    • birth_date
    • gender
    • cpf
    • rg
    • email
    • linkedin
    • address
    • city
    • state
    • zip_code
    • nationality
    • disability

Regras de composição:

  • Apenas person_information suporta granularidade via field.
  • Modelos como idiom, academic_experience e professional_experience sempre solicitam seus campos completos.
  • Campos respeitam validações nativas do hiGen (CPF, CEP, datas, opções etc.).
  • Use junto com application_question para perguntas adicionais não estruturadas.
application_question array de objetos · opcional
Perguntas adicionais que o candidato deve responder ao se candidatar. Use este campo para coletar informações que não estão no currículo. Cada item do array deve seguir exatamente um dos modelos abaixo.

Tipos disponíveis:

  • single_free — resposta livre em texto
    Use para perguntas abertas que aceitam apenas uma resposta.
  • single_defined — escolha única entre opções
    Use quando o candidato deve selecionar apenas uma opção.
  • multiple_free — múltiplas respostas em texto
    Use quando o candidato pode inserir vários itens à sua escolha.
  • multiple_defined — múltiplas escolhas entre opções
    Use quando a pessoa pode selecionar uma ou mais opções de uma lista.
  • date — seleção de uma data
    O campo format_date é obrigatório.
  • boolean — resposta verdadeira/falsa
    Ideal para perguntas de sim/não.
  • number — resposta numérica
    Para valores inteiros ou decimais.

Regras de composição:

  • label é obrigatório em todos os tipos de pergunta.
  • options é obrigatório apenas nos tipos que apresentam lista de escolhas.
  • format_date é utilizado exclusivamente no tipo date.
  • Você pode enviar quantas perguntas forem necessárias — o hiGen processa todas automaticamente.
  • Consulte a seção Entrega das aplicações para ver exemplos de como cada tipo retorna na resposta.

"application_question": [{
  "type": "single_free",
  "label": "Conte brevemente sobre sua experiência relevante para esta vaga."
}, {
  "type": "single_defined",
  "label": "Qual é o seu nível de disponibilidade atual?",
  "option": [
    "Disponível imediatamente",
    "Em até 15 dias",
    "Em até 30 dias",
    "Mais de 30 dias"
  ]
}, {
  "type": "multiple_free",
  "label": "Liste suas principais habilidades técnicas relacionadas à função."
}, {
  "type": "multiple_defined",
  "label": "Quais benefícios são mais importantes para você?",
  "option": [
    "Plano de saúde",
    "Flexibilidade / Home office",
    "Vale alimentação/refeição",
    "Bônus ou participação nos lucros"
  ]
}, {
  "type": "date",
  "label": "Qual a sua data de nascimento?",
  "format_date": "DD/MM/YYYY"
}, {
  "type": "boolean",
  "label": "Você tem disponibilidade para viagens ocasionais?"
}, {
  "type": "number",
  "label": "Qual sua pretensão salarial (em BRL)?"
}]
Exemplo de requisição

Editar vaga

Para atualizar uma vaga no hiGen, envie um JSON contendo o partner_job_id e apenas os campos que deseja modificar. Campos ausentes não são alterados.

partner_job_id string · obrigatório
Identificador único da vaga no sistema do parceiro. Deve ser exclusivo por parceiro e permanecer estável ao longo do tempo.
"partner_job_id": "12345"

Todos os demais campos seguem o mesmo formato da criação da vaga e são opcionais na atualização.

Exemplo de requisição

Remover vaga

Para remover uma vaga no hiGen, envie um JSON contendo o partner_job_id.

partner_job_id string · obrigatório
Identificador único da vaga no sistema do parceiro. Deve ser exclusivo por parceiro e permanecer estável ao longo do tempo.
"partner_job_id": "12345"
Exemplo de requisição

Retrato das vagas em produção

Para obter um resumo de como estão as vagas publicadas no ambiente de produção, envie uma requisição GET. Este endpoint retorna o total de vagas ativas e arquivadas em produção.

É obrigatório utilizar o token de produção. Tokens de sandbox não devem ser usados para consultar este retrato.

summary GET · sem body
Retorna um resumo numérico das vagas em produção vinculadas ao parceiro autenticado. A autenticação deve ser enviada no header com Authorization: Bearer SEU_TOKEN_PROD.
{
  "active": 10,
  "archived": 2
}
Exemplo de requisição

Status da aplicação

Para atualizar a fase de uma aplicação enviada ao parceiro, envie um JSON com o identificador da vaga no parceiro e o CPF do candidato. O hiGen localiza a vaga processada em produção por partner_id e partner_job_id, localiza o candidato pelo CPF e atualiza a aplicação correspondente.

É obrigatório utilizar o token de produção. Este endpoint atualiza apenas aplicações que já possuem status: "applied".

partner_job_id string · obrigatório
Identificador da vaga no sistema do parceiro.
"partner_job_id": "12345"
cpf string · obrigatório
CPF do candidato usado para localizar o user_id da aplicação. Pode ser enviado com ou sem pontuação.
"cpf": "123.456.789-09"
description string · obrigatório
Descrição da fase atual do processo ou motivo de rejeição.
"description": "Candidato avançou para entrevista técnica."
rejected boolean · obrigatório
Indica se o candidato foi rejeitado no processo.
"rejected": false
hired boolean · obrigatório
Indica se o candidato foi contratado no processo.
"hired": true
step number ou null · opcional
Etapa atual do processo. Pode ser null quando não houver controle por etapas.
"step": 2
total_steps number ou null · opcional
Total de etapas do processo. Pode ser null quando não houver controle por etapas.
"total_steps": 5
Exemplo de requisição

Resposta (exemplo)

{
  "success": true,
  "application_id": "68c9678a304895860ecb437c",
  "partner_job_id": "12345",
  "cpf": "12345678909",
  "application_status": {
    "description": "Candidato avançou para entrevista técnica.",
    "rejected": false,
    "hired": true,
    "step": 2,
    "total_steps": 5,
    "updated_at": "2026-06-09T12:00:00.000Z"
  },
  "mode": "production"
}