openapi: 3.0.3 info: title: Trakstar Hire Auth Candidates 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: Candidates description: Manage job candidates paths: /candidates: get: operationId: listCandidates summary: List Candidates description: Returns a paginated list of candidates, optionally filtered by opening. tags: - Candidates parameters: - name: opening in: query description: Filter candidates by opening ID. required: false schema: type: integer - 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 responses: '200': description: A list of candidates. content: application/json: schema: type: object properties: count: type: integer next: type: string nullable: true previous: type: string nullable: true results: type: array items: $ref: '#/components/schemas/Candidate' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createCandidate summary: Create Candidate description: Creates a new candidate record. tags: - Candidates requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CandidateInput' responses: '201': description: Candidate created successfully. content: application/json: schema: $ref: '#/components/schemas/Candidate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /candidates/{id}: get: operationId: getCandidate summary: Get Candidate description: Returns a single candidate by ID. tags: - Candidates parameters: - name: id in: path required: true description: The unique identifier of the candidate. schema: type: integer responses: '200': description: A single candidate. content: application/json: schema: $ref: '#/components/schemas/Candidate' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateCandidate summary: Update Candidate description: Partially updates a candidate record. tags: - Candidates parameters: - name: id in: path required: true description: The unique identifier of the candidate. schema: type: integer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CandidateInput' responses: '200': description: Candidate updated successfully. content: application/json: schema: $ref: '#/components/schemas/Candidate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteCandidate summary: Delete Candidate description: Deletes a candidate record. tags: - Candidates parameters: - name: id in: path required: true description: The unique identifier of the candidate. schema: type: integer responses: '204': description: Candidate deleted successfully. '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: CandidateInput: type: object required: - first_name - last_name - opening properties: first_name: type: string description: Candidate's first name. last_name: type: string description: Candidate's last name. email: type: string format: email description: Candidate's email address. phone: type: string description: Candidate's phone number. nullable: true opening: type: integer description: ID of the opening the candidate is applying to. source: type: string description: Source of the candidate application. nullable: true Error: type: object properties: detail: type: string description: Human-readable error message. Candidate: type: object description: A candidate applying to a job opening. properties: id: type: integer description: Unique identifier for the candidate. readOnly: true first_name: type: string description: Candidate's first name. last_name: type: string description: Candidate's last name. email: type: string format: email description: Candidate's email address. phone: type: string description: Candidate's phone number. nullable: true opening: type: integer description: ID of the opening the candidate is applying to. stage: type: string description: Current stage of the candidate in the hiring pipeline. nullable: true source: type: string description: Source of the candidate application. nullable: true created_at: type: string format: date-time description: Timestamp when the candidate record was created. readOnly: true updated_at: type: string format: date-time description: Timestamp when the candidate record was last updated. readOnly: 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