Passar para o conteúdo principal

Endpoint Candidatura [POST]

W
Escrito por William Coelho

Endpoint

POST https://api.quickin.io/public/{account_id}/apply

Parâmetros da URL

Parâmetro

Tipo

Exemplo

Descrição

account_id

String

5cc06fb40843440011f80765

ID da conta Quickin


Autenticação

Não é necessário autenticação para candidatura pública.


Fluxo recomendado

Caso o candidato envie currículo em PDF, o arquivo deve ser enviado antes da candidatura para obter o ID da mídia.

Fluxo:

  1. Enviar o PDF no endpoint de mídia.

  2. Receber o objeto da mídia enviada.

  3. Capturar o valor _id da mídia.

  4. Enviar esse ID no campo resume_media_id.

  5. Enviar a candidatura no endpoint /apply.


Upload de currículo em PDF

Antes de enviar a candidatura, envie o currículo no endpoint abaixo:

POST https://api.quickin.io/public/{account_id}/media/multipart

O body deve ser enviado como multipart/form-data, usando o campo file.

Campo

Tipo

Obrigatório

Descrição

file

File

Sim

Arquivo do currículo, geralmente em PDF

Exemplo de upload do PDF

const accountId = "5cc06fb40843440011f80765";

const formData = new FormData();
formData.append("file", fileInput.files[0]);

const mediaResponse = await fetch(
`https://api.quickin.io/public/${accountId}/media/multipart`,
{
method: "POST",
headers: {
"accept": "application/json"
},
body: formData
}
);

const resumeMedia = await mediaResponse.json();

console.log(resumeMedia);

Exemplo de retorno da mídia

{
"_id": "6a3146b78694870013b3c2b1",
"account_id": "5cc06fb40843440011f80765",
"title": "curriculo.pdf",
"mime_type": "application/pdf",
"url": "https://quickin-media-production.s3.sa-east-1.amazonaws.com/exemplo/curriculo.pdf",
"created_at": "2026-06-16T12:51:03.231Z",
"updated_at": "2026-06-16T12:51:03.231Z"
}

O valor _id retornado deve ser enviado no campo resume_media_id da candidatura.

Exemplo:

{
"resume_media_id": "6a3146b78694870013b3c2b1"
}

Headers da candidatura

Content-Type: application/json Accept: application/json

Campos do body da candidatura

Campo

Tipo

Exemplo

Descrição

Limites

name *

String

João Silva

Nome do candidato

2-100 chars

email

String

E-mail do candidato

2-255 chars

phones

Array

["+55 11999999999"]

Telefones de contato

2-30 chars por item

country

String

BR

País

Usar key de resources

region

String

São Paulo

Estado

—

city

String

São Paulo

Cidade

—

neighborhood

String

Vila Madalena

Bairro

—

address

String

Rua das Flores, 123

Endereço

max 200 chars

zipcode

String

01310100

CEP

—

headline

String

Desenvolvedor Full Stack

Título profissional

max 120 chars

summary

String

Profissional com 5 anos de experiência...

Resumo do candidato

max 3200 chars

salary

Number

5000

Pretensão salarial

0-99999999

position_category

String

technology

Categoria profissional

Usar key de resources

experience_level

String

mid

Nível de experiência

Usar key de resources

disability

Array

["vision"]

Tipo(s) de deficiência

hearing, vision, intellectual, physical

disability_comment

String

Usa leitor de tela

Observação sobre deficiência

max 500 chars

pages

Array

["https://linkedin.com/in/joao"]

Perfis e links externos

2-500 chars por item

job_id

String

6a29567e7e312b00134f14dc

ID da vaga vinculada

MongoId

resume_media_id

String

6a3146b78694870013b3c2b1

ID da mídia do currículo enviado

MongoId

photo_media_id

String

6a314690d9f7d00012521529

ID da mídia da foto do candidato

MongoId

experiences

Array

Ver objeto experiences

Experiências profissionais

—

educations

Array

Ver objeto educations

Formações acadêmicas

—

languages

Array

Ver objeto languages

Idiomas

—

job_question_{question_id}

String/Number/Boolean/Array

"4535345"

Resposta de uma questão da candidatura

Campo dinâmico


Questões de candidatura

As questões de candidatura devem ser enviadas como campos dinâmicos na raiz do body.

O nome do campo deve seguir o formato:

job_question_{question_id}

Onde {question_id} é o ID da questão da vaga.

Exemplo:

{
"job_question_68a75a8db6d5570013b3d4e7": "4535345"
}

Caso a vaga possua mais de uma questão, envie uma propriedade para cada questão:

{
"job_question_68a75a8db6d5570013b3d4e7": "4535345",
"job_question_68a75a9cb6d5570013b3d4e8": "Sim",
"job_question_68a75aa4b6d5570013b3d4e9": "Disponibilidade imediata"
}

Esses campos devem ser enviados junto com os demais dados da candidatura.


Campos do tipo key

Alguns campos devem receber a chave técnica, chamada de key, e não o texto exibido para o candidato.

As opções devem ser consultadas no endpoint:

GET https://api.quickin.io/resources

Objeto experiences

Campo

Tipo

Descrição

Obrigatório

Limites

company

String

Nome da empresa

Sim

2-100 chars

position

String

Cargo ocupado

Sim

2-100 chars

attributes

String

Descrição das atividades

Não

max 3200 chars

start_date

String date-time

Data de início

Não

ISO 8601

end_date

String date-time/null

Data de término

Não

ISO 8601 ou null

current_job

Boolean

Indica se é o emprego atual

Não

true ou false


Objeto educations

Campo

Tipo

Descrição

Obrigatório

Limites

course

String

Nome do curso

Sim

2-100 chars

education_degree

String

Grau de escolaridade

Não

Usar key de resources

institution

String

Nome da instituição

Não

max 100 chars

start_date

String date-time

Data de início

Não

ISO 8601

end_date

String date-time/null

Data de conclusão

Não

ISO 8601 ou null

incomplete

Boolean

Indica se o curso está incompleto

Não

true ou false


Objeto languages

Campo

Tipo

Descrição

Obrigatório

Limites

language

String

Código do idioma

Sim

Usar key de resources

level

Number

Nível de proficiência

Sim

1-4

Níveis de idioma

Valor

Descrição

1

Básico

2

Intermediário

3

Avançado

4

Fluente


Exemplo de body da candidatura

{
"name": "João Silva",
"email": "joao@email.com",
"phones": [
"+55 11999999999"
],
"country": "BR",
"region": "São Paulo",
"city": "São Paulo",
"neighborhood": "Vila Madalena",
"address": "Rua das Flores, 123",
"zipcode": "01310100",
"headline": "Desenvolvedor Full Stack",
"summary": "Profissional com experiência em desenvolvimento de sistemas.",
"salary": 5000,
"position_category": "technology",
"experience_level": "mid",
"disability": [
"vision"
],
"disability_comment": "Usa leitor de tela",
"pages": [
"https://linkedin.com/in/joao"
],
"job_id": "6a29567e7e312b00134f14dc",
"resume_media_id": "6a3146b78694870013b3c2b1",
"job_question_68a75a8db6d5570013b3d4e7": "4535345",
"experiences": [
{
"company": "Empresa XYZ",
"position": "Desenvolvedor Pleno",
"attributes": "Desenvolvimento de APIs REST e integração com sistemas internos.",
"start_date": "2020-03-01T00:00:00.000Z",
"end_date": null,
"current_job": true
}
],
"educations": [
{
"course": "Ciência da Computação",
"education_degree": "bachelor_degree",
"institution": "USP",
"start_date": "2010-02-01T00:00:00.000Z",
"end_date": "2014-12-01T00:00:00.000Z",
"incomplete": false
}
],
"languages": [
{
"language": "pt",
"level": 4
},
{
"language": "en",
"level": 3
}
]
}
Respondeu à sua pergunta?