Trakstar Openings API

Manage job openings / positions

OpenAPI Specification

trakstar-openings-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Trakstar Hire Auth Openings API
  description: The Trakstar Hire REST API (formerly Recruiterbox) enables developers to manage openings, candidates, candidate messages, internal notes, interviews, reviews, evaluations, and to-dos programmatically. It returns JSON responses and uses API key authentication generated from the account's Super Admin settings. The most common use cases include building custom career sites and syncing opening or candidate data with external systems.
  version: '2'
  contact:
    name: Trakstar Hire Support
    url: https://support.hire.trakstar.com/article/1617-accessing-the-hire-api
  license:
    name: Proprietary
servers:
- url: https://{companyName}.hire.trakstar.com/api/v2
  description: Trakstar Hire API v2
  variables:
    companyName:
      description: Your company subdomain name
      default: yourcompany
security:
- apiKey: []
tags:
- name: Openings
  description: Manage job openings / positions
paths:
  /openings:
    get:
      operationId: listOpenings
      summary: List Openings
      description: Returns a paginated list of all job openings in the account.
      tags:
      - Openings
      parameters:
      - name: limit
        in: query
        description: Number of results per page.
        required: false
        schema:
          type: integer
          default: 10
          maximum: 100
      - name: offset
        in: query
        description: Number of results to skip for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: status
        in: query
        description: Filter openings by status.
        required: false
        schema:
          type: string
          enum:
          - open
          - closed
          - draft
      responses:
        '200':
          description: A list of openings.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of openings matching the query.
                  next:
                    type: string
                    nullable: true
                    description: URL for next page of results.
                  previous:
                    type: string
                    nullable: true
                    description: URL for previous page of results.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Opening'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOpening
      summary: Create Opening
      description: Creates a new job opening.
      tags:
      - Openings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpeningInput'
      responses:
        '201':
          description: Opening created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Opening'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /openings/{id}:
    get:
      operationId: getOpening
      summary: Get Opening
      description: Returns a single job opening by ID.
      tags:
      - Openings
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the opening.
        schema:
          type: integer
      responses:
        '200':
          description: A single opening.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Opening'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication credentials were not provided or are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was invalid or cannot be otherwise served.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Opening:
      type: object
      description: A job opening / position in the Trakstar Hire system.
      properties:
        id:
          type: integer
          description: Unique identifier for the opening.
          readOnly: true
        title:
          type: string
          description: Title of the job opening.
        status:
          type: string
          description: Current status of the opening.
          enum:
          - open
          - closed
          - draft
        department:
          type: string
          description: Department associated with this opening.
          nullable: true
        location:
          type: string
          description: Job location.
          nullable: true
        description:
          type: string
          description: Full job description.
          nullable: true
        created_at:
          type: string
          format: date-time
          description: Timestamp when the opening was created.
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the opening was last updated.
          readOnly: true
    Error:
      type: object
      properties:
        detail:
          type: string
          description: Human-readable error message.
    OpeningInput:
      type: object
      required:
      - title
      properties:
        title:
          type: string
          description: Title of the job opening.
        status:
          type: string
          description: Status of the opening.
          enum:
          - open
          - closed
          - draft
          default: draft
        department:
          type: string
          description: Department associated with this opening.
          nullable: true
        location:
          type: string
          description: Job location.
          nullable: true
        description:
          type: string
          description: Full job description.
          nullable: true
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key generated from the Trakstar Hire Super Admin settings page. Pass as "ApiKey {your_api_key}".
externalDocs:
  description: Trakstar Hire API Reference
  url: https://developers.recruiterbox.com/reference/introduction