Skip to main content

Greenhouse Component

Manage candidates, applications, and job postings in Greenhouse.

Component key: greenhouse · Changelog ↓

Description

Greenhouse is a recruiting and applicant tracking system platform. This component allows you to manage candidates, applications, and job postings in Greenhouse.

API Documentation

This component was built using the Greenhouse Harvest API.

Connections

API Key

key: apiToken

The Greenhouse Harvest API uses Basic Auth over HTTPS for authentication. The username is your Greenhouse API token and the password should be blank. Unauthenticated requests will return an HTTP 401 response.

  1. Harvest API keys can be obtained in Greenhouse. In order to create a Harvest API key, a user must be granted the “Can manage ALL organization’s API Credentials” in the “Developer permission” section.
  2. That user can then go Configure >> Dev Center >> API Credential Management.
  3. From there, you can create a Harvest API key and choose which endpoints it may access a. API Type - Harvest b. Partner - Custom
  4. Select “Manage Permissions” to Continue
  5. Enter Your API key into your flow and/or another secure location.
  6. Select “I have stored the API key” to continue”
  7. You may now choose which actions the user will be allowed to submit: a. Recommended sections for getting started I. Users II. Applications III. Jobs IV. Candidates V. Custom Field Options b. You may also choose granular permissions for each section I. Select Save when complete.
InputNotesExample
API Key

API Key for your Greenhouse user. You can generate API keys in Greenhouse by navigating to Configure > Dev Center > API Credential Management.

a7183e1b7e9ab09b8a5cfa87d1934c3c

Triggers

Webhook

Receive and validate webhook requests from Greenhouse for webhooks you configure. | key: webhook

InputNotesExample
Enabled Events

A list of events configured by the user to accept in the integration. If empty, all events will be accepted

Secret Key

The secret key to use for the webhook.

3T2eTfOvJbAIRoBpXsXPmq0gn8CmF5Q7

A Greenhouse webhook can be configured to send information to a flow's webhook URL when certain events occur (a candidate is hired, an application is created, an offer is approved, etc.).

How It Works

This trigger receives webhook requests from Greenhouse and validates the request signature using HMAC-SHA256. Each incoming request must include a Signature header containing a SHA-256 hash of the request body. If the signature does not match, the request is rejected.

When Enabled Events are configured, the trigger only processes requests whose action field matches one of the specified event types. All other events are rejected. If no enabled events are configured, all events are accepted.

Configuration

  • Secret Key: The secret key used to verify webhook signatures. This must match the secret key configured in the Greenhouse webhook settings.
  • Enabled Events: An optional list of event action types to accept. If left empty, all events are accepted.

Event Types

Available Events (28)
EventDescription
new_candidate_applicationA new candidate application is submitted
new_prospect_applicationA new prospect application is created
delete_applicationAn application is deleted
application_updatedAn application is updated
offer_createdAn offer is created for a candidate
offer_approvedAn offer is approved
offer_updatedAn offer is updated
offer_deletedAn offer is deleted
delete_candidateA candidate is deleted
hire_candidateA candidate is hired
unhire_candidateA candidate hire is reversed
merge_candidateTwo candidate records are merged
candidate_stage_changeA candidate moves to a different interview stage
reject_candidateA candidate is rejected
unreject_candidateA candidate rejection is reversed
update_candidateA candidate record is updated
candidate_anonymizedA candidate record is anonymized
interview_deletedAn interview is deleted
scorecard_deletedA scorecard is deleted
job_createdA new job is created
job_deletedA job is deleted
job_updatedA job is updated
job_approvedA job is approved
job_post_createdA job post is created
job_post_updatedA job post is updated
job_post_deletedA job post is deleted
department_deletedA department is deleted
office_deletedAn office is deleted

Refer to the Greenhouse webhook documentation for the complete and up-to-date list of events.

Returned Data

Example Payload
{
"action": "new_candidate_application",
"payload": {
"application": {
"id": 46194062,
"candidate_id": 34172063,
"prospect": false,
"applied_at": "2024-01-15T10:30:00Z",
"current_stage": {
"id": 6813488,
"name": "Application Review"
},
"jobs": [
{
"id": 371417,
"name": "Software Engineer"
}
]
}
}
}

Notes

  • The Secret Key must match the secret key configured in the Greenhouse webhook settings. Navigate to Configure > Dev Center > Webhooks in Greenhouse to locate or create webhook configurations.
  • Signature verification uses HMAC-SHA256. The Signature header from Greenhouse contains the value in the format sha256 [hash].

Data Sources

Fetch Applications

Fetch an array of applications | key: applications | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "#69306314 - UX Designer - Boston (active)",
"key": "69306314"
},
{
"label": "#69306509 - Product Manager (hired)",
"key": "69306509"
}
]
}

Fetch Candidates Names

Fetch an array of candidates' names | key: candidates | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "John Locke",
"key": "650"
},
{
"label": "John Doe",
"key": "47012"
}
]
}

Fetch Custom Fields

Fetch an array of custom fields' names | key: customFields | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Field Type
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "Custom Field Name",
"key": "650"
},
{
"label": "Custom Field Name 2",
"key": "47012"
}
]
}

Fetch Departments

Fetch an array of departments' names | key: departments | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "Technology",
"key": "650"
},
{
"label": "Administration",
"key": "47012"
}
]
}

Fetch Jobs

Fetch an array of jobs' names | key: jobs | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "Archaeologist",
"key": "650"
},
{
"label": "Example",
"key": "47012"
}
]
}

Fetch Offices

Fetch an array of offices' names | key: offices | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "Utica",
"key": "50891"
},
{
"label": "New York",
"key": "47012"
}
]
}

Fetch Users Names

Fetch an array of users' names | key: users | type: picklist

InputNotesExample
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"result": [
{
"label": "Juliet Burke",
"key": "112"
},
{
"label": "John Doe",
"key": "712"
}
]
}

Actions

Create a Candidate

Create a new candidate. | key: createCandidate

InputNotesExample
Addresses

Array of addresses. Passing an empty array will clear all.

Applications

An array of application objects. At least one required.

Company

The candidate's company.

Acme Corporation
Connection

The Greenhouse connection to use.

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Educations

An array of education records.

Email Addresses

Array of email addresses. Passing an empty array will clear all.

Employments

An array of employment records.

First Name

The candidate's first name

John
Last Name

The candidate's last name

Doe
Phone Numbers

Array of phone numbers. Passing an empty array will clear all.

Social Media Addresses

Array of social media addresses. Passing an empty array will clear all.

Tags

Array of tags as strings. Passing an empty array will clear all.

["Senior", "Remote"]
Title

The candidate's title.

Software Engineer
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1
Website Addresses

Array of website addresses. Passing an empty array will clear all.

{
"data": {
"first_name": "John",
"last_name": "Locke",
"company": "The Tustin Box Company",
"title": "Man of Mystery",
"is_private": false,
"phone_numbers": [
{
"value": "555-1212",
"type": "mobile"
}
],
"addresses": [
{
"value": "123 Fake St.",
"type": "home"
}
],
"email_addresses": [
{
"value": "john.locke+work@example.com",
"type": "work"
},
{
"value": "john.locke@example.com",
"type": "personal"
}
],
"website_addresses": [
{
"value": "johnlocke.example.com",
"type": "personal"
}
],
"social_media_addresses": [
{
"value": "linkedin.example.com/john.locke"
},
{
"value": "@johnlocke"
}
],
"educations": [
{
"school_id": 459,
"discipline_id": 940,
"degree_id": 1230,
"start_date": "2001-09-15T00:00:00.000Z",
"end_date": "2004-05-15T00:00:00.000Z"
}
],
"employments": [
{
"company_name": "Greenhouse",
"title": "Engineer",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"tags": [
"Walkabout",
"Orientation"
],
"applications": [
{
"job_id": 215725
},
{
"job_id": 185289
}
]
}
}

Create a Job

Create a new job. | key: createJob

InputNotesExample
Connection

The Greenhouse connection to use.

Department ID

The department of the new job. This should be a department id from the Departments endpoint. If this element is omitted, the new job will receive the department of the template job. If this element is included but blank, it will create the job with no departments. If the organization requires jobs to have a department, this case will return a 422 response.

123
External Department ID

This may be used instead of department_id and represents the ID of the department in an external system.

EXTERNAL_ID_1234
External Office Ids

This may be used instead of office_ids and represents the ID of the office in an external system. If this is used, office_id must be blank and vice versa.

["abc13425", "13432"]
Job Name

This is the internal name of the new job. If this is not included, the name of the new job will be "Copy Of (the template job's name)".

Software Engineer - Backend
Job Post Name

This will be the name on the new job post. If this is not included, the job post names in the base job will be copied.

Senior Software Engineer - Remote
Number of Openings

The number of openings that will be created for this job.

3
Office Ids

The offices of the new job. These should be office ids from the Offices endpoint. If this element is omitted, the new job will receive the offices of the template job. If this element is included but blank, it will create the job with no offices. If the organization requires jobs to have an office, this case will return a 422 response.

["234", "345"]
Opening Ids

The opening IDs for the job. Must be a valid set of opening IDs.

["123", "124", "125"]
Requisition ID

If included, will return only the jobs that match the given requisition_id.

abc-123
Template Job ID

This is the job we will use to generate the new job. The new job will receive most of the settings of the template job. The On-Behalf-Of user must have access to this job.

127817
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"id": 112746,
"name": "Internal Name That Appears On Hiring Plans",
"requisition_id": "abc-123",
"notes": "Looking for the best!",
"confidential": false,
"status": "open",
"is_template": false,
"copied_from_id": 12345,
"created_at": "2015-09-10T19:01:46.078Z",
"opened_at": "2015-09-10T19:01:46.078Z",
"updated_at": "2015-09-10T19:01:46.078Z",
"closed_at": null,
"departments": [
{
"id": 123,
"name": "Guideshops",
"parent_id": null,
"child_ids": [
52461,
34065,
25908
],
"external_id": "EXTERNAL_ID_1234"
}
],
"offices": [
{
"id": 234,
"name": "San Diego",
"location": {
"name": "San Diego, CA, United States"
},
"primary_contact_user_id": 25463,
"parent_id": 50850,
"child_ids": [
24719
],
"external_id": "abc13425"
},
{
"id": 345,
"name": "New York",
"location": {
"name": "New York, NY, United States"
},
"parent_id": null,
"child_ids": [],
"external_id": "13432"
}
],
"hiring_team": {
"hiring_managers": [
{
"id": 84275,
"first_name": "Kaylee",
"last_name": "Prime",
"name": "Kaylee Prime",
"employee_id": "13636"
},
{
"id": 169779,
"first_name": "Hank",
"last_name": "Hollandaise",
"name": "Hank Hollandaise",
"employee_id": "34537"
}
],
"recruiters": [
{
"id": 81111,
"first_name": "Samuel",
"last_name": "Skateboard",
"name": "Samuel Skateboard",
"employee_id": "34531",
"responsible": false
},
{
"id": 153448,
"first_name": "Stegosaurus",
"last_name": "Heels",
"name": "Stegosaurus Heels",
"employee_id": "45748",
"responsible": true
}
],
"coordinators": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327",
"responsible": true
},
{
"id": 177046,
"first_name": "Mirandella",
"last_name": "Lager",
"name": "Mirandella Lager",
"employee_id": "43626",
"responsible": false
}
],
"sourcers": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327"
}
]
},
"openings": [
{
"id": 123,
"opening_id": "3-1",
"status": "open",
"opened_at": "2015-11-20T23:14:14.736Z",
"closed_at": "2017-11-20T23:14:14.736Z",
"application_id": 45678,
"close_reason": {
"id": 678,
"name": "Hired - Backfill"
}
},
{
"id": 124,
"opening_id": "3-2",
"status": "open",
"opened_at": "2015-11-20T23:14:14.739Z",
"closed_at": null,
"application_id": null,
"close_reason": null
},
{
"id": 125,
"opening_id": null,
"status": "open",
"opened_at": "2016-02-03T20:00:00.000Z",
"closed_at": null,
"application_id": null
},
{
"id": 126,
"opening_id": "2-4",
"status": "closed",
"opened_at": "2016-02-03T16:38:46.985Z",
"closed_at": "2016-02-03T16:39:09.811Z",
"application_id": 1232,
"close_reason": {
"id": 689,
"name": "Hired"
}
}
]
}
}

Create a User

Create a new user | key: createUser

InputNotesExample
Connection

The Greenhouse connection to use.

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Department Ids

The department value(s) associated with a user. Must be a valid set of department IDs. Passing an empty array does nothing.

["123"]
Email

The user's email address. Must be a valid email address.

john.doe@example.com
Employee Id

The user's external employee ID.

12345
External Department Ids

This may be used instead of department_ids and represents the ID of the department in an external system. If this is used, department_ids must be blank and vice versa.

["EXTERNAL_ID_1234"]
External Office Ids

This may be used instead of office_ids and represents the ID of the office in an external system. If this is used, office_id must be blank and vice versa.

["abc13425", "13432"]
First Name

The user's first name.

John
Last Name

The user's last name.

Doe
Office Ids

The office value(s) associated with a user. Must be a valid set of office IDs. Passing an empty array does nothing.

["234", "345"]
Send Email Invite

When true, an email will be sent to the user alerting them of any new job permissions that have been assigned to them. Emails are never sent when permissions are removed.

false
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

Delete a Candidate

Delete a candidate by id | key: deleteCandidate

InputNotesExample
Candidate ID

ID of the candidate to delete.

53883394
Connection

The Greenhouse connection to use.

On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"message": "Person 29622362 has been deleted."
}
}

Delete Application

Delete an application by id | key: deleteApplication

InputNotesExample
Application ID

The ID of the application.

69102626
Connection

The Greenhouse connection to use.

On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"message": "Application 29622362 has been deleted."
}
}

Disable a User

Disable an existing user | key: disableUser

InputNotesExample
Connection

The Greenhouse connection to use.

Email

The user's email address. Must be a valid email address.

john.doe@example.com
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

Edit a Candidate

Edit an existing candidate. | key: editCandidate

InputNotesExample
Addresses

Array of addresses. Passing an empty array will clear all.

Candidate ID

The ID of the candidate.

53883394
Company

The candidate's company.

Acme Corporation
Connection

The Greenhouse connection to use.

Coordinator

An object representing the candidate's new coordinator

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Email Addresses

Array of email addresses. Passing an empty array will clear all.

First Name

The candidate's first name

John
Is Private

When true, the candidate will be marked as private.

false
Last Name

The candidate's last name

Doe
Phone Numbers

Array of phone numbers. Passing an empty array will clear all.

Recruiter

An object representing the candidate's new recruiter

Social Media Addresses

Array of social media addresses. Passing an empty array will clear all.

Tags

Array of tags as strings. Passing an empty array will clear all.

["Senior", "Remote"]
Title

The candidate's title.

Software Engineer
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1
Website Addresses

Array of website addresses. Passing an empty array will clear all.

{
"data": {
"first_name": "John",
"last_name": "Locke",
"company": "The Tustin Box Company",
"title": "Man of Mystery",
"is_private": false,
"phone_numbers": [
{
"value": "555-1212",
"type": "mobile"
}
],
"addresses": [
{
"value": "123 Fake St.",
"type": "home"
}
],
"email_addresses": [
{
"value": "john.locke+work@example.com",
"type": "work"
},
{
"value": "john.locke@example.com",
"type": "personal"
}
],
"website_addresses": [
{
"value": "johnlocke.example.com",
"type": "personal"
}
],
"social_media_addresses": [
{
"value": "linkedin.example.com/john.locke"
},
{
"value": "@johnlocke"
}
],
"educations": [
{
"school_id": 459,
"discipline_id": 940,
"degree_id": 1230,
"start_date": "2001-09-15T00:00:00.000Z",
"end_date": "2004-05-15T00:00:00.000Z"
}
],
"employments": [
{
"company_name": "Greenhouse",
"title": "Engineer",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"tags": [
"Walkabout",
"Orientation"
],
"applications": [
{
"job_id": 215725
},
{
"job_id": 185289
}
]
}
}

Edit a Job

Edit a job by id | key: editJob

InputNotesExample
Anywhere

When true, indicates the job can be done from anywhere (remote position).

false
Connection

The Greenhouse connection to use.

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Department ID

If included, will return only the jobs in this specific department.

123
External Department ID

This may be used instead of department_id and represents the ID of the department in an external system.

EXTERNAL_ID_1234
External Office Ids

This may be used instead of office_ids and represents the ID of the office in an external system. If this is used, office_id must be blank and vice versa.

["abc13425", "13432"]
How to Sell This Job

A description for the recruiter of the desirable aspects of the job.

Competitive salary, flexible hours, and great company culture
Job ID

If supplied, only return candidates that have applied to this job. Will return both when a candidate has applied to a job and when they're a prospect for a job

127817
Job Name

The job's name

Software Engineer - Backend
Notes

Notes on the hiring plan.

Looking for candidates with 5+ years experience
Office Ids
Replace the current offices for this job with new offices. If your organization requires at least one office, trying to set this to blank will return an error.
["234", "345"]
Requisition ID

If included, will return only the jobs that match the given requisition_id.

abc-123
Team and Responsibilities

A description of the team the candidate would join and their responsibilities.

Join our engineering team to build scalable web applications
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"id": 6404,
"name": "New job name",
"requisition_id": "1",
"notes": "Here are some notes",
"confidential": false,
"status": "closed",
"created_at": "2013-12-10T14:42:58Z",
"opened_at": "2013-12-11T14:42:58Z",
"closed_at": "2013-12-12T14:42:58Z",
"updated_at": "2013-12-12T14:42:58Z",
"is_template": false,
"copied_from_id": 2345,
"departments": [
{
"id": 74,
"name": "Second-Level department",
"parent_id": 25908,
"child_ids": [
14510
],
"external_id": "dept-1"
}
],
"offices": [
{
"id": 1556,
"name": "San Francisco",
"location": {
"name": "San Francisco, United States"
},
"primary_contact_user_id": 150893,
"parent_id": 50849,
"child_ids": [
50852,
50891
],
"external_id": "office-1"
}
],
"custom_fields": {
"employment_type": "Full-Time",
"maximum_budget": "$81.5k",
"salary_range": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
},
"keyed_custom_fields": {
"employment_type": {
"name": "Time type",
"type": "single_select",
"value": "Full-Time"
},
"budget": {
"name": "Maximum Budget",
"type": "short_text",
"value": "Full-Time"
},
"salary_range": {
"name": "Salary Range",
"type": "currency_range",
"value": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
}
},
"hiring_team": {
"hiring_managers": [
{
"id": 84275,
"first_name": "Kaylee",
"last_name": "Prime",
"name": "Kaylee Prime",
"employee_id": "13636"
},
{
"id": 169779,
"first_name": "Hank",
"last_name": "Hollandaise",
"name": "Hank Hollandaise",
"employee_id": "34537"
}
],
"recruiters": [
{
"id": 81111,
"first_name": "Samuel",
"last_name": "Skateboard",
"name": "Samuel Skateboard",
"employee_id": "34531",
"responsible": false
},
{
"id": 153448,
"first_name": "Stegosaurus",
"last_name": "Heels",
"name": "Stegosaurus Heels",
"employee_id": "45748",
"responsible": true
}
],
"coordinators": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327",
"responsible": true
},
{
"id": 177046,
"first_name": "Mirandella",
"last_name": "Lager",
"name": "Mirandella Lager",
"employee_id": "43626",
"responsible": false
}
],
"sourcers": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327"
}
]
},
"openings": [
{
"id": 123,
"opening_id": "3-1",
"status": "open",
"opened_at": "2015-11-20T23:14:14.736Z",
"closed_at": "2017-11-20T23:14:14.736Z",
"application_id": 45678,
"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"
}
}
},
{
"id": 124,
"opening_id": "3-2",
"status": "open",
"opened_at": "2015-11-20T23:14:14.739Z",
"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": 125,
"opening_id": null,
"status": "open",
"opened_at": "2016-02-03T20:00:00.000Z",
"closed_at": null,
"application_id": 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": 126,
"opening_id": "2-4",
"status": "closed",
"opened_at": "2016-02-03T16:38:46.985Z",
"closed_at": "2016-02-03T16:39:09.811Z",
"application_id": 1232,
"close_reason": {
"id": 689,
"name": "Hired"
},
"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"
}
}
}
]
}
}

Edit a User

Edit an existing user | key: editUser

InputNotesExample
Connection

The Greenhouse connection to use.

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Department Ids

Replace the current departments for this user with new departments. An empty array will remove all departments on this user.

["123"]
Email

The user element must contain one of ‘employee_id’, 'email’, or 'user_id’, but not more than one. If included, this cannot be blank, nor can it match any other email for a user in this organization.

john.doe@example.com
Employee Id

The user’s external employee id. If included, this cannot be blank, nor can it match any other employee-id for a user in this organization.

12345
External Department Ids

This may be used instead of department_ids and represents the ID of the department in an external system. If used, department_ids must be blank and vice versa.

["EXTERNAL_ID_1234"]
External Office Ids

This may be used instead of office_ids and represents the ID of the office in an external system. If this is used, office_ids must be blank and vice versa.

["abc13425", "13432"]
First Name

The user’s new first name. If included, this cannot be blank.

John
Last Name

The user’s new last name. If included, this cannot be blank.

Doe
Office Ids

Replace the current offices for this user with new offices. An empty array will remove all offices on this user.

["234", "345"]
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

Edit Application

Edit an Application by id | key: editApplication

InputNotesExample
Application ID

The ID of the application.

69102626
Connection

The Greenhouse connection to use.

Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Prospect Pool ID

The ID of the prospect pool for the application.

123
Prospect Stage ID

The ID of the prospect pool stage for the application.

456
Referrer

An object representing the referrer.

Source ID

The ID of the application's source.

2
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"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"
},
"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"
}
]
}
}

Enable a User

Enable an existing user | key: enableUser

InputNotesExample
Connection

The Greenhouse connection to use.

Email

The user's email address. Must be a valid email address.

john.doe@example.com
On Behalf Of User ID

ID of the user issuing this request. Required for auditing purposes.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"id": 253528,
"name": "Bob Smith",
"first_name": "Bob",
"last_name": "Smith",
"primary_email_address": "bob@email.org",
"updated_at": "2017-03-23T18:58:27.796Z",
"created_at": "2016-04-28T15:28:16.440Z",
"disabled": false,
"site_admin": false,
"emails": [
"bob@email.org"
],
"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
}
}
}
}
}

Get a Candidate

Get a candidate by id | key: getCandidate

InputNotesExample
Candidate ID

The ID of the candidate.

53883394
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"id": 53883394,
"first_name": "John",
"last_name": "Locke",
"company": "The Tustin Box Company",
"title": "Man of Mystery",
"created_at": "2017-08-15T03:31:46.591Z",
"updated_at": "2017-09-28T12:29:30.497Z",
"last_activity": "2017-09-28T12:29:30.481Z",
"is_private": false,
"photo_url": null,
"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"
}
],
"application_ids": [
69102626,
65153308
],
"phone_numbers": [
{
"value": "555-555-5555",
"type": "mobile"
}
],
"addresses": [
{
"value": "123 City Street\nNew York, Ny 10001",
"type": "home"
}
],
"email_addresses": [
{
"value": "test@work.com",
"type": "work"
},
{
"value": "test@example.com",
"type": "personal"
}
],
"website_addresses": [
{
"value": "mysite.com",
"type": "personal"
}
],
"social_media_addresses": [
{
"value": "twitter.com/test"
}
],
"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"
},
"can_email": true,
"tags": [
"Python",
"Ruby"
],
"applications": [
{
"id": 69102626,
"candidate_id": 53883394,
"prospect": false,
"applied_at": "2017-09-27T12:03:02.728Z",
"rejected_at": "2017-09-27T12:11:40.877Z",
"last_activity_at": "2017-09-28T12:29:30.481Z",
"location": {
"address": "New York, New York, USA"
},
"source": {
"id": 16,
"public_name": "LinkedIn (Prospecting)"
},
"credited_to": {
"id": 165372,
"first_name": "Joel",
"last_name": "Job Admin",
"name": "Joel Job Admin",
"employee_id": null
},
"rejection_reason": {
"id": 9504,
"name": "Hired another candidate",
"type": {
"id": 1,
"name": "We rejected them"
}
},
"rejection_details": {
"custom_fields": {
"custom_rejection_question_field": null
},
"keyed_custom_fields": {
"custom_rejection_question_field": {
"name": "Custom Rejection Question Field",
"type": "short_text",
"value": null
}
}
},
"jobs": [
{
"id": 149995,
"name": "DevOps Engineer"
}
],
"job_post_id": 123,
"status": "rejected",
"current_stage": {
"id": 1073533,
"name": "Take Home Test"
},
"answers": [
{
"question": "How did you hear about this job?",
"answer": "A friend"
},
{
"question": "Website",
"answer": "https://example.com"
},
{
"question": "LinkedIn Profile",
"answer": "https://linkedin.com/example"
}
],
"prospective_office": null,
"prospective_department": null,
"prospect_detail": {
"prospect_pool": null,
"prospect_stage": null,
"prospect_owner": null
},
"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": 65153308,
"candidate_id": 53883394,
"prospect": false,
"applied_at": "2017-08-15T03:31:46.637Z",
"rejected_at": null,
"last_activity_at": "2017-09-28T12:29:30.481Z",
"location": {
"address": "New York, New York, United States"
},
"source": {
"id": 12,
"public_name": "Meetups"
},
"credited_to": {
"id": 566819,
"first_name": "Bob",
"last_name": "Smith",
"name": "Bob Smith",
"employee_id": null
},
"rejection_reason": null,
"rejection_details": null,
"jobs": [
{
"id": 299100,
"name": "Data Scientist - BK"
}
],
"job_post_id": 456,
"status": "active",
"current_stage": {
"id": 2966800,
"name": "Face to Face"
},
"answers": [],
"prospective_office": null,
"prospective_department": null,
"prospect_detail": {
"prospect_pool": null,
"prospect_stage": null,
"prospect_owner": null
},
"attachments": []
}
],
"educations": [
{
"id": 561227,
"school_name": "University of Michigan - Ann Arbor",
"degree": "Bachelor's Degree",
"discipline": "Computer Science",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"employments": [
{
"id": 8485064,
"company_name": "Greenhouse",
"title": "Engineer",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"linked_user_ids": [
989604
],
"custom_fields": {
"desired_salary": "1000000000",
"work_remotely": true,
"graduation_year": "2018"
},
"keyed_custom_fields": {
"desired_salary": {
"name": "Desired Salary",
"type": "short_text",
"value": "1000000000"
},
"work_remotely": {
"name": "Work Remotely",
"type": "boolean",
"value": true
},
"graduation_year_1": {
"name": "Graduation Year",
"type": "single_select",
"value": "2018"
}
}
}
}

Get a Job

Get a Job by id | key: getJob

InputNotesExample
Connection

The Greenhouse connection to use.

Job ID

If supplied, only return candidates that have applied to this job. Will return both when a candidate has applied to a job and when they're a prospect for a job

127817
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"id": 6404,
"name": "Archaeologist",
"requisition_id": "abc123",
"notes": "<p>Resistance to electro-magnetic radiation a plus!</p>",
"confidential": false,
"status": "closed",
"created_at": "2013-12-10T14:42:58Z",
"opened_at": "2013-12-11T14:42:58Z",
"closed_at": "2013-12-12T14:42:58Z",
"updated_at": "2013-12-12T14:42:58Z",
"is_template": false,
"copied_from_id": 2345,
"departments": [
{
"id": 25907,
"name": "Second-Level department",
"parent_id": 25908,
"child_ids": [
14510
],
"external_id": "12345"
}
],
"offices": [
{
"id": 47012,
"name": "New York",
"location": {
"name": "New York, United States"
},
"primary_contact_user_id": 150893,
"parent_id": 50849,
"child_ids": [
50852,
50891
],
"external_id": "15679"
}
],
"custom_fields": {
"employment_type": "Full-Time",
"maximum_budget": "$81.5k",
"salary_range": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
},
"keyed_custom_fields": {
"employment_type": {
"name": "Time type",
"type": "single_select",
"value": "Full-Time"
},
"budget": {
"name": "Maximum Budget",
"type": "short_text",
"value": "Full-Time"
},
"salary_range": {
"name": "Salary Range",
"type": "currency_range",
"value": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
}
},
"hiring_team": {
"hiring_managers": [
{
"id": 84275,
"first_name": "Kaylee",
"last_name": "Prime",
"name": "Kaylee Prime",
"employee_id": "13636"
},
{
"id": 169779,
"first_name": "Hank",
"last_name": "Hollandaise",
"name": "Hank Hollandaise",
"employee_id": "34537"
}
],
"recruiters": [
{
"id": 81111,
"first_name": "Samuel",
"last_name": "Skateboard",
"name": "Samuel Skateboard",
"employee_id": "34531",
"responsible": false
},
{
"id": 153448,
"first_name": "Stegosaurus",
"last_name": "Heels",
"name": "Stegosaurus Heels",
"employee_id": "45748",
"responsible": true
}
],
"coordinators": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327",
"responsible": true
},
{
"id": 177046,
"first_name": "Mirandella",
"last_name": "Lager",
"name": "Mirandella Lager",
"employee_id": "43626",
"responsible": false
}
],
"sourcers": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327"
}
]
},
"openings": [
{
"id": 123,
"opening_id": "3-1",
"status": "open",
"opened_at": "2015-11-20T23:14:14.736Z",
"closed_at": "2017-11-20T23:14:14.736Z",
"application_id": 45678,
"close_reason": {
"id": 678,
"name": "Hired - Backfill"
}
},
{
"id": 124,
"opening_id": "3-2",
"status": "open",
"opened_at": "2015-11-20T23:14:14.739Z",
"closed_at": null,
"application_id": null,
"close_reason": null
},
{
"id": 125,
"opening_id": null,
"status": "open",
"opened_at": "2016-02-03T20:00:00.000Z",
"closed_at": null,
"application_id": null
},
{
"id": 126,
"opening_id": "2-4",
"status": "closed",
"opened_at": "2016-02-03T16:38:46.985Z",
"closed_at": "2016-02-03T16:39:09.811Z",
"application_id": 1232,
"close_reason": {
"id": 689,
"name": "Hired"
}
}
]
}
}

Get Application

Get an Application by id | key: getApplication

InputNotesExample
Application ID

The ID of the application.

69102626
Connection

The Greenhouse connection to use.

Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"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"
},
"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"
}
]
}
}

Get User

Get a user by id | key: getUser

InputNotesExample
Connection

The Greenhouse connection to use.

On Behalf Of User ID

ID of the user to get.

92120
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": {
"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": 47012,
"name": "New York",
"location": {
"name": "New York, United States"
},
"primary_contact_user_id": 150893,
"parent_id": 50849,
"parent_office_external_id": "14679",
"child_ids": [
50852,
50891
],
"child_office_external_ids": [
"13473",
"123473"
],
"external_id": "15679"
}
],
"departments": [
{
"id": 25907,
"name": "Research & Development",
"parent_id": 25908,
"parent_department_external_id": "13473",
"child_ids": [
50852,
50891
],
"child_department_external_ids": [
"13473",
"123473"
],
"external_id": "15679"
}
]
}
}

List Applications

Get a list of applications | key: listApplications

InputNotesExample
Connection

The Greenhouse connection to use.

Created After

Return only candidates that were created at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Created Before

Return only candidates that were created before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Job ID

If supplied, only return candidates that have applied to this job. Will return both when a candidate has applied to a job and when they're a prospect for a job

127817
Last Activity After

Return only applications where 'last_activity_at' is at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Page

A cursor for use in pagination. Returns the n-th chunk of per_page objects.

1
Per Page

Return up to this number of objects per response. Must be an integer between 1 and 500. Defaults to 100.

100
Status

If supplied, only return applications that match this status. Accepted values are active, converted, hired, and rejected. If anything else is used, an empty response will be returned rather than an error.

active
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": [
{
"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"
},
"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"
},
"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"
}
]
}
]
}

List Candidates

Get a list of Candidates | key: listCandidates

InputNotesExample
Candidate Ids

If supplied, return only the candidates with the given ids. These are supplied as a comma separated string. e.g.: “candidate_ids=123,456,789”. When combined with job_id, only return candidates with an application on the job. A maximum of 50 candidates can be returned this way.

123,456,789
Connection

The Greenhouse connection to use.

Created After

Return only candidates that were created at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Created Before

Return only candidates that were created before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Email

If supplied, only return candidates who have a matching e-mail address. If supplied with job_id, only return a candidate with a matching e-mail with an application on the job. If email and candidate_ids are included, candidate_ids will be ignored.

john.doe@example.com
Job ID

If supplied, only return candidates that have applied to this job. Will return both when a candidate has applied to a job and when they're a prospect for a job

127817
Page

A cursor for use in pagination. Returns the n-th chunk of per_page objects.

1
Per Page

Return up to this number of objects per response. Must be an integer between 1 and 500. Defaults to 100.

100
Updated After

Return only candidates that were updated at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Updated Before

Return only candidates that were updated before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": [
{
"id": 53883394,
"first_name": "John",
"last_name": "Locke",
"company": "The Tustin Box Company",
"title": "Man of Mystery",
"created_at": "2017-08-15T03:31:46.591Z",
"updated_at": "2017-09-28T12:29:30.497Z",
"last_activity": "2017-09-28T12:29:30.481Z",
"is_private": false,
"photo_url": null,
"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"
}
],
"application_ids": [
69103370,
65153308
],
"phone_numbers": [
{
"value": "555-555-5555",
"type": "mobile"
}
],
"addresses": [
{
"value": "123 City Street\nNew York, Ny 10001",
"type": "home"
}
],
"email_addresses": [
{
"value": "test@work.com",
"type": "work"
}
],
"website_addresses": [
{
"value": "mysite.com",
"type": "personal"
}
],
"social_media_addresses": [],
"recruiter": {
"id": 92120,
"first_name": "Greenhouse",
"last_name": "Admin",
"name": "Greenhouse Admin",
"employee_id": null
},
"coordinator": null,
"can_email": true,
"tags": [
"Python",
"Ruby"
],
"applications": [
{
"id": 69103370,
"candidate_id": 53883394,
"prospect": true,
"applied_at": "2017-09-27T12:21:37.234Z",
"rejected_at": null,
"last_activity_at": "2017-09-28T12:29:30.481Z",
"location": {
"address": "New York, New York, USA"
},
"source": {
"id": 16,
"public_name": "LinkedIn (Prospecting)"
},
"credited_to": {
"id": 92120,
"first_name": "Greenhouse",
"last_name": "Admin",
"name": "Greenhouse Admin",
"employee_id": null
},
"rejection_reason": null,
"rejection_details": null,
"jobs": [
{
"id": 87752,
"name": "Full Stack Engineer"
}
],
"job_post_id": 123,
"status": "active",
"current_stage": null,
"answers": [],
"prospective_office": null,
"prospective_department": null,
"prospect_detail": {
"prospect_pool": {
"id": 224,
"name": "Cold Outreach: Sourced"
},
"prospect_stage": {
"id": 817,
"name": "Contacted"
},
"prospect_owner": {
"id": 92120,
"name": "Greenhouse Admin"
}
},
"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": 65153308,
"candidate_id": 53883394,
"prospect": false,
"applied_at": "2017-08-15T03:31:46.637Z",
"rejected_at": null,
"last_activity_at": "2017-09-28T12:29:30.481Z",
"location": null,
"source": {
"id": 12,
"public_name": "Meetups"
},
"credited_to": {
"id": 566819,
"first_name": "Bob",
"last_name": "Smith",
"name": "Bob Smith",
"employee_id": null
},
"rejection_reason": null,
"rejection_details": null,
"jobs": [
{
"id": 299100,
"name": "Data Scientist - BK"
}
],
"status": "active",
"current_stage": {
"id": 2966800,
"name": "Face to Face"
},
"answers": [],
"prospective_office": null,
"prospective_department": null,
"prospect_detail": {
"prospect_pool": null,
"prospect_stage": null,
"prospect_owner": null
},
"attachments": []
}
],
"educations": [
{
"id": 561227,
"school_name": "University of Michigan - Ann Arbor",
"degree": "Bachelor's Degree",
"discipline": "Computer Science",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"employments": [
{
"id": 8485064,
"company_name": "Greenhouse",
"title": "Engineer",
"start_date": "2012-08-15T00:00:00.000Z",
"end_date": "2016-05-15T00:00:00.000Z"
}
],
"linked_user_ids": [
989604
],
"custom_fields": {
"desired_salary": "1000000000",
"work_remotely": true,
"graduation_year": "2018"
},
"keyed_custom_fields": {
"desired_salary": {
"name": "Desired Salary",
"type": "short_text",
"value": "1000000000"
},
"work_remotely": {
"name": "Work Remotely",
"type": "boolean",
"value": true
},
"graduation_year_1": {
"name": "Graduation Year",
"type": "single_select",
"value": "2018"
}
}
}
]
}

List Jobs

Get a list of jobs | key: listJobs

InputNotesExample
Connection

The Greenhouse connection to use.

Created After

Return only candidates that were created at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Created Before

Return only candidates that were created before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Custom Fields

Array of hashes containing new custom field values. Passing an empty array does nothing.

Department ID

If included, will return only the jobs in this specific department.

123
External Department ID

This may be used instead of department_id and represents the ID of the department in an external system.

EXTERNAL_ID_1234
External Office ID

This may be used instead of office_id and represents the ID of the office in an external system.

abc13425
Office ID

If included, will return only the jobs in this specific office.

234
Opening ID

If included, will return only the jobs that contain at least one opening with the given opening_id.

123
Page

A cursor for use in pagination. Returns the n-th chunk of per_page objects.

1
Per Page

Return up to this number of objects per response. Must be an integer between 1 and 500. Defaults to 100.

100
Requisition ID

If included, will return only the jobs that match the given requisition_id.

abc-123
Status

One of 'open', 'closed', or 'draft'. If included, will only return jobs with that status.

active
Updated After

Return only candidates that were updated at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Updated Before

Return only candidates that were updated before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": [
{
"id": 6404,
"name": "Archaeologist",
"requisition_id": "abc123",
"notes": "<p>Resistance to electro-magnetic radiation a plus!</p>",
"confidential": false,
"status": "closed",
"created_at": "2013-12-10T14:42:58Z",
"opened_at": "2013-12-11T14:42:58Z",
"closed_at": "2013-12-12T14:42:58Z",
"updated_at": "2013-12-12T14:42:58Z",
"is_template": false,
"copied_from_id": 2345,
"departments": [
{
"id": 25907,
"name": "Second-Level department",
"parent_id": 25908,
"child_ids": [
14510
],
"external_id": "12345"
}
],
"offices": [
{
"id": 47012,
"name": "New York",
"location": {
"name": "New York, United States"
},
"primary_contact_user_id": 150893,
"parent_id": 50849,
"child_ids": [
50852,
50891
],
"external_id": "15679"
}
],
"custom_fields": {
"employment_type": "Full-Time",
"maximum_budget": "$81.5k",
"salary_range": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
},
"keyed_custom_fields": {
"employment_type": {
"name": "Time type",
"type": "single_select",
"value": "Full-Time"
},
"budget": {
"name": "Maximum Budget",
"type": "short_text",
"value": "Full-Time"
},
"salary_range": {
"name": "Salary Range",
"type": "currency_range",
"value": {
"min_value": 70000,
"max_value": 90000,
"unit": "USD"
}
}
},
"hiring_team": {
"hiring_managers": [
{
"id": 84275,
"first_name": "Kaylee",
"last_name": "Prime",
"name": "Kaylee Prime",
"employee_id": "13636"
},
{
"id": 169779,
"first_name": "Hank",
"last_name": "Hollandaise",
"name": "Hank Hollandaise",
"employee_id": "34537"
}
],
"recruiters": [
{
"id": 81111,
"first_name": "Samuel",
"last_name": "Skateboard",
"name": "Samuel Skateboard",
"employee_id": "34531",
"responsible": false
},
{
"id": 153448,
"first_name": "Stegosaurus",
"last_name": "Heels",
"name": "Stegosaurus Heels",
"employee_id": "45748",
"responsible": true
}
],
"coordinators": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327",
"responsible": true
},
{
"id": 177046,
"first_name": "Mirandella",
"last_name": "Lager",
"name": "Mirandella Lager",
"employee_id": "43626",
"responsible": false
}
],
"sourcers": [
{
"id": 122635,
"first_name": "Teddy",
"last_name": "Pizzazz",
"name": "Teddy Pizzazz",
"employee_id": "47327"
}
]
},
"openings": [
{
"id": 123,
"opening_id": "3-1",
"status": "open",
"opened_at": "2015-11-20T23:14:14.736Z",
"closed_at": "2017-11-20T23:14:14.736Z",
"application_id": 45678,
"close_reason": {
"id": 678,
"name": "Hired - Backfill"
}
},
{
"id": 124,
"opening_id": "3-2",
"status": "open",
"opened_at": "2015-11-20T23:14:14.739Z",
"closed_at": null,
"application_id": null,
"close_reason": null
},
{
"id": 125,
"opening_id": null,
"status": "open",
"opened_at": "2016-02-03T20:00:00.000Z",
"closed_at": null,
"application_id": null
},
{
"id": 126,
"opening_id": "2-4",
"status": "closed",
"opened_at": "2016-02-03T16:38:46.985Z",
"closed_at": "2016-02-03T16:39:09.811Z",
"application_id": 1232,
"close_reason": {
"id": 689,
"name": "Hired"
}
}
]
}
]
}

List Users

Get a list of Users | key: listUsers

InputNotesExample
Connection

The Greenhouse connection to use.

Created After

Return only candidates that were created at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Created Before

Return only candidates that were created before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Email

The user's email address. Must be a valid email address.

john.doe@example.com
Employee Id

The user's external employee ID.

12345
Page

A cursor for use in pagination. Returns the n-th chunk of per_page objects.

1
Per Page

Return up to this number of objects per response. Must be an integer between 1 and 500. Defaults to 100.

100
Updated After

Return only candidates that were updated at or after this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-01T00:00:00Z
Updated Before

Return only candidates that were updated before this timestamp. Timestamp must be in in ISO-8601 format.

2024-01-15T10:30:00Z
Include User Attributes

When true, include user attributes in the response.

false
Api Version

The version of the API to use. Defaults to "v1".

v1

{
"data": [
{
"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": 47012,
"name": "New York",
"location": {
"name": "New York, United States"
},
"primary_contact_user_id": 150893,
"parent_id": 50849,
"parent_office_external_id": "14679",
"child_ids": [
50852,
50891
],
"child_office_external_ids": [
"13473",
"123473"
],
"external_id": "15679"
}
],
"departments": [
{
"id": 25907,
"name": "Research & Development",
"parent_id": 25908,
"parent_department_external_id": "13473",
"child_ids": [
50852,
50891
],
"child_department_external_ids": [
"13473",
"123473"
],
"external_id": "15679"
}
]
},
{
"id": 712,
"name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"primary_email_address": "john.doe@example.com",
"updated_at": "2016-11-03T18:05:47.361Z",
"created_at": "2015-11-18T22:27:11.111Z",
"disabled": false,
"site_admin": true,
"emails": [
"john.doe@example.com"
],
"employee_id": "700",
"linked_candidate_ids": [
789,
1022
],
"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"
}
]
}
]
}

Raw Request

Send raw HTTP request to Greenhouse | key: rawRequest

InputNotesExample
Connection

The Greenhouse connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/jobs), The base URL is already included (https://harvest.greenhouse.io/{version}). For example, to connect to https://harvest.greenhouse.io/v1/jobs, only /jobs is entered in this field.

/jobs
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false
Api Version

The version of the API to use. Defaults to "v1".

v1

Changelog

2026-04-10

Updated example payloads

2026-04-07

Added trigger documentation and global debug support across all actions for improved troubleshooting

2026-03-31

Various modernizations and documentation updates

2026-03-13

Removed the Debug Request input from all action inputs. Debug logging is now controlled internally and no longer appears as a configurable field in actions.

2026-02-26

Added inline data sources for offices, departments, applications, users, candidates, jobs, and templates to enable dynamic dropdown selection