Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/chamals3n4/OpenATS/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Pipeline endpoints allow you to create, update, and manage custom hiring stages for each job opening. Each job can have its own pipeline with stages like “Initial Screening”, “Technical Interview”, “Offer”, etc.

Get Job Pipeline

curl -X GET http://localhost:8080/api/jobs/1/pipeline
Retrieve all hiring stages configured for a specific job opening.

Path Parameters

jobId
integer
required
The unique identifier of the job

Response

{
  "data": [
    {
      "id": 1,
      "jobId": 1,
      "name": "Initial Screening",
      "position": 1,
      "stageType": "source",
      "offerTemplateId": null,
      "offerMode": null,
      "offerExpiryDays": null,
      "rejectionTemplateId": null
    },
    {
      "id": 2,
      "jobId": 1,
      "name": "Technical Assessment",
      "position": 2,
      "stageType": "assessment",
      "offerTemplateId": null,
      "offerMode": null,
      "offerExpiryDays": null,
      "rejectionTemplateId": null
    }
  ]
}

Create Pipeline Stage

curl -X POST http://localhost:8080/api/jobs/1/pipeline \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Initial Screening",
    "position": 2,
    "stageType": "source"
  }'
Create a new custom stage in the job’s hiring pipeline.

Path Parameters

jobId
integer
required
The unique identifier of the job

Body Parameters

name
string
required
Name of the pipeline stage (max 100 characters)
position
integer
required
Position/order of the stage in the pipeline (must be positive)
stageType
string
default:"none"
Type of stage. Options: none, source, assessment, interview, offer, rejection
offerTemplateId
integer
Template ID to use when auto-generating offers at this stage
offerMode
string
Offer automation mode. Options: auto_draft, auto_send

Response

{
  "data": {
    "id": 3,
    "jobId": 1,
    "name": "Initial Screening",
    "position": 2,
    "stageType": "source",
    "offerTemplateId": null,
    "offerMode": null,
    "offerExpiryDays": null,
    "rejectionTemplateId": null
  }
}

Update Pipeline Stage

curl -X PUT http://localhost:8080/api/jobs/1/pipeline/3 \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Phone Screening",
    "position": 1,
    "stageType": "interview"
  }'
Update an existing pipeline stage configuration.

Path Parameters

jobId
integer
required
The unique identifier of the job
stageId
integer
required
The unique identifier of the pipeline stage

Body Parameters

name
string
Updated name for the stage (max 100 characters)
position
integer
Updated position in the pipeline
stageType
string
Updated stage type. Options: none, source, assessment, interview, offer, rejection
offerTemplateId
integer
Template to use for offer generation
offerMode
string
Offer automation mode. Options: auto_draft, auto_send
offerExpiryDays
integer
Number of days until auto-generated offers expire
rejectionTemplateId
integer
Email template to use for rejection notifications

Response

{
  "data": {
    "id": 3,
    "jobId": 1,
    "name": "Phone Screening",
    "position": 1,
    "stageType": "interview",
    "offerTemplateId": null,
    "offerMode": null,
    "offerExpiryDays": null,
    "rejectionTemplateId": null
  }
}

Delete Pipeline Stage

curl -X DELETE http://localhost:8080/api/jobs/1/pipeline/3
Remove a stage from the job’s pipeline. Cannot delete stages that have candidate history.

Path Parameters

jobId
integer
required
The unique identifier of the job
stageId
integer
required
The unique identifier of the pipeline stage to delete

Response

{
  "data": {
    "id": 3,
    "jobId": 1,
    "name": "Phone Screening",
    "position": 1,
    "stageType": "interview"
  }
}

Error Responses

409 Conflict
Returned when attempting to delete a stage that has candidate history. Move candidates to another stage first.
404 Not Found
Stage or job not found

Build docs developers (and LLMs) love