Candidates

This endpoint manages candidate profiles within the recruitment system.

Overview

The Candidates API provides functionality for creating and managing candidate profiles throughout the recruitment process. These profiles contain essential information about job applicants and track their progress through the hiring pipeline.

Key Features

Data Synchronization

This endpoint synchronizes with the IAM People service to maintain consistent personal information across systems. Core identity data (names, profile picture) is automatically kept in sync with the central IAM records.

Candidate Lifecycle

When a candidate is hired and becomes an employee, their candidate record is automatically deleted to avoid duplication, as they will now be managed through the Employees API.

Endpoints


get/api/v3/recruitment/candidates

Return a paginated list of recruitment/candidates

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
first_name?: unknown
middle_name?: unknown
last_name?: unknown
picture_url?: unknown
created_at?: unknown
organizational_unit?: unknown
facets?: unknown
search?: 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;
    first_name?: any;
    middle_name?: any;
    last_name?: any;
    picture_url?: any;
    created_at?: any;
    organizational_unit?: any;
    facets?: any;
    search?: 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
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
created_at?: datetime
organizational_unit?: string
facets?: array
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: Array<{
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      created_at?: Date;
      organizational_unit?: string;
      facets?: Array<any>;
    };
    relationships?: Record<string, any>;
  }>;
  included?: Array<Record<string, any>>;
};


post/api/v3/recruitment/candidates

Create a new recruitment/candidates

Input Schema

object
data:
object
type: string
attributes:
object
id?: integer
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
created_at?: datetime
organizational_unit?: string
facets?: array

Typescript

type InputSchema = {
  data: {
    type: string;
    attributes: {
      id?: number;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      created_at?: Date;
      organizational_unit?: string;
      facets?: Array<any>;
    };
  };
};


get/api/v3/recruitment/candidates/:resource_id

Show a specific recruitment/candidates

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
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
created_at?: datetime
organizational_unit?: string
facets?: array
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: {
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      created_at?: Date;
      organizational_unit?: string;
      facets?: Array<any>;
    };
    relationships?: Record<string, any>;
  };
  included?: Array<Record<string, any>>;
};


patch/api/v3/recruitment/candidates/:resource_id

Update a recruitment/candidates

Input Schema

object
resource_id: integer
data:
object
type: string
attributes:
object
id?: integer
first_name?: string
middle_name?: string
last_name?: string
picture_url?: string or null
created_at?: datetime
organizational_unit?: string
facets?: array

Typescript

type InputSchema = {
  resource_id: number;
  data: {
    type: string;
    attributes: {
      id?: number;
      first_name?: string;
      middle_name?: string;
      last_name?: string;
      picture_url?: string | null;
      created_at?: Date;
      organizational_unit?: string;
      facets?: Array<any>;
    };
  };
};