Positions

These endpoints allow you to manage job positions within the recruitment system. Positions represent roles that need to be filled.

Positions can have various statuses including standby, open, and closed. Note that positions cannot be updated once they’re in open or closed status.

Each position must be associated with an organizational unit and tracks who created and last updated it.

Endpoints

get /api/v3/recruitment/positions post /api/v3/recruitment/positions patch /api/v3/recruitment/positions/:id/close get /api/v3/recruitment/positions/:id/list_relevant_candidates patch /api/v3/recruitment/positions/:id/open get /api/v3/recruitment/positions/:resource_id patch /api/v3/recruitment/positions/:resource_id post /api/v3/recruitment/positions/generate_job_description


get/api/v3/recruitment/positions

Return a paginated list of recruitment/positions

Input Schema

object
page?:
object
The page number, default to 1
number?: integer
The number of items per page, default to 1000
size?: integer
The sort order, comma separated list of fields. See sorting section for more details
sort?: string
Set to true to return the total number of items in the collection
count?: boolean
filter?:
object
id?: unknown
name?: unknown
job_description?: unknown
status?: unknown
target_date?: unknown
hiring_count?: unknown
hired_count?: unknown
hiring_reason?: unknown
contract_type?: unknown
requestor_id?: unknown
pipeline_template_id?: unknown
query_id?: unknown
organizational_unit?: unknown
related_project_id?: unknown
related_organization_id?: unknown
created_at?: unknown
updated_at?: unknown
created_by_id?: unknown
updated_by_id?: unknown
name__match?: unknown
status?: unknown
organizational_unit?: unknown
target_date__gte?: unknown
target_date__lte?: unknown
contract_type?: unknown
hiring_reason?: unknown
related_organization_id?: unknown
related_project_id__in?: unknown
created_by_id__in?: unknown
requestor_id__in?: unknown
The fields to include in the response.
The key is the resource type and the value is an array of fields.
fields?:
dictionary
Values: array

Typescript

type InputSchema = {
  page?: {
    // The page number, default to 1
    number?: number;
    // The number of items per page, default to 1000
    size?: number;
  };
  // The sort order, comma separated list of fields. See sorting section for more details
  sort?: string;
  // Set to true to return the total number of items in the collection
  count?: boolean;
  filter?: {
    id?: any;
    name?: any;
    job_description?: any;
    status?: any;
    target_date?: any;
    hiring_count?: any;
    hired_count?: any;
    hiring_reason?: any;
    contract_type?: any;
    requestor_id?: any;
    pipeline_template_id?: any;
    query_id?: any;
    organizational_unit?: any;
    related_project_id?: any;
    related_organization_id?: any;
    created_at?: any;
    updated_at?: any;
    created_by_id?: any;
    updated_by_id?: any;
    name__match?: any;
    status?: any;
    organizational_unit?: any;
    target_date__gte?: any;
    target_date__lte?: any;
    contract_type?: any;
    hiring_reason?: any;
    related_organization_id?: any;
    related_project_id__in?: any;
    created_by_id__in?: any;
    requestor_id__in?: any;
  };
  // The fields to include in the response.
  // The key is the resource type and the value is an array of fields.
  fields?: { [key: string]: Array<any> };
};

Output Schema

object
data:
array
Elements:
object
type: string
id?: string
attributes?:
object
id?: integer
name?: string
job_description?: string
status?: string
target_date?: date
hiring_count?: integer
hired_count?: integer
hiring_reason?: string
contract_type?: string
requestor_id?: integer
pipeline_template_id?: integer
query_id?: integer
organizational_unit?: string
related_project_id?: integer or null
related_organization_id?: integer or null
created_at?: datetime
updated_at?: datetime
created_by_id?: integer
updated_by_id?: integer
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: Array<{
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      name?: string;
      job_description?: string;
      status?: string;
      target_date?: Date;
      hiring_count?: number;
      hired_count?: number;
      hiring_reason?: string;
      contract_type?: string;
      requestor_id?: number;
      pipeline_template_id?: number;
      query_id?: number;
      organizational_unit?: string;
      related_project_id?: number | null;
      related_organization_id?: number | null;
      created_at?: Date;
      updated_at?: Date;
      created_by_id?: number;
      updated_by_id?: number;
    };
    relationships?: Record<string, any>;
  }>;
  included?: Array<Record<string, any>>;
};


post/api/v3/recruitment/positions

Create a new recruitment/positions

Input Schema

object
data:
object
type: string
attributes:
object
id?: integer
name?: string
job_description?: string
status?: string
target_date?: date
hiring_count?: integer
hired_count?: integer
hiring_reason?: string
contract_type?: string
requestor_id?: integer
pipeline_template_id?: integer
query_id?: integer
organizational_unit?: string
related_project_id?: integer or null
related_organization_id?: integer or null
created_at?: datetime
updated_at?: datetime
created_by_id?: integer
updated_by_id?: integer

Typescript

type InputSchema = {
  data: {
    type: string;
    attributes: {
      id?: number;
      name?: string;
      job_description?: string;
      status?: string;
      target_date?: Date;
      hiring_count?: number;
      hired_count?: number;
      hiring_reason?: string;
      contract_type?: string;
      requestor_id?: number;
      pipeline_template_id?: number;
      query_id?: number;
      organizational_unit?: string;
      related_project_id?: number | null;
      related_organization_id?: number | null;
      created_at?: Date;
      updated_at?: Date;
      created_by_id?: number;
      updated_by_id?: number;
    };
  };
};


patch/api/v3/recruitment/positions/:id/close

Close a position from recruitment

Input Schema

object
id: string

Typescript

type InputSchema = { id: string };


get/api/v3/recruitment/positions/:id/list_relevant_candidates

List relevant candidates with talent search feature

Input Schema

object
id: integer
organizational_unit: string

Typescript

type InputSchema = { id: number; organizational_unit: string };


patch/api/v3/recruitment/positions/:id/open

Open a position for recruitment

Input Schema

object
id: string

Typescript

type InputSchema = { id: string };


get/api/v3/recruitment/positions/:resource_id

Show a specific recruitment/positions

Input Schema

object
resource_id: integer
included?:
array
Elements: string
fields?:
dictionary
Values: array

Typescript

type InputSchema = {
  resource_id: number;
  included?: Array<string>;
  fields?: { [key: string]: Array<any> };
};

Output Schema

object
data:
object
type: string
id?: string
attributes?:
object
id?: integer
name?: string
job_description?: string
status?: string
target_date?: date
hiring_count?: integer
hired_count?: integer
hiring_reason?: string
contract_type?: string
requestor_id?: integer
pipeline_template_id?: integer
query_id?: integer
organizational_unit?: string
related_project_id?: integer or null
related_organization_id?: integer or null
created_at?: datetime
updated_at?: datetime
created_by_id?: integer
updated_by_id?: integer
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: {
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      name?: string;
      job_description?: string;
      status?: string;
      target_date?: Date;
      hiring_count?: number;
      hired_count?: number;
      hiring_reason?: string;
      contract_type?: string;
      requestor_id?: number;
      pipeline_template_id?: number;
      query_id?: number;
      organizational_unit?: string;
      related_project_id?: number | null;
      related_organization_id?: number | null;
      created_at?: Date;
      updated_at?: Date;
      created_by_id?: number;
      updated_by_id?: number;
    };
    relationships?: Record<string, any>;
  };
  included?: Array<Record<string, any>>;
};


patch/api/v3/recruitment/positions/:resource_id

Update a recruitment/positions

Input Schema

object
resource_id: integer
data:
object
type: string
attributes:
object
id?: integer
name?: string
job_description?: string
status?: string
target_date?: date
hiring_count?: integer
hired_count?: integer
hiring_reason?: string
contract_type?: string
requestor_id?: integer
pipeline_template_id?: integer
query_id?: integer
organizational_unit?: string
related_project_id?: integer or null
related_organization_id?: integer or null
updated_at?: datetime
updated_by_id?: integer

Typescript

type InputSchema = {
  resource_id: number;
  data: {
    type: string;
    attributes: {
      id?: number;
      name?: string;
      job_description?: string;
      status?: string;
      target_date?: Date;
      hiring_count?: number;
      hired_count?: number;
      hiring_reason?: string;
      contract_type?: string;
      requestor_id?: number;
      pipeline_template_id?: number;
      query_id?: number;
      organizational_unit?: string;
      related_project_id?: number | null;
      related_organization_id?: number | null;
      updated_at?: Date;
      updated_by_id?: number;
    };
  };
};


post/api/v3/recruitment/positions/generate_job_description

Generate job description with AI

Input Schema

object
data:
object
attributes:
object
prompt: string

Typescript

type InputSchema = { data: { attributes: { prompt: string } } };