Skip to content

Vacancies

Manage open positions and the hiring pipeline. Vacancies represent roles that need to be filled, with target dates, salary ranges, and team assignments.

Endpoints

MethodPathDescription
GET/org/:orgId/vacanciesList vacancies
GET/org/:orgId/vacancies/:idGet vacancy
POST/org/:orgId/vacanciesCreate vacancy
PATCH/org/:orgId/vacancies/:idUpdate vacancy
DELETE/org/:orgId/vacancies/:idDelete vacancy

List Vacancies

GET /org/:orgId/vacancies

Returns a paginated list of vacancies in the organization.

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Records per page (max 200)
searchstringSearch by role or description
sortBystringroleSort field
sortDirstringascasc or desc
scenarioIdstringScenario ID for what-if queries

Example Request

bash
curl -X GET "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/vacancies?sortBy=targetStartDate&sortDir=asc" \
  -H "Authorization: Bearer private_..."

Example Response

json
{
  "data": [
    {
      "id": "clx5v6w7x8y9z0a1",
      "role": "Senior Backend Engineer",
      "description": "Backend engineer for the payments team, focusing on billing infrastructure.",
      "status": "open",
      "fte": 1.0,
      "targetStartDate": "2026-06-01",
      "targetFillDate": "2026-05-15",
      "jobRoleId": "clx9r8q7w6e5",
      "workTypeId": "clx2w3x4y5z6",
      "geographyId": "clx3g2h1j0k9",
      "salaryMin": "120000.00",
      "salaryMax": "160000.00",
      "currencyCode": "USD",
      "filledByLiveEmployeeId": null,
      "hiringManagerId": "clx9m4n5o6p7",
      "metadata": {},
      "createdAt": "2026-01-15T10:00:00Z",
      "updatedAt": "2026-03-01T16:45:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 23,
    "hasNextPage": true
  }
}

Get Vacancy

GET /org/:orgId/vacancies/:id

Returns a single vacancy by ID.

Example Request

bash
curl -X GET "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/vacancies/clx5v6w7x8y9z0a1" \
  -H "Authorization: Bearer private_..."

Example Response

json
{
  "data": {
    "id": "clx5v6w7x8y9z0a1",
    "role": "Senior Backend Engineer",
    "description": "Backend engineer for the payments team, focusing on billing infrastructure.",
    "status": "open",
    "fte": 1.0,
    "targetStartDate": "2026-06-01",
    "targetFillDate": "2026-05-15",
    "jobRoleId": "clx9r8q7w6e5",
    "workTypeId": "clx2w3x4y5z6",
    "geographyId": "clx3g2h1j0k9",
    "salaryMin": "120000.00",
    "salaryMax": "160000.00",
    "currencyCode": "USD",
    "filledByLiveEmployeeId": null,
    "hiringManagerId": "clx9m4n5o6p7",
    "metadata": {},
    "createdAt": "2026-01-15T10:00:00Z",
    "updatedAt": "2026-03-01T16:45:00Z"
  }
}

Create Vacancy

POST /org/:orgId/vacancies

Creates a new vacancy record.

Request Body

json
{
  "role": "DevOps Engineer",
  "description": "Cloud infrastructure engineer to support the platform team.",
  "status": "open",
  "fte": 1.0,
  "targetStartDate": "2026-09-01",
  "targetFillDate": "2026-08-15",
  "jobRoleId": "clx9r8q7w6e5",
  "workTypeId": "clx2w3x4y5z6",
  "geographyId": "clx3g2h1j0k9",
  "salaryMin": "110000.00",
  "salaryMax": "145000.00",
  "currencyCode": "USD",
  "hiringManagerId": "clx9m4n5o6p7"
}

Example Request

bash
curl -X POST "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/vacancies" \
  -H "Authorization: Bearer private_..." \
  -H "Content-Type: application/json" \
  -d '{
    "role": "DevOps Engineer",
    "description": "Cloud infrastructure engineer to support the platform team.",
    "status": "open",
    "fte": 1.0,
    "targetStartDate": "2026-09-01",
    "salaryMin": "110000.00",
    "salaryMax": "145000.00",
    "currencyCode": "USD"
  }'

Example Response

json
{
  "data": {
    "id": "clx2b3c4d5e6f7g8",
    "role": "DevOps Engineer",
    "description": "Cloud infrastructure engineer to support the platform team.",
    "status": "open",
    "fte": 1.0,
    "targetStartDate": "2026-09-01",
    "targetFillDate": null,
    "jobRoleId": null,
    "workTypeId": null,
    "geographyId": null,
    "salaryMin": "110000.00",
    "salaryMax": "145000.00",
    "currencyCode": "USD",
    "filledByLiveEmployeeId": null,
    "hiringManagerId": null,
    "metadata": {},
    "createdAt": "2026-03-11T09:30:00Z",
    "updatedAt": "2026-03-11T09:30:00Z"
  }
}

Status: 201 Created


Update Vacancy

PATCH /org/:orgId/vacancies/:id

Updates one or more fields on an existing vacancy. Only include the fields you want to change.

Example Request

bash
curl -X PATCH "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/vacancies/clx5v6w7x8y9z0a1" \
  -H "Authorization: Bearer private_..." \
  -H "Content-Type: application/json" \
  -d '{
    "status": "filled",
    "filledByLiveEmployeeId": "clx7n8m9k0j1h2g3"
  }'

Example Response

json
{
  "data": {
    "id": "clx5v6w7x8y9z0a1",
    "role": "Senior Backend Engineer",
    "description": "Backend engineer for the payments team, focusing on billing infrastructure.",
    "status": "filled",
    "fte": 1.0,
    "targetStartDate": "2026-06-01",
    "targetFillDate": "2026-05-15",
    "jobRoleId": "clx9r8q7w6e5",
    "workTypeId": "clx2w3x4y5z6",
    "geographyId": "clx3g2h1j0k9",
    "salaryMin": "120000.00",
    "salaryMax": "160000.00",
    "currencyCode": "USD",
    "filledByLiveEmployeeId": "clx7n8m9k0j1h2g3",
    "hiringManagerId": "clx9m4n5o6p7",
    "metadata": {},
    "createdAt": "2026-01-15T10:00:00Z",
    "updatedAt": "2026-03-11T09:35:00Z"
  }
}

Delete Vacancy

DELETE /org/:orgId/vacancies/:id

Deletes a vacancy record.

Example Request

bash
curl -X DELETE "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/vacancies/clx5v6w7x8y9z0a1" \
  -H "Authorization: Bearer private_..."

Status: 204 No Content


Field Reference

FieldTypeRequiredDescription
idstringUnique identifier (read-only)
rolestringYesJob title or role name
descriptionstringNoDescription of the position
statusstringYesStatus: "open", "filled", "cancelled", "on_hold"
ftenumberNoFull-time equivalent (default: 1.0)
targetStartDatedateNoWhen the hire should start (ISO 8601)
targetFillDatedateNoWhen the position should be filled by
jobRoleIdstringNoID of the job role
workTypeIdstringNoID of the work type
geographyIdstringNoID of the geography/location
salaryMindecimalNoMinimum salary for the role
salaryMaxdecimalNoMaximum salary for the role
currencyCodestringNoISO 4217 currency code (e.g., USD, GBP)
filledByLiveEmployeeIdstringNoID of the employee who filled this vacancy
hiringManagerIdstringNoID of the hiring manager (employee ID)
metadataobjectNoArbitrary JSON metadata (default: {})
createdAtdatetimeRecord creation timestamp (read-only)
updatedAtdatetimeLast modification timestamp (read-only)

Flowstate Documentation