### GET Job Openings Response Example Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response when listing job openings. It mirrors the structure of the job opening object. ```json [ { "id": 123, "opening_id": "OPENED-1", "status": "open", "opened_at": "2015-11-19T19:53:32.565Z", "closed_at": null, "application_id": null, "close_reason": null, "custom_fields": { "employment_type": "Full-Time", "maximum_budget": "$81.5k" }, "keyed_custom_fields": { "employment_type": { "name": "Time type", "type": "single_select", "value": "Full-Time" }, "budget": { "name": "Maximum Budget", "type": "short_text", "value": "$81.5k" } } }, { "id": 123, "opening_id": "CLOSED-1", "status": "closed", "opened_at": "2015-11-19T19:53:32.565Z", "closed_at": "2015-12-14T19:53:32.565Z", "application_id": 65565, "close_reason": { "id": 678, "name": "Hired - Backfill" }, "custom_fields": { "employment_type": "Full-Time", "maximum_budget": "$81.5k" }, "keyed_custom_fields": { "employment_type": { "name": "Time type", "type": "single_select", "value": "Full-Time" }, "budget": { "name": "Maximum Budget", "type": "short_text", "value": "$81.5k" } } } ] ``` -------------------------------- ### Example Application Response Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response you will receive when listing applications. It includes details about the candidate, job, and status. ```json [ { "id": 69306314, "candidate_id": 57683957, "prospect": false, "applied_at": "2017-09-29T12:56:05.244Z", "rejected_at": null, "last_activity_at": "2017-09-29T13:00:28.038Z", "location": { "address": "New York, New York, USA" }, "source": { "id": 2, "public_name": "Jobs page on your website" }, "credited_to": { "id": 4080, "first_name": "Kate", "last_name": "Austen", "name": "Kate Austen", "employee_id": "12345" }, "recruiter": { "id": 92120, "first_name": "Greenhouse", "last_name": "Admin", "name": "Greenhouse Admin", "employee_id": "67890" }, "coordinator": { "id": 453636, "first_name": "Jane", "last_name": "Smith", "name": "Jane Smith", "employee_id": "12345" }, "rejection_reason": null, "rejection_details": null, "jobs": [ { "id": 107761, "name": "UX Designer - Boston" } ], "job_post_id": 123, "status": "active", "current_stage": { "id": 767358, "name": "Application Review" }, "answers": [ { "question": "How did you hear about this job?", "answer": "Online Research" }, { "question": "Website", "answer": "mytestwebsite.com" } ], "prospective_office": null, "prospective_department": null, "prospect_detail": { "prospect_pool": null, "prospect_stage": null, "prospect_owner": null }, "custom_fields": { "application_custom_test": "Option 1" }, "keyed_custom_fields": { "application_custom_test": { "name": "Application Custom Test", "type": "single_select", "value": "Option 1" } }, "attachments": [ { "filename": "John_Locke_Offer_Packet_09_27_2017.pdf", "url": "https://prod-heroku.s3.amazonaws.com/", "type": "offer_packet", "created_at": "2020-09-27T18:45:27.137Z" } ] }, { "id": 69306509, "candidate_id": 57683957, "prospect": true, "applied_at": "2017-09-29T13:00:04.058Z", "rejected_at": null, "last_activity_at": "2017-09-29T13:08:19.111Z", "location": null, "source": { "id": 100674, "public_name": "Campus Job Fair" }, "credited_to": { "id": 566819, "first_name": "Bob", "last_name": "Smith", "name": "Bob Smith", "employee_id": "ABC12345" }, "recruiter": null, "coordinator": null, "rejection_reason": null, "rejection_details": null, "jobs": [ { "id": 224587, "name": "Product Manager " }, { "id": 109322, "name": "Web Developer " } ], "job_post_id": null, "status": "hired", "current_stage": null, "answers": [ { "question": "How did you hear about this job?", "answer": "Online Research" }, { "question": "Website", "answer": "mytestwebsite.com" } ], "prospective_office": { "primary_contact_user_id": null, "parent_id": null, "name": "New York", "location": { "name": "New York, NY" }, "id": 59213, "external_id": null, "child_ids": [] }, "prospective_department": { "parent_id": null, "name": "Marketing", "id": 9024, "external_id": null, "child_ids": [] }, "prospect_detail": { "prospect_pool": { "id": 227, "name": "Opted In: In-Person Event" }, "prospect_stage": { "id": 826, "name": "In Discussion" }, "prospect_owner": { "id": 92120, "name": "Greenhouse Admin" } }, "custom_fields": { "application_custom_test": "Option 1" }, "keyed_custom_fields": { "application_custom_test": { "name": "Application Custom Test", "type": "single_select", "value": "Option 1" } }, "attachments": [ { "filename": "Jack_Smith_Offer_Packet_09_27_2020.pdf", "url": "https://prod-heroku.s3.amazonaws.com/", "type": "offer_packet", "created_at": "2020-09-27T18:45:27.137Z" } ] } ] ``` -------------------------------- ### Example Response for Single Opening Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response structure when retrieving a single job opening. ```json { "id": 123, "opening_id": "OPENED-1", "status": "open", "opened_at": "2015-11-19T19:53:32.565Z", "closed_at": null, "application_id": null, "close_reason": null, "custom_fields": { "employment_type": "Full-Time", "maximum_budget": "$81.5k" }, "keyed_custom_fields": { "employment_type": { "name": "Time type", "type": "single_select", "value": "Full-Time" }, "budget": { "name": "Maximum Budget", "type": "short_text", "value": "$81.5k" } } } ``` -------------------------------- ### Response Example for Listing Close Reasons Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON array returned when listing all close reasons. Each element is a close reason object. ```json [ { "id": 365, "name": "Hired" }, { "id": 366, "name": "Backfill" }, { "id": 367, "name": "Order cancelled" } ] ``` -------------------------------- ### New Office Response Body Source: https://developers.greenhouse.io/harvest.html Example JSON response after successfully creating a new office. ```json { "id": 58028, "name": "Brooklyn", "location": { "name": "Brooklyn, NY" }, "primary_contact_user_id": 336474, "parent_id": 47012, "parent_office_external_id": "parent-1", "child_ids": [], "child_office_external_id": [], "external_id": null } ``` -------------------------------- ### Example Candidate Response Source: https://developers.greenhouse.io/candidate-ingestion.html This is an example of a successful API response when retrieving candidate data. It includes the candidate's ID, name, and application details. ```json { "id": 17681532, "name": "Harry Potter", "external_id": "24680", "applications": [ { "id": 59724, "job": "Auror", "status": "Active", "stage": "Application Review", "profile_url": "https://app.greenhouse.io/people/17681532?application_id=26234709" } ] } ``` -------------------------------- ### Add Department Response Source: https://developers.greenhouse.io/harvest.html Example JSON response after successfully creating a new department. ```json { "id": 34535, "name": "A New Department", "parent_id": 12345, "parent_department_external_ids": "parent-1", "child_ids": [], "child_department_external_ids": [], "external_id": "456454" } ``` -------------------------------- ### User Object Response Example Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response structure when retrieving a user. It includes basic user information, emails, office and department details, and custom fields. ```json { "id": 112, "name": "Juliet Burke", "first_name": "Juliet", "last_name": "Burke", "primary_email_address": "juliet.burke@example.com", "updated_at": "2016-11-17T16:13:48.888Z", "created_at": "2015-11-18T22:26:32.243Z", "disabled": false, "site_admin": true, "emails": [ "juliet.burke@example.com", "other.woman@example.com" ], "employee_id": "221", "linked_candidate_ids": [123, 654], "offices": [ { "id": 47013, "name": "San Francisco", "location": { "name": "San Francisco, California" }, "primary_contact_user_id": 150894, "parent_id": 50850, "parent_office_external_id": "14680", "child_ids": [50852, 50891], "child_office_external_ids": ["13473", "123473"], "external_id": "15679" } ], "departments": [ { "id": 25907, "name": "Marketing", "parent_id": 25908, "parent_department_external_id": "13473", "child_ids": [50852, 50891], "child_department_external_ids": ["13473", "123473"], "external_id": "15679" } ], "custom_fields": { "equipment": "Laptop", "shirt_size": "M", "hiring_specialties": [ "Engineers", "Executives" ], "trained_for_interviews": true, "recruiting_partner": { "name": "Johnny Recruiter", "email": "johnny@example.com", "user_id": 4000000000 } }, "keyed_custom_fields": { "equipment": { "name": "Equipment", "type": "short_text", "value": "Laptop" }, "shirt_size": { "name": "Shirt Size", "type": "single_select", "value": "M" }, "hiring_specialties": { "name": "Hiring Specialties", "type": "multi_select", "value": [ "Engineers", "Executives" ] }, "trained_for_interviews": { "name": "Trained for interviews", "type": "boolean", "value": true }, "recruiting_partner": { "name": "Recruiting Partner", "type": "user", "value": { "name": "Johnny Recruiter", "email": "johnny@example.com", "user_id": 4000000000 } } } } ``` -------------------------------- ### Example Response for Deleting Openings (v2) Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response structure for the v2 delete openings endpoint, indicating successful and failed deletions. ```json { "success": true, "deleted_ids": [123, 456], "failed_ids": [789] } ``` -------------------------------- ### Example List Sources JSON Response Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON array returned when listing sources. Each object in the array represents a distinct source with its ID, name, and type. ```json [ { "id": 632, "name": "Other", "type": { "id": 5, "name": "Prospecting" } }, { "id": 928, "name": "Destiny", "type": { "id": 7, "name": "Supernatural Means" } } ] ``` -------------------------------- ### List Job Stages API Response Example Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response when listing job stages. It returns an array of job stage objects. ```json [ { "id": 6001, "name": "Cultural Fit Interview", "created_at": "2015-11-22T05:31:37.263Z", "updated_at": "2015-11-22T05:31:37.263Z", "job_id": 12345, "priority": 0, "interviews": [ { "id": 7890, "name": "Cultural Fit Interview", "schedulable": true, "estimated_minutes": 30, "default_interviewer_users": [ { "id": 821, "first_name": "Robert", "last_name": " Robertson", "name": "Robert Robertson", "employee_id": "100377" } ], "interview_kit": { "id": 9124, "content": "
Purpose
Determine whether or not the candidate would be a strong fit.", "questions": [ { "id": 11052, "question": "Is this person really a good fit?" } ] } } ] }, { "id": 6002, "name": "Executive Interview", "created_at": "2015-11-22T05:31:37.263Z", "updated_at": "2015-11-22T05:31:37.263Z", "job_id": 34567, "priority": 1, "interviews": [ { "id": 7345, "name": "Executive Interview", "schedulable": true, "estimated_minutes": 60, "default_interviewer_users": [ { "id": 4080, "first_name": "Kate", "last_name": "Austen", "name": "Kate Austen", "employee_id": "12345" } ], "interview_kit": { "id": 9125, "content": "
Purpose
Determine whether or not the candidate would be a strong fit.", "questions": [ { "id": 11053, "question": "What's their favorite color?" }, { "id": 11054, "question": "Do they really want to work here?" } ] } } ] } ] } ``` -------------------------------- ### List Demographic Questions Response Example Source: https://developers.greenhouse.io/harvest.html Example JSON response for listing demographic questions. Includes question details like ID, name, set ID, and requirement status. ```json [ { "id": 123, "active": true, "demographic_question_set_id": 456, "name": "What is your favorite color?", "translations": [ { "language": "en", "name": "What is your favorite color?" } ], "required": true }, { "id": 897, "active": true, "demographic_question_set_id": 555, "name": "Pizza or pasta?", "translations": [ { "language": "en", "name": "Pizza or pasta?" } ], "required": false } ] ``` -------------------------------- ### Department Response (List View) Source: https://developers.greenhouse.io/harvest.html Example JSON response when retrieving a department with `render_as=list` (default). ```json { "id": 12345, "name": "Technology", "parent_id": null, "parent_department_external_ids": "", "child_ids": [ 34065, 25908 ], "child_department_external_ids": [ "child-1", "child-2" ], "external_id": "89076" } ``` -------------------------------- ### Get Employees by Start Date Range Source: https://developers.greenhouse.io/gho.html Retrieves employees whose start dates fall within a specified range (exclusive), returning their ID, work email, and start date. ```APIDOC ## Get Employees by Start Date Range ### Description Retrieves employees whose start dates fall within a specified range (exclusive), returning their ID, work email, and start date. ### Query ```graphql employees(first: 25, startDateFilter: { dateFilter: { after: "2017-03-25", before: "2018-03-25" } }) { pageInfo { hasNextPage endCursor } edges { node { id email startDate } } } ``` ### Parameters * `first` (Int) - Optional - The number of employees to return. * `startDateFilter` (Object) - Required - Filters employees by start date. * `dateFilter` (Object) - Required - Specifies the date range. * `after` (String) - Required - The start date (exclusive) in YYYY-MM-DD format. * `before` (String) - Required - The end date (exclusive) in YYYY-MM-DD format. ``` -------------------------------- ### Add Application to Candidate/Prospect (cURL) Source: https://developers.greenhouse.io/harvest.html Use this cURL command to initiate the process of adding an application. Ensure you replace placeholders like {id} with actual values. The 'On-Behalf-Of' and 'Authorization' headers are crucial for authentication and auditing. ```bash curl -X POST 'https://harvest.greenhouse.io/v1/candidates/{id}/applications' -H "Content-Type: application/json" -H "On-Behalf-Of: {greenhouse user ID}" -H "Authorization: Basic MGQwMzFkODIyN2VhZmE2MWRjMzc1YTZjMmUwNjdlMjQ6" ``` -------------------------------- ### Add User Request Example Source: https://developers.greenhouse.io/harvest.html This cURL command demonstrates how to make a POST request to add a new user. Ensure you include the necessary headers for authentication and content type. ```bash curl -X POST 'https://harvest.greenhouse.io/v1/users' -H "Content-Type: application/json" -H "On-Behalf-Of: {greenhouse user ID}" -H "Authorization: Basic MGQwMzFkODIyN2VhZmE2MWRjMzc1YTZjMmUwNjdlMjQ6" ``` -------------------------------- ### Example GET Request with Basic Authentication Source: https://developers.greenhouse.io/assessment.html This example shows how Greenhouse would make a GET request to a partner's List Tests endpoint, including the Basic Authentication header. The credentials are the API key provided by the assessment partner, Base64 encoded. ```http GET https://www.testing-partner-a.com/api/list_tests Authorization: Basic < base-64-encoded-credentials > ``` -------------------------------- ### List All Offers Source: https://developers.greenhouse.io/harvest.html Use this endpoint to retrieve all offers made by an organization, ordered by application_id. Ensure you include the Authorization header with your API credentials. ```bash curl 'https://harvest.greenhouse.io/v1/offers' -H "Authorization: Basic MGQwMzFkODIyN2VhZmE2MWRjMzc1YTZjMmUwNjdlMjQ6" ``` -------------------------------- ### List Rejection Reasons Source: https://developers.greenhouse.io/harvest.html Use this command to list all rejection reasons for an organization. Ensure you have the correct Authorization header. ```bash curl 'https://harvest.greenhouse.io/v1/rejection_reasons' \ -H "Authorization: Basic MGQwMzFkODIyN2VhZmE2MWRjMzc1YTZjMmUwNjdlMjQ6" ``` -------------------------------- ### Get Employees by Start Date Range Source: https://developers.greenhouse.io/gho.html Retrieve employees whose start dates fall within a specific range (exclusive). This query filters employees based on a start date after a given date and before another. ```graphql # Request only those employees that have a startDate between 2017-03-25 and 2018-03-25. # These dates are exclusive (e.g. someone who started on 2017-03-25 or 2018-03-25 would not be included. { employees(first: 25, startDateFilter: { dateFilter: { after: "2017-03-25", before: "2018-03-25" } }) { pageInfo { hasNextPage endCursor } edges { node { id email startDate } } } } ``` -------------------------------- ### Retrieve Audit Log Events Source: https://developers.greenhouse.io/audit-log.html This snippet shows how to make a GET request to the Audit Log API to retrieve events. It includes example headers and a sample JSON response. ```bash curl -X GET 'https://auditlog.us.greenhouse.io/events' -H "Content-Type: application/json" -H "Authorization: Bearer MeyJhbGci.eyJhdWQiO" { "paging": { "pit_id": "cmFuZG9tX3ZhbHVl", "search_after": null, "size": "100", "next_search_after": "1685989175" }, "hits": 2, "results": [ { "request": { "id": "1234zID", "type": "email_settings#create_organization_email" }, "performer": { "meta": { "name": "Allison Jamie", "username": "allison.j@omniva-corp.com" }, "id": 12345, "ip_address": "192.168.0.1", "type": "user" }, "organization_id": 123, "event": { "meta": null, "target_type": "Global Email Added", "type": "action" }, "event_time": "2023-06-02T16:06:19.217Z" }, { "request": { "id": "1234zID", "type": "email_settings#create_organization_email" }, "performer": { "meta": { "name": "Allison Jamie", "username": "allison.j@omniva-corp.com" }, "id": 12345, "ip_address": "192.168.0.1", "type": "user" }, "organization_id": 123, "event": { "meta": { "id": [ null, 1234 ], "value": [ null, "johnny.c@omniva-corp.com" ] }, "target_type": "OrganizationEmail", "target_id": 1234, "type": "data_change_create" }, "event_time": "2023-06-02T16:06:19.137Z" } ] } ``` -------------------------------- ### Example JSON Body for Creating Openings Source: https://developers.greenhouse.io/harvest.html This JSON structure demonstrates how to provide opening data, including custom fields and null values. ```json { "openings": [ { "opening_id": "abc-123", "custom_fields": [ { "id": 123, "value": "some value" } ] }, {"opening_id": null} ] } ``` -------------------------------- ### GET /v1/offers Source: https://developers.greenhouse.io/harvest.html Retrieves a list of offers. Supports filtering by creation, update, resolution, and sent dates, as well as status and start dates. Pagination is available via `per_page` and `page` parameters. ```APIDOC ## GET /v1/offers ### Description Retrieves a list of offers. Supports filtering by creation, update, resolution, and sent dates, as well as status and start dates. Pagination is available via `per_page` and `page` parameters. ### Method GET ### Endpoint https://harvest.greenhouse.io/v1/offers ### Parameters #### Query Parameters - **per_page** (integer) - Optional - Return up to this number of objects per response. Must be an integer between 1 and 500. Defaults to 100. - **page** (integer) - Optional - A cursor for use in pagination. Returns the n-th chunk of `per_page` objects. - **skip_count** (boolean) - Optional - If `true`, the performance of retrieving offers will improve. This will remove `last` from the `link` response header. - **created_before** (timestamp) - Optional - Return only offers that were created before this timestamp. Timestamp must be in in ISO-8601 format. - **created_after** (timestamp) - Optional - Return only offers that were created at or after this timestamp. Timestamp must be in in ISO-8601 format. - **updated_before** (timestamp) - Optional - Return only offers that were updated at or before this timestamp. Timestamp must be in in ISO-8601 format. - **updated_after** (timestamp) - Optional - Return only offers that were updated at or after this timestamp. Timestamp must be in in ISO-8601 format. - **resolved_after** (timestamp) - Optional - Return only offers that were resolved at or after this timestamp. Timestamp must be in in ISO-8601 format. - **resolved_before** (timestamp) - Optional - Return only offers that were resolved at or before this timestamp. Timestamp must be in in ISO-8601 format. - **status** (string) - Optional - Return only offers that have a particular status. One of: `unresolved`, `accepted`, `rejected`, `deprecated`. - **sent_after** (date) - Optional - Return only offers that have been sent on or after the provided date. Date must be in YYYY-MM-DD format. - **sent_before** (date) - Optional - Return only offers that have been sent on or before the provided date. Date must be in YYYY-MM-DD format. - **starts_after** (date) - Optional - Return only offers whose start date has been set to on or after the provided date. Date must be in YYYY-MM-DD format. - **starts_before** (date) - Optional - Return only offers whose start date has been set to on or before the provided date. Date must be in the YYYY-MM-DD format. ### Response See noteworthy response attributes. ``` -------------------------------- ### Scheduled Interviews Response Example Source: https://developers.greenhouse.io/harvest.html This JSON object represents a list of scheduled interviews for an application. It includes details such as interview IDs, application ID, start and end times, location, status, and associated interviewers. ```json [ { "id": 9128481, "application_id": 4684156, "external_event_id": "event123", "start": { "date_time": "2014-03-26T22:15:00.000Z" }, "end": { "date_time": "2014-03-26T22:30:00.000Z" }, "location": "Big Conference Room", "video_conferencing_url": "http://example.com", "status": "awaiting_feedback", "created_at": "2016-02-10T14:31:51.019Z", "updated_at": "2016-05-23T20:43:11.679Z", "interview": { "id": 7001, "name": "Culture Fit" }, "organizer": { "id": 2000, "first_name": "Jack", "last_name": "Shepard", "name": "Jack Shepard", "employee_id": "12345" }, "interviewers": [ { "id": 4080, "employee_id": "employee123", "name": "Kate Austen", "email": "kate.austen@example.com", "response_status": "needs_action", "scorecard_id": 11274 } ] }, { "id": 9128482, "application_id": 4684156, "external_event_id": "event456", "start": { "date": "2017-08-22" }, "end": { "date": "2017-08-23" }, "location": "Small Conference Room", "video_conferencing_url": "http://example.com", "status": "complete", "interview": { "id": 7002, "name": "Whiteboarding Challenge" }, "organizer": { "id": 2000, "first_name": "Jack", "last_name": "Shepard", "name": "Jack Shepard", "employee_id": "12345" }, "interviewers": [ { "id": 3412, "employee_id": "employee456", "name": "Charlie Pace", "email": "youalleverybody@example.com", "response_status": "needs_action", "scorecard_id": null } ] } ] ``` -------------------------------- ### cURL Request with Basic Authentication Source: https://developers.greenhouse.io/harvest.html Example of making a GET request to the Harvest API's /v1/candidates endpoint using cURL. The -u flag handles Basic Authentication by appending a colon to the API token. ```bash # Note the trailing colon after the username (API token): $ curl https://harvest.greenhouse.io/v1/candidates/ -u a7183e1b7e9ab09b8a5cfa87d1934c3c: ... ``` ```http > GET /v1/candidates/ HTTP/1.1 > Host: harvest.greenhouse.io > Authorization: Basic YTcxODNlMWI3ZTlhYjA5YjhhNWNmYTg3ZDE5MzRjM2M6 ... ``` -------------------------------- ### Hire Application Response JSON Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response received after successfully hiring an application. Note that the 'current_stage' field will be null for a hired application. ```json { "id": 48206478, "candidate_id": 36952451, "prospect": false, "applied_at": "2017-02-01T14:26:02.282Z", "rejected_at": null, "last_activity_at": "2017-02-01T14:51:12.670Z", "location": { "address": "New York, New York, USA" }, "source": { "id": 33, "public_name": "Glassdoor" }, "credited_to": null, "recruiter": { "id": 92120, "first_name": "Greenhouse", "last_name": "Admin", "name": "Greenhouse Admin", "employee_id": "67890" }, "coordinator": { "id": 453636, "first_name": "Jane", "last_name": "Smith", "name": "Jane Smith", "employee_id": "12345" }, "rejection_reason": null, "rejection_details": null, "jobs": [ { "id": 211706, "name": "Community Manager - New York" } ], "job_post_id": 123, "status": "hired", "current_stage": null, "answers": [ { "question": "How many years experience do you have?", "answer": "2-4" }, { "question": "Can do you the travel required for this job?", "answer": "Yes" } ], "prospective_office": null, "prospective_department": null, "prospect_detail": { "prospect_pool": null, "prospect_stage": null, "prospect_owner": null }, "custom_fields": { "current_title": "Community Manager", "requires_visa_sponsorship?": false }, "keyed_custom_fields": { "current_title": { "name": "Current Title", "type": "short_text", "value": "Community Manager" }, "requires_visa_sponsorship_": { "name": "Requires visa sponsorship?", "type": "boolean", "value": false } }, "attachments": [ { "filename": "John_Locke_Offer_Packet_09_27_2017.pdf", "url": "https://prod-heroku.s3.amazonaws.com/", "type": "offer_packet", "created_at": "2020-09-27T18:45:27.137Z" } ] } ``` -------------------------------- ### List all offices (default) Source: https://developers.greenhouse.io/harvest.html Use this command to retrieve a flat list of all offices in the organization. Ensure you include the Authorization header. ```bash curl 'https://harvest.greenhouse.io/v1/offices' \ -H "Authorization: Basic MGQwMzFkODIyN2VhZmE2MWRjMzc1YTZjMmUwNjdlMjQ6" ``` -------------------------------- ### Example JSON Response for Openings Source: https://developers.greenhouse.io/harvest.html This JSON structure illustrates the response received when adding new openings. It includes the ID, opening_id, and open_date for each created opening. ```json { "openings": [ { "id": 123456, "opening_id": "abc-123", "open_date": "2017-10-02T19:53:32.565Z" }, { "id": 123457, "opening_id": null, "open_date": "2017-10-02T19:53:32.565Z" } ] } ``` -------------------------------- ### Example Scorecard JSON Response Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON structure returned when retrieving a scorecard. It includes details about the interview, candidate, interviewer, and attribute ratings. ```json { "id": 211231, "updated_at": "2016-08-22T19:52:38.384Z", "created_at": "2016-08-22T19:52:38.384Z", "interview": "Application Review", "interview_step": { "id": 432, "name": "Application Review" }, "candidate_id": 2131415, "application_id": 23558552, "interviewed_at": "2016-08-18T16:00:00.000Z", "submitted_by": { "id": 4080, "first_name": "Kate", "last_name": "Austen", "name": "Kate Austen", "employee_id": "12345" }, "interviewer": { "id": 821, "first_name": "Robert", "last_name": "Robertson", "name": "Robert Robertson", "employee_id": "100377" }, "submitted_at": "2014-03-26T21:59:51Z", "overall_recommendation": "yes", "attributes": [ { "name": "Communication", "type": "Skills", "note": "What a great communicator!", "rating": "yes" }, { "name": "Adaptable", "type": "Skills", "note": null, "rating": "yes" }, { "name": "Relationship Manager", "type": "Skills", "note": null, "rating": "mixed" }, { "name": "Project Management", "type": "Qualifications", "note": null, "rating": "mixed" }, { "name": "Problem Solver", "type": "Qualifications", "note": null, "rating": "no" }, { "name": "Analytical", "type": "Skills", "note": null, "rating": "definitely_not" } ], "ratings": { "definitely_not": [ "Analytical" ], "no": [ "Problem Solver" ], "mixed": [ "Relationship Manager", "Project Management" ], "yes": [ "Communication", "Adaptable" ], "strong_yes": [] }, "questions": [ { "id": null, "question": "Key Take-Aways", "answer": "Seems like a decent candidate." }, { "id": null, "question": "Private Notes", "answer": "Seems like a decent candidate." }, { "id": 1234567, "question": "Does the candidate have experience designing APIs?", "answer": "Yes" }, { "id": 1234568, "question": "Which team would you suggest for this candidate?", "answer": "Alpha Team" }, { "id": 1234569, "question": "Where would the candidate be willing to work?", "answer": "London, Dubai, San Diego" } ] } ``` -------------------------------- ### Scheduled Interviews Response Example Source: https://developers.greenhouse.io/harvest.html This is an example of the JSON response structure when listing scheduled interviews. It includes details about each interview, application, organizer, and interviewers. ```json [ { "id": 9128481, "application_id": 4684156, "external_event_id": "event123", "start": { "date_time": "2014-03-26T22:15:00.000Z" }, "end": { "date_time": "2014-03-26T22:30:00.000Z" }, "location": "Big Conference Room", "video_conferencing_url": "http://example.com", "status": "awaiting_feedback", "created_at": "2016-02-10T14:31:51.019Z", "updated_at": "2016-05-23T20:43:11.679Z", "interview": { "id": 7001, "name": "Culture Fit" }, "organizer": { "id": 2000, "first_name": "Jack", "last_name": "Shepard", "name": "Jack Shepard", "employee_id": "12345" }, "interviewers": [ { "id": 4080, "employee_id": "employee123", "name": "Kate Austen", "email": "kate.austen@example.com", "response_status": "needs_action", "scorecard_id": 11274 } ] }, { "id": 9128482, "application_id": 432905, "external_event_id": "event456", "start": { "date": "2017-08-22" }, "end": { "date": "2017-08-23" }, "location": "Small Conference Room", "video_conferencing_url": "http://example.com", "status": "complete", "interview": { "id": 7002, "name": "Whiteboarding Challenge" }, "organizer": { "id": 2000, "first_name": "Jack", "last_name": "Shepard", "name": "Jack Shepard", "employee_id": "12345" }, "interviewers": [ { "id": 3412, "employee_id": "employee456", "name": "Charlie Pace", "email": "youalleverybody@example.com", "response_status": "needs_action", "scorecard_id": null } ] } ] ```