---
title: "Updates a specific agency candidate employment history"
method: PUT
path: "/agency/{agency_id}/candidate/{candidate_id}/employment/{employment_id}"
tags: ["Agency Candidate Employment"]
---

# Updates a specific agency candidate employment history

`PUT /agency/{agency_id}/candidate/{candidate_id}/employment/{employment_id}`

## Request

- Base URL: `http://localhost:3010/v1`
- URL: `http://localhost:3010/v1/agency/{agency_id}/candidate/{candidate_id}/employment/{employment_id}`
- Auth: HTTP basic and HTTP basic and HTTP basic and HTTP basic

## 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 `200`

The updated agency 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
- `403`: Permission denied error
- `404`: Resource not found
- `412`: Failed some pre condition on business logic
- `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.dev/staffshift/apis/staffshift-api-gateway/revisions/1f079f6b65f5?raw)
