---
title: "Create an employment history for a specific candidate"
method: POST
path: "/candidate/{candidate_id}/employment"
tags: ["Candidate Employment"]
---

# Create an employment history for a specific candidate

`POST /candidate/{candidate_id}/employment`

## Request body

- EmploymentHistoryBodyModelDef
  - `work_type` 'agency' | 'contract' | 'permanent' | 'self_employed' | 'student_placement' | 'part_time' | 'not_employed' | 'student_full_time', required
  - `employer_name` string
  - `employer_contact_number` string
  - `employer_location` EmployerLocationModelDef
    - `address_line1` string
    - `address_line2` string
    - `city` string
    - `province` string
    - `country_code` string, required
    - `post_code` string
  - `position` string
  - `position_type` string
  - `job_family_id` string
  - `job_title_id` string
  - `start_date` string, date-time, required
  - `end_date` string, date-time
  - `responsibilities` string
  - `leaving_reason` string
  - `institute_name` string

## Response `201`

The created candidate employment history details

- EmploymentHistoryResponseModelDef
  - `_id` string, required
  - `updated_at` string, date-time, required
  - `created_at` string, date-time, required
  - `__v` integer, required
  - `work_type` 'agency' | 'contract' | 'permanent' | 'self_employed' | 'unknown' | 'student_placement' | 'part_time' | 'not_employed' | 'student_full_time', required
  - `employer_name` string
  - `employer_contact_number` string
  - `employer_location` EmployerLocationModelDef
    - `address_line1` string
    - `address_line2` string
    - `city` string
    - `province` string
    - `country_code` string, required
    - `post_code` string
  - `position` string
  - `position_type` string
  - `job_family_id` string
  - `job_title_id` string
  - `start_date` string, date-time, required
  - `end_date` string, date-time
  - `responsibilities` string
  - `leaving_reason` string
  - `institute_name` string
  - `candidate_id` string, required
  - `current` boolean, required
  - `status` string, required
  - `job_family_name` string
  - `job_title_name` string
  - `system_generated` boolean, required

## Other responses

- `400` — Usually caused by invalid user input
- `401` — Failed to authenticate the user making the request
- `default` — Server error occurred

---

[API](https://skmtc.dev/staffshift/apis/staffshift-api-gateway.md) · [All operations](https://skmtc.dev/staffshift/apis/staffshift-api-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/staffshift/staffshift-api-gateway/revisions/6e2cb83db3a9/schema)
