SmartRecruiters Applications API
The Applications API from SmartRecruiters — 3 operation(s) for applications.
The Applications API from SmartRecruiters — 3 operation(s) for applications.
openapi: 3.0.3
info:
title: SmartRecruiters Candidate Applications API
description: The SmartRecruiters Candidate API enables customers to import, export, read, and update candidate data. Provides full candidate profile management including personal information, application history, notes, and attachments.
version: 1.0.0
contact:
name: SmartRecruiters Developer Support
url: https://developers.smartrecruiters.com/
servers:
- url: https://api.smartrecruiters.com
description: SmartRecruiters Production API
security:
- ApiKey: []
tags:
- name: Applications
paths:
/candidates/{candidateId}/applications:
get:
operationId: listCandidateApplications
summary: List Candidate Applications
description: Returns all job applications associated with a specific candidate.
tags:
- Applications
parameters:
- name: candidateId
in: path
required: true
description: The unique candidate identifier
schema:
type: string
responses:
'200':
description: List of applications
content:
application/json:
schema:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/Application'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Candidate not found
/v1/companies/{companyIdentifier}/postings/{postingId}/candidates:
post:
operationId: submitApplication
summary: Submit Job Application
description: Creates a new candidate application for a specific job posting. Supports submission of candidate profile, screening question answers, and resume/CV attachments.
tags:
- Applications
parameters:
- name: companyIdentifier
in: path
required: true
description: The company identifier
schema:
type: string
- name: postingId
in: path
required: true
description: The unique posting ID or UUID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationSubmission'
responses:
'201':
description: Application submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationResult'
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Posting not found
'429':
description: Too many requests
/v1/companies/{companyIdentifier}/postings/{postingId}/candidates/{candidateId}/status:
get:
operationId: getApplicationStatus
summary: Get Application Status
description: Retrieves the current application status of a specific candidate for a specific job posting.
tags:
- Applications
parameters:
- name: companyIdentifier
in: path
required: true
description: The company identifier
schema:
type: string
- name: postingId
in: path
required: true
description: The unique posting ID or UUID
schema:
type: string
- name: candidateId
in: path
required: true
description: The candidate ID
schema:
type: string
responses:
'200':
description: Application status
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationStatus'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Application not found
components:
schemas:
Answer:
type: object
properties:
id:
type: string
description: Question ID
answer:
oneOf:
- type: string
- type: array
items:
type: string
- type: boolean
SourceDetails:
type: object
properties:
type:
type: string
description: The source type (e.g., DIRECT, REFERRAL, LINKEDIN)
subtype:
type: string
refId:
type: string
Location:
type: object
properties:
country:
type: string
description: ISO 3166-1 alpha-2 country code
countryCode:
type: string
region:
type: string
city:
type: string
address:
type: string
postalCode:
type: string
remote:
type: boolean
description: Whether the position is remote
ApplicationSubmission:
type: object
required:
- firstName
- lastName
- email
properties:
firstName:
type: string
description: Candidate first name
lastName:
type: string
description: Candidate last name
email:
type: string
format: email
description: Candidate email address
phone:
type: string
description: Candidate phone number
location:
$ref: '#/components/schemas/Location'
web:
type: object
properties:
linkedIn:
type: string
format: uri
facebook:
type: string
format: uri
portfolio:
type: string
format: uri
tags:
type: array
items:
type: string
answers:
type: array
description: Answers to screening questions
items:
$ref: '#/components/schemas/Answer'
ApplicationStatus:
type: object
properties:
candidateId:
type: string
postingId:
type: string
status:
type: string
enum:
- IN_PROGRESS
- REJECTED
- OFFERED
- HIRED
reasonForRejection:
type: object
properties:
id:
type: string
label:
type: string
ApplicationResult:
type: object
properties:
id:
type: string
description: Application ID
candidateId:
type: string
description: Candidate ID
postingId:
type: string
description: Posting ID
status:
type: string
description: Initial application status
Application:
type: object
properties:
id:
type: string
candidateId:
type: string
jobId:
type: string
jobTitle:
type: string
status:
type: string
enum:
- IN_PROGRESS
- REJECTED
- OFFERED
- HIRED
appliedOn:
type: string
format: date-time
updatedOn:
type: string
format: date-time
source:
$ref: '#/components/schemas/SourceDetails'
securitySchemes:
ApiKey:
type: apiKey
in: header
name: X-SmartToken
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://www.smartrecruiters.com/identity/oauth/token
scopes:
candidates.read: Read candidate data
candidates.write: Write candidate data