Greenhouse API

By Abhishek Kumar
3 min read
Greenhouse helps organizations design and automate hiring processes, from sourcing to onboarding. Leverage Greenhouse's API for seamless integration and real-time hiring insights to attract top talent and improve hiring efficiency

Table of Contents

Greenhouse helps thousands of companies design and automate all aspects of hiring throughout their organizations, helping them compete for and win top talent with the Greenhouse Talent Acquisition suite.

API Overview

Greenhouse is a talent acquisition software that helps organizations manage the entire hiring process, from sourcing and screening candidates to onboarding and performance management. It offers a suite of tools for recruiters to streamline their workflow, including candidate tracking, job posting, applicant tracking, and interview scheduling. Greenhouse also provides analytics and reporting features that help organizations track their hiring performance and identify areas for improvement.

The Greenhouse API provides a programmatic interface to the Greenhouse platform, allowing developers to integrate Greenhouse with other systems and automate various tasks. The API documentation provides comprehensive information on the available endpoints, request and response formats, and error handling. Greenhouse uses REST APIs for communication, following industry-standard HTTP methods and JSON data formats. Webhooks allow for real-time notifications of events within Greenhouse, such as candidate applications or interview scheduling changes. Rate limits are in place to prevent excessive API usage and ensure the stability of the platform.

API Request Limits

Free

100 requests per minute

Growth

200 requests per minute

Pro

500 requests per minute

Enterprise

1000 requests per minute

SDKs

APIs

Candidate

Method: GET

Description: Retrieve a <strong>single</strong> candidate by their ID..

Endpoint: /v1/candidates/:candidate_id

Parameters: candidate_id

Candidate

Method: POST

Description: Create a new candidate..

Endpoint: /v1/candidates

Parameters: first_name, last_name, email, [external_id], [source], [source_id], [custom_fields]

Candidate

Method: PUT

Description: Update a candidate by their ID..

Endpoint: /v1/candidates/:candidate_id

Parameters: candidate_id, [first_name], [last_name], [email], [external_id], [source], [source_id], [custom_fields]

Candidate

Method: DELETE

Description: Delete a candidate by their ID. This will also delete the candidate's resume and all associated notes..

Endpoint: /v1/candidates/:candidate_id

Parameters: candidate_id

Candidate

Method: GET

Description: Retrieve a list of all candidates. Candidates can be filtered by a variety of criteria..

Endpoint: /v1/candidates

Parameters: updated_at_min, updated_at_max, recruiter_id, job_id, team_id, status, source, query

Candidate

Method: DELETE

Description: Permanently delete a candidate by their ID. This will also delete the candidate's resume and all associated notes..

Endpoint: /v1/candidates/:candidate_id/purge

Parameters: candidate_id

Job

Method: GET

Description: Retrieve a <strong>single</strong> job by its ID..

Endpoint: /v1/jobs/:job_id

Parameters: job_id

Job

Method: POST

Description: Create a new job..

Endpoint: /v1/jobs

Parameters: title, content, [job_board_postings], [external_id], [location], [source], [source_id], [custom_fields]

Job

Method: PUT

Description: Update a job by its ID..

Endpoint: /v1/jobs/:job_id

Parameters: job_id, [title], [content], [job_board_postings], [external_id], [location], [source], [source_id], [custom_fields]

Job

Method: DELETE

Description: Delete a job by its ID..

Endpoint: /v1/jobs/:job_id

Parameters: job_id

Job

Method: GET

Description: Retrieve a list of all jobs. Jobs can be filtered by a variety of criteria..

Endpoint: /v1/jobs

Parameters: updated_at_min, updated_at_max, recruiter_id, team_id, title, content, location, stage, status, query

Job

Method: DELETE

Description: Permanently delete a job by its ID..

Endpoint: /v1/jobs/:job_id/purge

Parameters: job_id

Team

Method: GET

Description: Retrieve a <strong>single</strong> team by its ID..

Endpoint: /v1/teams/:team_id

Parameters: team_id

Team

Method: GET

Description: Retrieve a list of all teams..

Endpoint: /v1/teams

Parameters: updated_at_min, updated_at_max, recruiter_id, query

Recruiter

Method: GET

Description: Retrieve a <strong>single</strong> recruiter by their ID..

Endpoint: /v1/recruiters/:recruiter_id

Parameters: recruiter_id

Recruiter

Method: GET

Description: Retrieve a list of all recruiters..

Endpoint: /v1/recruiters

Parameters: updated_at_min, updated_at_max, query

Note

Method: GET

Description: Retrieve a <strong>single</strong> note by its ID..

Endpoint: /v1/notes/:note_id

Parameters: note_id

Note

Method: POST

Description: Create a new note..

Endpoint: /v1/notes

Parameters: [owner_type], [owner_id], body, [pinned], [permalinks]

Note

Method: PUT

Description: Update a note by its ID..

Endpoint: /v1/notes/:note_id

Parameters: note_id, [body], [pinned], [permalinks]

Note

Method: DELETE

Description: Delete a note by its ID..

Endpoint: /v1/notes/:note_id

Parameters: note_id

Note

Method: GET

Description: Retrieve a list of all notes..

Endpoint: /v1/notes

Parameters: updated_at_min, updated_at_max, owner_type, owner_id, query

FAQ

How do I authenticate with the Greenhouse API?

You can authenticate using OAuth 2.0 with the authorization code grant type.

What are the rate limits for the Greenhouse API?

The rate limits vary depending on the endpoint. You can find the specific limits in the API documentation.

How do I create a sandbox account?

You can create a sandbox account by signing up for a free trial of Greenhouse.

How do I get access to a developer account?

You can request access to a developer account by contacting Greenhouse support.

How do I handle pagination in the Greenhouse API?

The Greenhouse API uses cursor-based pagination. You can specify the cursor in the request to retrieve the next or previous page of results.

Last Update: November 28, 2024