Greenhouse
Manage candidates, jobs, and applications in Greenhouse
Greenhouse is a leading applicant tracking system (ATS) and hiring platform designed to help companies optimize their recruiting processes. Greenhouse provides structured hiring workflows, candidate management, interview scheduling, and analytics to help organizations make better hiring decisions at scale.
With the Greenhouse integration in Cadense, you can:
- Manage candidates: List and retrieve detailed candidate profiles including contact information, tags, and application history
- Track jobs: List and view job postings with details on hiring teams, openings, and confidentiality settings
- Monitor applications: List and retrieve applications with status, source, and interview stage information
- Access user data: List and look up Greenhouse users including recruiters, coordinators, and hiring managers
- Browse organizational data: List departments, offices, and job stages to understand your hiring pipeline structure
In Cadense, the Greenhouse integration enables your agents to interact with your recruiting data as part of automated workflows. Agents can pull candidate information, monitor application pipelines, track job openings, and cross-reference hiring team data—all programmatically. This is ideal for building automated recruiting reports, candidate pipeline monitoring, hiring analytics dashboards, and workflows that react to changes in your talent pipeline.
Usage Instructions
Integrate Greenhouse into the workflow. List and retrieve candidates, jobs, applications, users, departments, offices, and job stages from your Greenhouse ATS account.
Tools
greenhouse_list_candidates
Lists candidates from Greenhouse with optional filtering by date, job, or email
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
created_after | string | No | Return only candidates created at or after this ISO 8601 timestamp |
created_before | string | No | Return only candidates created before this ISO 8601 timestamp |
updated_after | string | No | Return only candidates updated at or after this ISO 8601 timestamp |
updated_before | string | No | Return only candidates updated before this ISO 8601 timestamp |
job_id | string | No | Filter to candidates who applied to this job ID (excludes prospects) |
email | string | No | Filter to candidates with this email address |
candidate_ids | string | No | Comma-separated candidate IDs to retrieve (max 50) |
Output
| Parameter | Type | Description |
|---|---|---|
candidates | array | List of candidates |
↳ id | number | Candidate ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ company | string | Current employer |
↳ title | string | Current job title |
↳ is_private | boolean | Whether candidate is private |
↳ can_email | boolean | Whether candidate can be emailed |
↳ email_addresses | array | Email addresses |
↳ value | string | Email address |
↳ type | string | Email type (personal, work, other) |
↳ tags | array | Candidate tags |
↳ application_ids | array | Associated application IDs |
↳ created_at | string | Creation timestamp (ISO 8601) |
↳ updated_at | string | Last updated timestamp (ISO 8601) |
↳ last_activity | string | Last activity timestamp (ISO 8601) |
count | number | Number of candidates returned |
greenhouse_get_candidate
Retrieves a specific candidate by ID with full details including contact info, education, and employment history
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
candidateId | string | Yes | The ID of the candidate to retrieve |
Output
| Parameter | Type | Description |
|---|---|---|
id | number | Candidate ID |
first_name | string | First name |
last_name | string | Last name |
company | string | Current employer |
title | string | Current job title |
is_private | boolean | Whether candidate is private |
can_email | boolean | Whether candidate can be emailed |
created_at | string | Creation timestamp (ISO 8601) |
updated_at | string | Last updated timestamp (ISO 8601) |
last_activity | string | Last activity timestamp (ISO 8601) |
email_addresses | array | Email addresses |
↳ value | string | Email address |
↳ type | string | Type (personal, work, other) |
phone_numbers | array | Phone numbers |
↳ value | string | Phone number |
↳ type | string | Type (home, work, mobile, skype, other) |
addresses | array | Addresses |
↳ value | string | Address |
↳ type | string | Type (home, work, other) |
website_addresses | array | Website addresses |
↳ value | string | URL |
↳ type | string | Type (personal, company, portfolio, blog, other) |
social_media_addresses | array | Social media profiles |
↳ value | string | URL or handle |
tags | array | Tags |
application_ids | array | Associated application IDs |
recruiter | object | Assigned recruiter |
↳ id | number | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ name | string | Full name |
↳ employee_id | string | Employee ID |
coordinator | object | Assigned coordinator |
↳ id | number | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ name | string | Full name |
↳ employee_id | string | Employee ID |
attachments | array | File attachments (URLs expire after 7 days) |
↳ filename | string | File name |
↳ url | string | Download URL (expires after 7 days) |
↳ type | string | Type (resume, cover_letter, offer_packet, other) |
↳ created_at | string | Upload timestamp |
educations | array | Education history |
↳ id | number | Education record ID |
↳ school_name | string | School name |
↳ degree | string | Degree type |
↳ discipline | string | Field of study |
↳ start_date | string | Start date (ISO 8601) |
↳ end_date | string | End date (ISO 8601) |
employments | array | Employment history |
↳ id | number | Employment record ID |
↳ company_name | string | Company name |
↳ title | string | Job title |
↳ start_date | string | Start date (ISO 8601) |
↳ end_date | string | End date (ISO 8601) |
custom_fields | object | Custom field values |
greenhouse_list_jobs
Lists jobs from Greenhouse with optional filtering by status, department, or office
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
status | string | No | Filter by job status (open, closed, draft) |
created_after | string | No | Return only jobs created at or after this ISO 8601 timestamp |
created_before | string | No | Return only jobs created before this ISO 8601 timestamp |
updated_after | string | No | Return only jobs updated at or after this ISO 8601 timestamp |
updated_before | string | No | Return only jobs updated before this ISO 8601 timestamp |
department_id | string | No | Filter to jobs in this department ID |
office_id | string | No | Filter to jobs in this office ID |
Output
| Parameter | Type | Description |
|---|---|---|
jobs | array | List of jobs |
↳ id | number | Job ID |
↳ name | string | Job title |
↳ status | string | Job status (open, closed, draft) |
↳ confidential | boolean | Whether the job is confidential |
↳ departments | array | Associated departments |
↳ id | number | Department ID |
↳ name | string | Department name |
↳ offices | array | Associated offices |
↳ id | number | Office ID |
↳ name | string | Office name |
↳ opened_at | string | Date job was opened (ISO 8601) |
↳ closed_at | string | Date job was closed (ISO 8601) |
↳ created_at | string | Creation timestamp (ISO 8601) |
↳ updated_at | string | Last updated timestamp (ISO 8601) |
count | number | Number of jobs returned |
greenhouse_get_job
Retrieves a specific job by ID with full details including hiring team, openings, and custom fields
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
jobId | string | Yes | The ID of the job to retrieve |
Output
| Parameter | Type | Description |
|---|---|---|
id | number | Job ID |
name | string | Job title |
requisition_id | string | External requisition ID |
status | string | Job status (open, closed, draft) |
confidential | boolean | Whether the job is confidential |
created_at | string | Creation timestamp (ISO 8601) |
opened_at | string | Date job was opened (ISO 8601) |
closed_at | string | Date job was closed (ISO 8601) |
updated_at | string | Last updated timestamp (ISO 8601) |
is_template | boolean | Whether this is a job template |
notes | string | Hiring plan notes (may contain HTML) |
departments | array | Associated departments |
↳ id | number | Department ID |
↳ name | string | Department name |
↳ parent_id | number | Parent department ID |
offices | array | Associated offices |
↳ id | number | Office ID |
↳ name | string | Office name |
↳ location | object | Office location |
↳ name | string | Location name |
hiring_team | object | Hiring team members |
↳ hiring_managers | array | Hiring managers |
↳ recruiters | array | Recruiters (includes responsible flag) |
↳ coordinators | array | Coordinators (includes responsible flag) |
↳ sourcers | array | Sourcers |
openings | array | Job openings/slots |
↳ id | number | Opening internal ID |
↳ opening_id | string | Custom opening identifier |
↳ status | string | Opening status (open, closed) |
↳ opened_at | string | Date opened (ISO 8601) |
↳ closed_at | string | Date closed (ISO 8601) |
↳ application_id | number | Hired application ID |
↳ close_reason | object | Reason for closing |
↳ id | number | Close reason ID |
↳ name | string | Close reason name |
custom_fields | object | Custom field values |
greenhouse_list_applications
Lists applications from Greenhouse with optional filtering by job, status, or date
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
job_id | string | No | Filter applications by job ID |
status | string | No | Filter by status (active, converted, hired, rejected) |
created_after | string | No | Return only applications created at or after this ISO 8601 timestamp |
created_before | string | No | Return only applications created before this ISO 8601 timestamp |
last_activity_after | string | No | Return only applications with activity at or after this ISO 8601 timestamp |
Output
| Parameter | Type | Description |
|---|---|---|
applications | array | List of applications |
↳ id | number | Application ID |
↳ candidate_id | number | Associated candidate ID |
↳ prospect | boolean | Whether this is a prospect application |
↳ status | string | Status (active, converted, hired, rejected) |
↳ current_stage | object | Current interview stage |
↳ id | number | Stage ID |
↳ name | string | Stage name |
↳ jobs | array | Associated jobs |
↳ id | number | Job ID |
↳ name | string | Job name |
↳ applied_at | string | Application date (ISO 8601) |
↳ rejected_at | string | Rejection date (ISO 8601) |
↳ last_activity_at | string | Last activity date (ISO 8601) |
count | number | Number of applications returned |
greenhouse_get_application
Retrieves a specific application by ID with full details including source, stage, answers, and attachments
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
applicationId | string | Yes | The ID of the application to retrieve |
Output
| Parameter | Type | Description |
|---|---|---|
id | number | Application ID |
candidate_id | number | Associated candidate ID |
prospect | boolean | Whether this is a prospect application |
status | string | Status (active, converted, hired, rejected) |
applied_at | string | Application date (ISO 8601) |
rejected_at | string | Rejection date (ISO 8601) |
last_activity_at | string | Last activity date (ISO 8601) |
location | object | Candidate location |
↳ address | string | Location address |
source | object | Application source |
↳ id | number | Source ID |
↳ public_name | string | Source name |
credited_to | object | User credited for the application |
↳ id | number | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ name | string | Full name |
↳ employee_id | string | Employee ID |
recruiter | object | Assigned recruiter |
↳ id | number | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ name | string | Full name |
↳ employee_id | string | Employee ID |
coordinator | object | Assigned coordinator |
↳ id | number | User ID |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ name | string | Full name |
↳ employee_id | string | Employee ID |
current_stage | object | Current interview stage (null when hired) |
↳ id | number | Stage ID |
↳ name | string | Stage name |
rejection_reason | object | Rejection reason |
↳ id | number | Rejection reason ID |
↳ name | string | Rejection reason name |
↳ type | object | Rejection reason type |
↳ id | number | Type ID |
↳ name | string | Type name |
jobs | array | Associated jobs |
↳ id | number | Job ID |
↳ name | string | Job name |
job_post_id | number | Job post ID |
answers | array | Application question answers |
↳ question | string | Question text |
↳ answer | string | Answer text |
attachments | array | File attachments (URLs expire after 7 days) |
↳ filename | string | File name |
↳ url | string | Download URL (expires after 7 days) |
↳ type | string | Type (resume, cover_letter, offer_packet, other) |
↳ created_at | string | Upload timestamp |
custom_fields | object | Custom field values |
greenhouse_list_users
Lists Greenhouse users (recruiters, hiring managers, admins) with optional filtering
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
created_after | string | No | Return only users created at or after this ISO 8601 timestamp |
created_before | string | No | Return only users created before this ISO 8601 timestamp |
updated_after | string | No | Return only users updated at or after this ISO 8601 timestamp |
updated_before | string | No | Return only users updated before this ISO 8601 timestamp |
email | string | No | Filter by email address |
Output
| Parameter | Type | Description |
|---|---|---|
users | array | List of Greenhouse users |
↳ id | number | User ID |
↳ name | string | Full name |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ primary_email_address | string | Primary email |
↳ disabled | boolean | Whether the user is disabled |
↳ site_admin | boolean | Whether the user is a site admin |
↳ emails | array | All email addresses |
↳ employee_id | string | Employee ID |
↳ linked_candidate_ids | array | IDs of candidates linked to this user |
↳ created_at | string | Creation timestamp (ISO 8601) |
↳ updated_at | string | Last updated timestamp (ISO 8601) |
count | number | Number of users returned |
greenhouse_get_user
Retrieves a specific Greenhouse user by ID
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
userId | string | Yes | The ID of the user to retrieve |
Output
| Parameter | Type | Description |
|---|---|---|
id | number | User ID |
name | string | Full name |
first_name | string | First name |
last_name | string | Last name |
primary_email_address | string | Primary email address |
disabled | boolean | Whether the user is disabled |
site_admin | boolean | Whether the user is a site admin |
emails | array | All email addresses |
employee_id | string | Employee ID |
linked_candidate_ids | array | IDs of candidates linked to this user |
created_at | string | Creation timestamp (ISO 8601) |
updated_at | string | Last updated timestamp (ISO 8601) |
greenhouse_list_departments
Lists all departments configured in Greenhouse
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
Output
| Parameter | Type | Description |
|---|---|---|
departments | array | List of departments |
↳ id | number | Department ID |
↳ name | string | Department name |
↳ parent_id | number | Parent department ID |
↳ child_ids | array | Child department IDs |
↳ external_id | string | External system ID |
count | number | Number of departments returned |
greenhouse_list_offices
Lists all offices configured in Greenhouse
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
Output
| Parameter | Type | Description |
|---|---|---|
offices | array | List of offices |
↳ id | number | Office ID |
↳ name | string | Office name |
↳ location | object | Office location |
↳ name | string | Location name |
↳ primary_contact_user_id | number | Primary contact user ID |
↳ parent_id | number | Parent office ID |
↳ child_ids | array | Child office IDs |
↳ external_id | string | External system ID |
count | number | Number of offices returned |
greenhouse_list_job_stages
Lists all interview stages for a specific job in Greenhouse
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Greenhouse Harvest API key |
jobId | string | Yes | The job ID to list stages for |
per_page | number | No | Number of results per page (1-500, default 100) |
page | number | No | Page number for pagination |
Output
| Parameter | Type | Description |
|---|---|---|
stages | array | List of job stages in order |
↳ id | number | Stage ID |
↳ name | string | Stage name |
↳ created_at | string | Creation timestamp (ISO 8601) |
↳ updated_at | string | Last updated timestamp (ISO 8601) |
↳ job_id | number | Associated job ID |
↳ priority | number | Stage order priority |
↳ active | boolean | Whether the stage is active |
↳ interviews | array | Interview steps in this stage |
↳ id | number | Interview ID |
↳ name | string | Interview name |
↳ schedulable | boolean | Whether the interview is schedulable |
↳ estimated_minutes | number | Estimated duration in minutes |
↳ default_interviewer_users | array | Default interviewers |
↳ id | number | User ID |
↳ name | string | Full name |
↳ first_name | string | First name |
↳ last_name | string | Last name |
↳ employee_id | string | Employee ID |
↳ interview_kit | object | Interview kit details |
↳ id | number | Kit ID |
↳ content | string | Kit content (HTML) |
↳ questions | array | Interview kit questions |
↳ id | number | Question ID |
↳ question | string | Question text |
count | number | Number of stages returned |