SmartRecruiters Jobs API

The Jobs API from SmartRecruiters — 5 operation(s) for jobs.

OpenAPI Specification

smartrecruiters-jobs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SmartRecruiters Candidate Applications Jobs 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: Jobs
paths:
  /jobs:
    get:
      operationId: listJobs
      summary: List Jobs
      description: Returns a paginated list of jobs. Supports filtering by status, department, location, hiring manager, and other criteria.
      tags:
      - Jobs
      parameters:
      - name: q
        in: query
        required: false
        description: Full-text search query
        schema:
          type: string
      - name: limit
        in: query
        required: false
        description: Maximum number of results to return
        schema:
          type: integer
          default: 10
          maximum: 100
      - name: offset
        in: query
        required: false
        description: Number of results to skip for pagination
        schema:
          type: integer
          default: 0
      - name: status
        in: query
        required: false
        description: Filter by job status
        schema:
          type: string
          enum:
          - CREATED
          - SOURCING
          - INTERVIEW
          - OFFER
          - HIRED
          - CANCELLED
      - name: department
        in: query
        required: false
        description: Filter by department ID
        schema:
          type: string
      responses:
        '200':
          description: List of jobs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobListResult'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '429':
          description: Too many requests
    post:
      operationId: createJob
      summary: Create Job
      description: Creates a new job in the SmartRecruiters system.
      tags:
      - Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobCreate'
      responses:
        '201':
          description: Job created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /jobs/{jobId}:
    get:
      operationId: getJob
      summary: Get Job
      description: Retrieves detailed information about a specific job.
      tags:
      - Jobs
      parameters:
      - name: jobId
        in: path
        required: true
        description: The unique job identifier
        schema:
          type: string
      responses:
        '200':
          description: Job details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Job not found
    patch:
      operationId: updateJob
      summary: Update Job
      description: Updates properties of an existing job.
      tags:
      - Jobs
      parameters:
      - name: jobId
        in: path
        required: true
        description: The unique job identifier
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobUpdate'
      responses:
        '200':
          description: Job updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Job not found
  /jobs/{jobId}/status:
    put:
      operationId: updateJobStatus
      summary: Update Job Status
      description: Updates the status of a job, moving it through the hiring workflow.
      tags:
      - Jobs
      parameters:
      - name: jobId
        in: path
        required: true
        description: The unique job identifier
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  type: string
                  enum:
                  - SOURCING
                  - INTERVIEW
                  - OFFER
                  - HIRED
                  - CANCELLED
      responses:
        '200':
          description: Job status updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Job not found
  /jobs/{jobId}/hiring-team:
    get:
      operationId: getJobHiringTeam
      summary: Get Job Hiring Team
      description: Returns the hiring team members assigned to a specific job.
      tags:
      - Jobs
      parameters:
      - name: jobId
        in: path
        required: true
        description: The unique job identifier
        schema:
          type: string
      responses:
        '200':
          description: Hiring team members
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobOwner:
                    $ref: '#/components/schemas/TeamMember'
                  hiringManagers:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamMember'
                  recruiters:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamMember'
                  coordinators:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamMember'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Job not found
  /jobs/{jobId}/candidates:
    get:
      operationId: listJobCandidates
      summary: List Job Candidates
      description: Returns a paginated list of candidates who have applied to a specific job.
      tags:
      - Jobs
      parameters:
      - name: jobId
        in: path
        required: true
        description: The unique job identifier
        schema:
          type: string
      - name: status
        in: query
        required: false
        description: Filter by candidate status
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: List of candidates for the job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CandidateListResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Job not found
components:
  schemas:
    Job:
      type: object
      properties:
        id:
          type: string
          description: Unique job identifier
        title:
          type: string
          description: Job title
        refNumber:
          type: string
          description: External reference number
        createdOn:
          type: string
          format: date-time
        updatedOn:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - CREATED
          - SOURCING
          - INTERVIEW
          - OFFER
          - HIRED
          - CANCELLED
        department:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
        location:
          type: object
          properties:
            id:
              type: string
            city:
              type: string
            country:
              type: string
            region:
              type: string
            remote:
              type: boolean
        industry:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
        function:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
        experienceLevel:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
        typeOfEmployment:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
        hiringTeam:
          type: object
          properties:
            jobOwner:
              $ref: '#/components/schemas/TeamMember'
            hiringManagers:
              type: array
              items:
                $ref: '#/components/schemas/TeamMember'
            recruiters:
              type: array
              items:
                $ref: '#/components/schemas/TeamMember'
        numberOfOpenings:
          type: integer
    CandidateListResult:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        totalFound:
          type: integer
        content:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              firstName:
                type: string
              lastName:
                type: string
              email:
                type: string
              status:
                type: string
              appliedOn:
                type: string
                format: date-time
    JobCreate:
      type: object
      required:
      - title
      - department
      - location
      properties:
        title:
          type: string
        refNumber:
          type: string
        department:
          type: object
          properties:
            id:
              type: string
        location:
          type: object
          properties:
            id:
              type: string
            remote:
              type: boolean
        industry:
          type: object
          properties:
            id:
              type: string
        function:
          type: object
          properties:
            id:
              type: string
        experienceLevel:
          type: object
          properties:
            id:
              type: string
        typeOfEmployment:
          type: object
          properties:
            id:
              type: string
        jobAd:
          type: object
          properties:
            sections:
              type: object
              properties:
                jobDescription:
                  type: object
                  properties:
                    text:
                      type: string
                qualifications:
                  type: object
                  properties:
                    text:
                      type: string
    JobListResult:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        totalFound:
          type: integer
        content:
          type: array
          items:
            $ref: '#/components/schemas/Job'
    JobUpdate:
      type: object
      properties:
        title:
          type: string
        refNumber:
          type: string
        department:
          type: object
          properties:
            id:
              type: string
    TeamMember:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
          format: email
        role:
          type: string
  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