v1

latestOpenAPI 3.1.02026-07-261770816.7 KB
Interviews

Create interview

Schedule an interview against a candidate's application at a specific slot on the job's interview plan. application_id, job_interview_id (the interview-plan slot), starts_at, ends_at, and external_event_id (the id of the matching event on the organizer's external calendar) are required. Provide the panel via interviewers, where each entry must include response_status and identify the interviewer by user_id, email, or employee_id. location and video_conferencing_url are optional metadata copied onto the Greenhouse record; this endpoint records an already-scheduled calendar event rather than creating one on an external calendar.

post/v3/interviews

Request body

application_idinteger required
job_interview_idinteger required
starts_atstring date-time required
ends_atstring date-time required
external_event_idstring required
locationstring nullable
video_conferencing_urlstring uri nullable

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.