Docs

Docs

x-cpod-domain: hr

HR

Recruiting and onboarding/offboarding.

JobPosting

An open requisition.

REST path/api/v1/hr/job-postings
Operations
listgetcreateupdateclose
SDK
// list — returns only your records; add filters/search:
await client.hr.jobPostings.list()

// create:
await client.hr.jobPostings.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
titlestringHuman-readable job title for this posting.
departmentstringOrganisational department or business unit this role belongs to.
location_iduuidUUID of the office or location record this posting is associated with.
employment_typestringNature of the employment engagement offered by this posting.
statusstringCurrent lifecycle state of the posting. Only 'open' postings are visible to applicants.
descriptionstringFull job description rendered as Markdown.
requirementsjsonList of required qualifications or skills for this role.
salary_minnumberMinimum salary for the advertised compensation band.
salary_maxnumberMaximum salary for the advertised compensation band.
currencystringISO 4217 three-letter currency code for the salary range.
hiring_manager_iduuidUUID of the Person who owns this requisition and makes the final hiring decision.
published_atdate-timeISO 8601 timestamp when the posting was first made public. Null while still in draft.
closed_atdate-timeISO 8601 timestamp when the posting was closed or filled.
external_urlstringLink to the canonical external job board or careers page listing.
tagsjsonFree-form labels for filtering and categorisation.

Applicant

A candidate against a JobPosting.

REST path/api/v1/hr/applicants
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.hr.applicants.list()

// create:
await client.hr.applicants.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
job_posting_iduuidUUID of the JobPosting this candidate applied for.
first_namestringApplicant's given (first) name.
last_namestringApplicant's family (last) name.
emailemailApplicant's primary contact email address.
phonestringApplicant's contact phone number in any format.
linked_in_urlstringURL to the applicant's LinkedIn profile.
resume_refstringMinIO object path for the uploaded résumé file.
cover_letter_refstringMinIO object path for the uploaded cover letter file.
stagestringCurrent stage in the hiring pipeline. 'hired' is set when the applicant is converted to a Person record.
assigned_reviewer_iduuidUUID of the Person (recruiter or hiring manager) responsible for reviewing this applicant.
notesstringInternal recruiter notes about the applicant.
rejection_reasonstringReason for rejection, if the applicant's stage is 'rejected'.
offer_sent_atdate-timeISO 8601 timestamp when a formal offer was sent to the applicant.
hired_person_iduuidUUID of the Person record created when this applicant was hired. Null until the applicant is converted.
sourceenumChannel through which the applicant discovered the posting.referrallinkedinwebsitejob_boardagencyother

OnboardingTask

A task in a new hire's onboarding sequence.

REST path/api/v1/hr/onboarding-tasks
Operations
listgetcreateupdatecomplete
SDK
// list — returns only your records; add filters/search:
await client.hr.onboardingTasks.list()

// create:
await client.hr.onboardingTasks.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
person_iduuidUUID of the Person (new hire) this onboarding task belongs to.
titlestringShort, action-oriented title for the task.
descriptionstringDetailed instructions or context for completing this task.
categorystringFunctional category grouping tasks of a similar nature together in the onboarding checklist.
assigned_to_iduuidUUID of the Person responsible for completing or facilitating this task. May be the new hire themselves, their manager, or an IT/HR team member.
due_datedate-timeISO 8601 date by which this task should be completed.
completed_atdate-timeISO 8601 timestamp when this task was marked completed. Null while still pending or in progress.
statusstringCurrent execution state of this task.
ordernumberZero-based display order within the onboarding checklist. Lower values appear first.
template_iduuidUUID of the onboarding template from which this task was generated. Null for ad-hoc tasks created directly.

OffboardingTask

A task in a leaver's offboarding sequence.

REST path/api/v1/hr/offboarding-tasks
Operations
listgetcreateupdatecomplete
SDK
// list — returns only your records; add filters/search:
await client.hr.offboardingTasks.list()

// create:
await client.hr.offboardingTasks.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
person_iduuidUUID of the Person (departing employee) this offboarding task belongs to.
titlestringShort, action-oriented title for the task.
descriptionstringDetailed instructions or context for completing this task.
categorystringFunctional category grouping tasks of a similar nature together in the offboarding checklist.
assigned_to_iduuidUUID of the Person responsible for completing or facilitating this task. Typically IT, HR, or the departing employee's manager.
due_datedate-timeISO 8601 date by which this task must be completed.
completed_atdate-timeISO 8601 timestamp when this task was marked completed. Null while still pending or in progress.
statusstringCurrent execution state of this task.
ordernumberZero-based display order within the offboarding checklist. Lower values appear first.
template_iduuidUUID of the offboarding template from which this task was generated. Null for ad-hoc tasks created directly.