Scheduling

Assign an interviewer to an interview session

Assign an interviewer to an interview session

Required scopes: interview_sessions:write

Adds an organization member as an interviewer for an existing, caller-owned interview session. Requires a secret key with interview_sessions:write; publishable keys are denied. Re-assigning the same interviewer is an idempotent no-op and returns reused: true. Assigning a second interviewer is allowed, but scheduling readiness returns INTERVIEWER_ASSIGNMENT_AMBIGUOUS until the session has exactly one interviewer again. The response includes user_tasks booleans derived from the actual trigger-created rows: an interview_session task, plus an application_interview task when the application is Scheduled or Interviewing. Email notification is attempted by default; set notify_interviewer: false to opt out. interviewer_email reports a safe sent, already_sent, skipped, or email_not_sent outcome; email failure does not undo assignment. suppressed is non-null for sample data or unknown partition, including opt-out and self-assignment outcomes.

Example (curl):

curl -X POST https://api.yardstick.team/v1/interview_sessions/is_abc123/actions/assign_interviewer \
  -H 'Authorization: Bearer ys_sk_live_…' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7c3a…' \
  -d '{"interviewer_user_id":"00000000-0000-0000-0000-000000000000"}'

Example (TypeScript):

await fetch(
  "https://api.yardstick.team/v1/interview_sessions/is_abc123/actions/assign_interviewer",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.YS_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": crypto.randomUUID(),
    },
    body: JSON.stringify({
      interviewer_user_id: "00000000-0000-0000-0000-000000000000",
    }),
  },
).then((r) => r.json());
post/v1/interview_sessions/{interview_session_id}/actions/assign_interviewer

Request

  • Base URL: https://api.yardstick.team
  • URL: https://api.yardstick.team/v1/interview_sessions/{interview_session_id}/actions/assign_interviewer
  • Auth: HTTP bearer

Path parameters

interview_session_idstring required

Headers

Idempotency-Keystring

Supported for safe retry. Reuse the same key to receive the cached response without repeating the operation.

X-Request-Idstring

Optional caller-supplied request identifier. Values must match ^[A-Za-z0-9_-]{1,128}$; a valid value is echoed in the response X-Request-Id header, otherwise the API generates one.

Request body

notify_interviewerboolean

Email the assigned interviewer by default; set false to opt out.

interviewer_user_idstring required

The org-member interviewer to assign, as the usr_<base32> display id from the assignable-interviewer listing or as the raw UUID.

Response

Interviewer assigned or reused. The response includes scheduling and user-task side-effect signals.

object'interview_session_interviewer' required
interviewer_user_idstring required

Raw UUID of the assigned interviewer.

is_primaryboolean required

Whether this interviewer is the primary assignment row.

assigned_atstring required

ISO-8601 UTC timestamp from the assignment row.

interview_session_idstring required

Display id of the interview session, e.g. is_<base32>.

createdboolean required

True when this call inserted the assignment row.

reusedboolean required

True when the interviewer was already assigned.

scheduling_readyboolean required

True only when the session has exactly one interviewer.

scheduling_blocker'INTERVIEWER_ASSIGNMENT_REQUIRED' | 'INTERVIEWER_ASSIGNMENT_AMBIGUOUS' nullable required

Scheduling blocker derived from the current interviewer assignment rows.

audit_idstring required

Display id of the audit log row.

event_idstring required

Display id of the API event row.

Changes

No recorded changes to this operation across all 1 revision of this API.