SmartRecruiters Applications API

The Applications API from SmartRecruiters — 3 operation(s) for applications.

OpenAPI Specification

smartrecruiters-applications-api-openapi.yml Raw ↑
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