---
title: "Update an interviewer"
method: PATCH
path: "/v1/interviewers/{interviewerId}"
tags: ["Interviewer"]
---

# Update an interviewer

`PATCH /v1/interviewers/{interviewerId}`

Updates the admin-managed interviewer profile, scheduling controls, load-limit overrides, and organization attributes. Example: `{"title":"Principal Engineer","timezone":"America/Chicago","daily_load_limit":{"limit":4,"type":"NUMBER_OF_INTERVIEWS"}}`. Set nullable overrides to `null` to clear them. Email and ATS identity are read-only. Requires a WRITE-scoped token with the interviewers:write entitlement. Changes are attributed to the acting employee in API and backend audit telemetry; this administrative update does not create a scheduling activity-timeline entry. Directory- or HRIS-managed profile fields may be overwritten by a later sync.

## Path parameters

- `interviewerId` string, required — an employee ID. Accepts the canonical prefixed compact UUID, a prefixed dashed UUID, a bare dashed UUID, or a bare compact UUID; input is case-insensitive.

## Request body

- InterviewerPatch
  - `interview_pause_dates` object[]
    - `start_at` string, date-time, required
    - `end_at` string, date-time, required
  - `work_hours` object[], nullable
    - `day` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required
    - `start` string, required
    - `end` string, required
  - `daily_load_limit` object, nullable
    - `limit` integer, required
    - `type` 'NUMBER_OF_INTERVIEWS' | 'NUMBER_OF_MINUTES', required
  - `weekly_load_limit` object, nullable
    - `limit` integer, required
    - `type` 'NUMBER_OF_INTERVIEWS' | 'NUMBER_OF_MINUTES', required
  - `title` string — Use an empty string to clear the title; null is not supported by the backend.
  - `timezone` string, nullable
  - `locale` 'EN_US' | 'FR_FR' | 'DA_DK' | 'KO_KR' | 'JA_JP' | 'ZH_CN' | 'ZH_TW' | 'ES_419' | 'ES_ES' | 'PT_BR' | 'FR_CA', nullable
  - `phone_number` string, nullable
  - `linkedin_url` string, uri, nullable
  - `manager_id` string, nullable — an employee ID. Accepts the canonical prefixed compact UUID, a prefixed dashed UUID, a bare dashed UUID, or a bare compact UUID; input is case-insensitive.
  - `given_name` string
  - `family_name` string
  - `full_name` string
  - `attributes` object[]
    - `attribute_name_id` string, required — an interviewer attribute ID. Accepts the canonical prefixed compact UUID, a prefixed dashed UUID, a bare dashed UUID, or a bare compact UUID; input is case-insensitive.
    - `value_ids` string[], required

## Response `200`

Success

- Interviewer
  - `id` string, required — Canonical employee ID (emp_ followed by 32 lowercase hexadecimal UUID characters).
  - `name` string, required
  - `email` string, email, required
  - `title` string, nullable, required
  - `timezone` string, nullable, required
  - `manager_id` string, nullable, required — Canonical employee ID (emp_ followed by 32 lowercase hexadecimal UUID characters).
  - `ats` object, nullable, required
    - `type` 'GREENHOUSE' | 'ASHBY' | 'LEVER' | 'WORKDAY' | 'SMARTRECRUITERS' | 'GEM' | 'KOMBO', required
    - `id` string, required
  - `load` object, required
    - `daily_interviews` integer, required
    - `daily_limit` integer, required
    - `daily_load_limit` object, nullable, required
      - `source` 'ORG' | 'INTERVIEWER', required
      - `limit` integer, required
      - `type` 'NUMBER_OF_INTERVIEWS' | 'NUMBER_OF_MINUTES', required
    - `weekly_interviews` integer, required
    - `weekly_limit` integer, required
    - `weekly_load_limit` object, nullable, required
      - `source` 'ORG' | 'INTERVIEWER', required
      - `limit` integer, required
      - `type` 'NUMBER_OF_INTERVIEWS' | 'NUMBER_OF_MINUTES', required
  - `paused` object, required
    - `is_paused` boolean, required
    - `until` string, date-time, nullable, required — ISO 8601 timestamp.
  - `pause_dates` object[], required
    - `start_at` string, date-time, required — ISO 8601 timestamp.
    - `end_at` string, date-time, required — ISO 8601 timestamp.
  - `work_hours` object, required
    - `source` 'ORG' | 'INTERVIEWER', required
    - `blocks` object[], required
      - `day` string, required
      - `start` string, required
      - `end` string, required
  - `attributes` object[], required
    - `attribute_name` object, required
      - `id` string, required — Canonical interviewer attribute ID (att_ followed by 32 lowercase hexadecimal UUID characters).
      - `name` string, required
      - `type` 'DEPARTMENT' | 'TEAM' | 'LEVEL' | 'LOCATION' | 'COUNTRY' | 'CUSTOM', required
    - `values` object[], required
      - `id` string, required — Canonical interviewer attribute value ID (atv_ followed by 32 lowercase hexadecimal UUID characters).
      - `name` string, required
  - `modules` object[], required
    - `module` object, required
      - `id` string, required — Canonical interview module ID (mod_ followed by 32 lowercase hexadecimal UUID characters).
      - `name` string, required
    - `training_status` 'TRAINED' | 'SHADOW' | 'REVERSE_SHADOW', required
    - `is_paused` boolean, required
  - `created_at` string, date-time, required — ISO 8601 timestamp.
  - `updated_at` string, date-time, required — ISO 8601 timestamp.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `409` — Conflict
- `410` — Gone
- `500` — Internal error

---

[API](https://skmtc.dev/modernloop/apis/modernloop-platform-api.md) · [All operations](https://skmtc.dev/modernloop/apis/modernloop-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/modernloop/modernloop-platform-api/revisions/33a0f9f44e4c/schema)
