Interviews

Update interview

Patch a scheduled interview's time, location, video conferencing link, external calendar event id, or interviewer panel. Reassign the panel by passing a full interviewers array (each entry must include response_status and identify the interviewer by user_id, email, or employee_id); the existing list is replaced wholesale. Pass organizer_id to change the interview's organizer; the existing organizer is kept when omitted. This endpoint updates the Greenhouse interview record only and sends no calendar invites or updates — partners scheduling through Google Calendar or Outlook should make the matching edit on the calendar event and let the calendar integration sync, rather than calling this endpoint in parallel.

patch/v3/interviews/{id}

Request

  • Base URL
    https://harvest.greenhouse.io
  • URL
    https://harvest.greenhouse.io/v3/interviews/{id}
  • Auth
    • OAuth 2
      Authorization code: https://auth.greenhouse.io/authorize
      Client credentials
      Token URL: https://auth.greenhouse.io/token scopes: harvest:interviews:update
    • or HTTP bearer

Path parameters

idinteger required

Request body

external_event_idstring
starts_atstring date-time
ends_atstring date-time
locationstring
video_conferencing_urlstring uri nullable
organizer_idinteger

Id of the Greenhouse user to record as the interview's organizer. Must be an active user who can manage the application. The existing organizer is kept when omitted. Not available to MCP integrations.

Response

Successful

idinteger
created_atstring date-time
updated_atstring date-time
job_idinteger

Id of the job this interview is on.

application_idinteger

Id of the application this interview is scheduled against. Use it to look up the candidate.

job_interview_idinteger

Id of the job interview slot on the job's interview plan that this interview fulfills. Distinct from this interview's own id.

starts_atstring date-time nullable

Interview start time, in ISO 8601. null for interviews that have not yet been scheduled (for example, assigned take-home tests or interviews awaiting candidate availability) and for all-day events — see all_day_start_on.

ends_atstring date-time nullable

Interview end time, in ISO 8601. null when starts_at is also null, and for all-day events — see all_day_end_on.

locationstring nullable

Free-form location string copied from the calendar event (a room name, an address, or a meeting URL when the customer puts it in the location field). Use video_conferencing_url for the link generated by Greenhouse's video integrations.

status'to_be_scheduled' | 'scheduled' | 'awaiting_feedback' | 'complete' | 'skipped' | 'collect_feedback' | 'to_be_sent' | 'sent' | 'received'

Lifecycle status of the interview. to_be_scheduled is the pre-schedule placeholder; scheduled is on the calendar; awaiting_feedback is past with scorecards outstanding; complete is past with all scorecards in; collect_feedback and skipped are alternative terminal states; to_be_sent, sent, and received are used for take-home tests sent through Greenhouse.

organizer_idinteger nullable

Id of the Greenhouse user who scheduled the interview (the organizer on the underlying calendar event). null for interviews not yet scheduled through a calendar integration.

scheduled_atstring date-time nullable

Timestamp the interview was first placed on a calendar through a Greenhouse calendaring integration (Google, Outlook, or Greenhouse Schedule), in ISO 8601. null for interviews that have never been scheduled via the calendar pipeline.

all_day_start_onstring date nullable

Start date of an all-day interview, in YYYY-MM-DD. Set instead of starts_at/ends_at when the underlying calendar event is an all-day event. null for time-bounded interviews.

all_day_end_onstring date nullable

End date of an all-day interview, in YYYY-MM-DD. Set instead of starts_at/ends_at when the underlying calendar event is an all-day event. null for time-bounded interviews.

external_event_idstring nullable

Id of the calendar event on the organizer's calendar (Google Calendar event id, Outlook event id, etc.). Use this to correlate an interview with the event on the external calendar. null for interviews not yet pushed to an external calendar.

video_conferencing_urlstring nullable

Join URL for the interview's video conference, auto-populated by Greenhouse's Zoom, Google Meet, or Microsoft Teams integrations when one is attached during scheduling. null when no video conferencing was added.

availability_received_atstring date-time nullable

Timestamp Greenhouse first recorded availability for this interview's stage on this application (used to compute time-to-schedule), in ISO 8601. null if availability has not been collected for the stage.

Changes

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