Endpoint
POST https://api.quickin.io/public/{account_id}/applyParâmetros da URL
Parâmetro | Tipo | Exemplo | Descrição |
account_id | String |
| 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:
Enviar o PDF no endpoint de mídia.
Receber o objeto da mídia enviada.
Capturar o valor
_idda mídia.Enviar esse ID no campo
resume_media_id.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/multipartO 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 |
String | E-mail do candidato | 2-255 chars | ||
phones | Array |
| Telefones de contato | 2-30 chars por item |
country | String | BR | País | Usar |
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 |
experience_level | String | mid | Nível de experiência | Usar |
disability | Array |
| Tipo(s) de deficiência |
|
disability_comment | String | Usa leitor de tela | Observação sobre deficiência | max 500 chars |
pages | Array |
| 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 | Experiências profissionais | — |
educations | Array | Ver objeto | Formações acadêmicas | — |
languages | Array | Ver objeto | Idiomas | — |
job_question_{question_id} | String/Number/Boolean/Array |
| 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 |
current_job | Boolean | Indica se é o emprego atual | Não |
|
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 |
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 |
incomplete | Boolean | Indica se o curso está incompleto | Não |
|
Objeto languages
Campo | Tipo | Descrição | Obrigatório | Limites |
language | String | Código do idioma | Sim | Usar |
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
}
]
}