---
title: "Creating an application"
method: POST
path: "/jobs/{jobId}/applications"
tags: ["Applications"]
---

# Creating an application

`POST /jobs/{jobId}/applications`

Creates a new application, given the job and the candidate. You can create the application using the candidate id (when the candidate is already assigned for another job) or making a manual insertion of the candidate (when there is no information about the candidate yet). Click [here](../docs/creating-an-application) for more information.

## Path parameters

- `jobId` integer, required

## Request body

- ApplicationPostRequest — Application to create
  - `notes` string — Notes about the application
  - `candidateId` integer — The id of the candidate to be added. This field cannot be used at same time of manualCandidate.
  - `manualCandidate` object — Candidate information. Use when the candidate is not applied yet for any other job. This field cannot be used at same time of candidateId.
    - `name` string, required — First name of the candidate
    - `lastName` string, required — Last name of the candidate
    - `email` string, required — E-mail of the candidate
    - `mobileNumber` string — Mobile phone number of the candidate (eg. +5511912345678)
    - `documentNumber` string — Document number of the candidate
    - `isBrazilian` boolean — Whether the candidate is Brazilian or not
    - `linkedinProfileUrl` string — LinkedIn profile URL
    - `insertionSource` 'candidate_active_contact' | 'events' | 'hunting' | 'market_referral_consulting' | 'employee_referral', required — Source of the application insertion

## Response `201`

A confirmation of successful insertion of the application

- ApplicationResponse — Application created
  - `id` integer — Application identifier
  - `tags` string[] — Application tags
  - `score` number, double, nullable — Score value of the application (null if not calculated yet)
  - `status` 'in_process' | 'give_up' | 'reproved' | 'hired' — Current application status
  - `currentStep` object — Current step of the application
    - `id` integer — Step identifier
    - `name` string — Step name
    - `status` 'approved' | 'done' | 'not_started' | 'started' — Status of the application step
  - `candidate` object — Candidate information
    - `id` integer — Candidate identifier
    - `name` string — First name of the candidate
    - `lastName` string — Last name of the candidate
    - `email` string, email — E-mail of the candidate
    - `mobileNumber` string — Mobile phone number of the candidate (eg. +5511912345678)
    - `linkedinProfileUrl` string — LinkedIn profile URL
  - `manualCandidate` object — Manual insertion candidate information
    - `id` integer — Candidate identifier
    - `name` string — First name of the candidate
    - `lastName` string — Last name of the candidate
    - `email` string, email — E-mail of the candidate
    - `mobileNumber` string — Mobile phone number of the candidate (eg. +5511912345678)
    - `documentNumber` string — Document number of the candidate
    - `linkedinProfileUrl` string — LinkedIn profile URL
    - `insertionSource` 'candidate_active_contact' | 'events' | 'hunting' | 'market_referral_consulting' | 'employee_referral' | 'chrome_extension' — Source of the application insertion

## Other responses

- `400` — BadRequest / Invalid Input
- `401` — Unauthorized
- `403` — Forbidden
- `404` — NotFound / Resource not found
- `409` — Conflict

---

[API](https://skmtc.net/gupy/apis/gupy-public-api.md) · [All operations](https://skmtc.net/gupy/apis/gupy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gupy/gupy-public-api/revisions/3f26defa2a42/schema)
