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?