Como inscrever uma pessoa em uma vaga
O InHire possui uma página própria de divulgação de uma vaga, através dela o talento consegue se inscrever na vaga. A InHire hospeda toda a experiência de inscrição (formulário padrão, de diversidade e personalizado), então você não precisa construir nada.
Caso não deseje utilizar a página de divulgação, você pode inscrever um talento em uma vaga diretamente pela API.
Nesse guia iremos mostrar as duas formas de inscrever um talento em uma vaga.
Aqui trataremos os termos: TALENTO, VAGA e CANDIDATO.
Duas formas de inscrever uma pessoa
Forma 1: página de divulgação hospedada pela InHire
A InHire hospeda a página de divulgação de cada vaga. Você direciona o talento para essa página (por link, redirecionamento ou popup) e a InHire cuida de toda a inscrição, inclusive do formulário personalizado.
A URL segue o padrão:
https://<seu-tenant>.inhire.app/vagas/{jobId}/{slug-da-vaga}
Você obtém o jobId e os dados da vaga a partir da página de divulgação.
Caso você já tenha criado o candidato pela API e queira apenas delegar o formulário personalizado para a InHire, é possível abrir a URL hospedada do formulário em uma nova aba, redirecionamento ou popup (veja Como obtenho o formulário personalizado?). Não use iframe: o embed só é permitido em domínios da própria InHire, então em um site externo o formulário não carrega.
Forma 2: via API
Você constrói seu próprio formulário e usa a API para inscrever o talento. O restante deste guia detalha essa forma.
Composição de uma inscrição (criação de um candidato)
Uma inscrição é composta por:
- Formulário padrão
- Formulário de diversidade
- Formulário personalizado (opcional)
Formulário padrão
A inscrição é vastamente personalizável, do formulário padrão você pode escolher quais campos deseja solicitar ao talento, como:
- Linkedin do talento (pode marcar como obrigatório)
- Pretensão salarial do talento (poder marcar como obrigatório)
- Anexar currículo (pode marcar como obrigatório)
- Localização do talento (não pode marcar como obrigatório)
Formulário de diversidade
O Formulário de diversidade é um formulário que pode ser personalizado para coletar informações sobre diversidade do talento, como:
- Grupos de Diversidade
- Identidade de Gênero
- Orientação Sexual
- Cor ou Raça
- Deficiência
O formulário de diversidade deve ser habilitado para a vaga em questão. Estando habilitado você pode enviar as resposta do talento durante a inscrição.
Formulário Personalizado
O formulário personalizado coleta informações específicas da vaga, além dos formulários padrão e de diversidade. Ele é nativo da InHire: você obtém a definição dos campos e envia as respostas pela própria API (ou deixa a InHire hospedar o preenchimento, como na Forma 1). Esse formulário precisa estar configurado para a vaga.
Fluxo de uma inscrição
- Obtenha os dados da página de divulgação da vaga
- Renderize o formulário
- Obtenha a URL Assinada para upload do currículo
- Obtenha a URL Assinada para upload do laudo médico (se estiver utilizando)
- Faça o upload dos arquivos
- Submeta a inscrição, já com o resultado dos arquivos
- Obtenha o formulário personalizado da vaga (se estiver utilizando)
- Obtenha a definição do formulário personalizado (os campos)
- Renderize os campos e colete as respostas do talento
- Submeta as respostas do formulário personalizado
Montando o formulário de inscrição
Seu formulário pode ser montado conforme sua necessidade e as configurações da página de divulgação da vaga, e ao final submetido para o endpoint de inscrição de candidatura com o payload informado na API.
Como funciona o upload do currículo?
Você deve obter a URL Assinada de upload do currículo realizando uma chamada para seu respectivo endpoint com o atributo fileCategory como resumes.
A resposta desse endpoint deve ser utilizada para realizar o upload diretamente para o S3, que será devolvido com sucesso. Esses dados serão utilizados no payload da inscrição no atributo files.
Como funciona o upload do laudo médico?
Semelhante ao upload do currículo, porém o atributo fileCategory deve ser job-talent-diversity.
Como obtenho as questões do formulário de diversidade?
Quando você fizer a primeira chamada obtendo os dados da Página de Divulgação da Vaga, você receberá no payload o atributo diversity, o qual possuirá questions e introduction. Saiba mais sobre essa chamada aqui Obter dados da Página de Divulgação da Vaga.
Como obtenho o formulário personalizado?
O formulário personalizado é nativo da InHire. Há duas formas de tratá-lo, e você escolhe apenas uma.
Deixar a InHire hospedar o preenchimento
Nessa opção a InHire renderiza e submete o formulário por você. Abra a URL hospedada do formulário para o talento (em nova aba, redirecionamento ou popup):
https://form-app.inhire.app/form?type=subscription&jobId={jobId}&formId={formId}&talentId={talentId}&locale=pt-BR
Não use iframe: o embed só é permitido em domínios da própria InHire, então em um site externo o formulário não carrega. Abra como página (nova aba, redirecionamento ou popup).
Renderizar e submeter via API
Use esta opção apenas se você não usa o formulário hospedado (acima). Aqui você renderiza os campos na sua própria interface e faz a submissão pela API.
- Chame obter formulário personalizado da vaga. A resposta traz o
typeformId(que é o ID do formulário) e otype. - Chame obter a definição do formulário personalizado passando esse ID como
formId. A resposta trazfields, que são as perguntas a serem renderizadas. Cada campo tem umid, umtitle, umtypeevalidations. Campos de escolha (multiple_choice) trazem aindaproperties.choices(cada opção comid,refelabel) eproperties.allow_multiple_selection. Orefé apenas uma referência interna do campo; na hora de submeter, as respostas são identificadas peloid. O exemplo abaixo é um formulário de inscrição que usa todos os tipos de campo suportados:
{
"id": "c4e1a2b3-5d6f-4a7b-8c9d-0e1f2a3b4c5d",
"type": "subscription",
"fields": [
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"ref": "1",
"title": "Qual o link do seu perfil no LinkedIn?",
"type": "short_text",
"validations": { "required": true }
},
{
"id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"ref": "2",
"title": "Quantos anos de experiência você tem na área?",
"type": "number",
"validations": { "required": true }
},
{
"id": "3c4d5e6f-7a8b-4c9d-0e1f-2a3b4c5d6e7f",
"ref": "3",
"title": "Qual o seu nível de inglês?",
"type": "multiple_choice",
"validations": { "required": true },
"properties": {
"allow_multiple_selection": false,
"allow_other_choice": false,
"vertical_alignment": true,
"randomize": false,
"choices": [
{ "id": "a1111111-1111-4111-8111-111111111111", "ref": "3_1", "label": "Básico" },
{ "id": "a2222222-2222-4222-8222-222222222222", "ref": "3_2", "label": "Intermediário" },
{ "id": "a3333333-3333-4333-8333-333333333333", "ref": "3_3", "label": "Avançado" },
{ "id": "a4444444-4444-4444-8444-444444444444", "ref": "3_4", "label": "Fluente" }
]
}
},
{
"id": "4d5e6f7a-8b9c-4d0e-1f2a-3b4c5d6e7f8a",
"ref": "4",
"title": "Quais tecnologias você domina?",
"type": "multiple_choice",
"validations": { "required": false },
"properties": {
"allow_multiple_selection": true,
"allow_other_choice": false,
"vertical_alignment": true,
"randomize": false,
"choices": [
{ "id": "b1111111-1111-4111-8111-111111111111", "ref": "4_1", "label": "JavaScript" },
{ "id": "b2222222-2222-4222-8222-222222222222", "ref": "4_2", "label": "TypeScript" },
{ "id": "b3333333-3333-4333-8333-333333333333", "ref": "4_3", "label": "Python" },
{ "id": "b4444444-4444-4444-8444-444444444444", "ref": "4_4", "label": "Go" }
]
}
},
{
"id": "5e6f7a8b-9c0d-4e1f-2a3b-4c5d6e7f8a9b",
"ref": "5",
"title": "Descreva um desafio técnico que você resolveu recentemente.",
"type": "long_text",
"validations": { "required": true }
},
{
"id": "6f7a8b9c-0d1e-4f2a-3b4c-5d6e7f8a9b0c",
"ref": "6",
"title": "A partir de quando você pode começar?",
"type": "date",
"validations": { "required": false }
},
{
"id": "7a8b9c0d-1e2f-4a3b-4c5d-6e7f8a9b0c1d",
"ref": "7",
"title": "Anexe seu portfólio ou um trabalho relevante (PDF).",
"type": "file_upload",
"validations": { "required": false }
}
]
}
- Renderize os campos e colete as respostas do talento.
- Chame submeter formulário personalizado com o payload. O exemplo abaixo responde a todos os campos da definição acima (repare como cada chave de
answersé oiddo campo correspondente):
{
"formId": "c4e1a2b3-5d6f-4a7b-8c9d-0e1f2a3b4c5d",
"jobId": "7b2a1c9d-3e4f-4a5b-8c6d-9e0f1a2b3c4d",
"talentId": "f4e3d2c1-b0a9-4887-9665-4433221100ff",
"type": "subscription",
"answers": {
"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": "https://www.linkedin.com/in/joana-andrade",
"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e": "8",
"3c4d5e6f-7a8b-4c9d-0e1f-2a3b4c5d6e7f": "Avançado",
"4d5e6f7a-8b9c-4d0e-1f2a-3b4c5d6e7f8a": ["JavaScript", "TypeScript", "Go"],
"5e6f7a8b-9c0d-4e1f-2a3b-4c5d6e7f8a9b": "Liderei a migração de 40 repositórios para um monorepo Nx, reduzindo o tempo de build de 12 para 3 minutos.",
"6f7a8b9c-0d1e-4f2a-3b4c-5d6e7f8a9b0c": "2026-08-01",
"7a8b9c0d-1e2f-4a3b-4c5d-6e7f8a9b0c1d": "https://files.inhire.app/uploads/c4e1a2b3/portfolio-joana.pdf"
}
}
O answers mapeia o id de cada campo (fields[].id) para a resposta. O tipo do valor depende do type do campo:
short_text,long_text,numberedate: uma string (número e data também vão como string, por exemplo"8"e"2026-08-01").multiple_choicecomallow_multiple_selection: false: uma string com olabelda opção escolhida (choices[].label), não oidda opção.multiple_choicecomallow_multiple_selection: true: um array de strings com oslabeldas opções escolhidas.file_upload: uma string com a URL do arquivo. Faça o upload do arquivo pelo fluxo de URL assinada (o mesmo do currículo, descrito acima) e envie a URL resultante como resposta.
É essencial obter o talentId antes de submeter o formulário personalizado, pois ele é gerado após a inscrição.
As respostas ficam armazenadas no InHire e podem ser consultadas pela API em obter os resultados dos formulários do candidato.
Como enviar Campos Personalizados para serem salvos no Talento e/ou Candidatura?
Você pode enviar campos personalizados para serem salvos no talento e/ou candidatura. Para isso, você deve enviar esses campos no payload da inscrição, no atributo customFields.
Para obter quais Campos Personalizados estão disponíveis, você deve realizar uma chamada para o endpoint de obter campos personalizados.