canonical: https://jentic.com/apis/greenhouse.io/greenhouse-harvest

# Greenhouse Harvest API

Jentic publishes the only available OpenAPI specification for Greenhouse Harvest API, keeping it validated and agent-ready. Export and manage recruiting data across 20 endpoints covering candidates, applications, jobs, interviews, scorecards, and organizational structure. Advance or reject applications programmatically, retrieve structured interview scorecards, and access department and office hierarchies for reporting.

## For AI agents

Retrieve candidate profiles, advance or reject applications, access interview scorecards, and query job and department data from a Greenhouse account.

## Scope

Does not handle job board posting distribution, employee onboarding, payroll, or HRIS functions - use for recruiting data export and candidate pipeline management only.

## Capabilities

- Search candidates by name, email, or application status across all jobs
- Advance applications through interview stages or reject with configurable reasons
- Retrieve structured interview scorecards with ratings and interviewer comments
- Query open jobs with department, office, and hiring team associations
- Access organizational hierarchy through departments and offices endpoints
- Pull scheduled interview details including date, interviewers, and location

## Use cases

### AI Agent Hiring Pipeline Automation

AI agents use the Greenhouse Harvest API through Jentic to automate hiring decisions without direct Greenhouse credentials. An agent searches for 'advance application to next stage', loads the schema for the advance endpoint, and moves qualified candidates forward based on scorecard ratings. The reject endpoint handles automated declinations with configurable reason codes.

Example prompt: Retrieve all applications for job ID J001 in the 'Technical Screen' stage, check their scorecard ratings, and advance those with average rating above 4 to 'On-Site'

### Candidate Data Export

Export structured candidate data for analytics, compliance reporting, or syncing with downstream HRIS systems. The candidates endpoint returns profile information, application history, and current status across all jobs. Paginated responses support incremental sync patterns for large candidate databases without overwhelming system resources.

Example prompt: Retrieve all candidates who applied in the last 30 days and return their name, email, current application stage, and applied job title

### Interview Scorecard Analysis

Access structured interview feedback through the scorecards endpoint to aggregate ratings, identify patterns in interviewer assessments, and generate hiring committee summaries. Each scorecard includes the interviewer, rating scales, attribute scores, and free-text comments tied to a specific interview for a candidate.

Example prompt: Retrieve all scorecards for candidate ID C001 and calculate the average overall rating across all interviewers

### Job and Department Reporting

Build organizational hiring reports by querying jobs with their department and office associations. The jobs endpoint returns hiring team members, opening count, and status while departments and offices provide the org structure. Combined queries enable headcount planning dashboards and time-to-fill metrics by department.

Example prompt: List all open jobs grouped by department and return the job title, number of openings, and days since posting for each

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/candidates` | List all candidates |
| GET | `/candidates/{id}` | Get a specific candidate |
| GET | `/applications` | List all applications |
| POST | `/applications/{id}/advance` | Advance an application to next stage |
| POST | `/applications/{id}/reject` | Reject an application |
| GET | `/jobs` | List all jobs |
| GET | `/scorecards` | List interview scorecards |
| GET | `/scheduled_interviews` | List scheduled interviews |

## Key resources

- **Candidates** — Candidate profiles with contact info, tags, and application history
- **Applications** — Job applications with stage tracking, advancement, and rejection operations
- **Jobs** — Job postings with departments, offices, hiring teams, and opening counts
- **Scorecards** — Structured interview feedback with ratings and interviewer assessments
- **Scheduled Interviews** — Upcoming and past interviews with participants, dates, and locations

## Why Jentic

- **Setup:** Wiring the Greenhouse Harvest API by hand means base64-encoding its basic-auth key, pointing at the harvest.greenhouse.io host, and mapping the candidate, application, job, scorecard, and interview endpoints yourself. Through Jentic you install once, import the Greenhouse Harvest API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Greenhouse Harvest puts the application id in the URL path (`/applications/{id}/advance`, `/applications/{id}/reject`), so a rule can pin your agent to one application: it can read that application's stage and nothing else. You choose the operations it may call, so ones like advancing or rejecting an application are not included unless you add them.
- **Credential handling:** Your Greenhouse Harvest key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'export candidates in a pipeline' or 'read an application's scorecards', and Jentic returns the matching Greenhouse Harvest operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Lever API** — Recruiting platform with opportunities-based pipeline, referral tracking, and offer management
- **SmartRecruiters API** — Enterprise hiring platform with job board distribution and vendor marketplace
- **Ashby API** — Modern ATS with native analytics, scheduling, and candidate CRM
- **BambooHR API** — Full HRIS with employee records, onboarding, and time-off management

## FAQ

### Why is there no official OpenAPI spec for Greenhouse Harvest API?

Greenhouse does not publish an OpenAPI specification for the Harvest API. Jentic generates and maintains this spec so that AI agents and developers can call Greenhouse Harvest API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Greenhouse Harvest API use?

The API uses HTTP Basic authentication with your Harvest API token as the username and an empty password. Tokens are generated per-user in Greenhouse settings with configurable permission scopes. Through Jentic, the Harvest API token is stored in your Jentic One instance so agents authenticate without handling the raw token.

### Can I advance or reject applications through the Greenhouse Harvest API?

Yes. POST `/applications/{id}/advance` moves an application to the next configured stage in the job's interview plan. POST `/applications/{id}/reject` marks an application as rejected with an optional rejection reason ID and email notification flag. Both operations require the application ID and appropriate API token permissions.

### What are the rate limits for the Greenhouse Harvest API?

Greenhouse enforces a rate limit of 50 requests per 10 seconds for the Harvest API. Exceeding this returns HTTP 429 with a Retry-After header. List endpoints support pagination via the per_page parameter (max 500) and Link headers for cursor-based traversal of large result sets.

### How do I retrieve interview scorecards through Jentic?

Search Jentic for 'get interview scorecards for candidate', load the schema for GET /scorecards with the application_id filter parameter, and execute. The response includes each scorecard's overall recommendation, attribute ratings, and interviewer comments. Install with pip install jentic and authenticate through Jentic One, the self-hosted execution layer.

### What candidate data can I access through the Harvest API?

GET /candidates returns candidate profiles including name, email addresses, phone numbers, tags, and linked applications. GET `/candidates/{id}` provides full detail for a single candidate. The applications sub-resource shows which jobs they applied to, their current stage, and rejection status if applicable.

### Can I limit what my agent is allowed to do with the Greenhouse Harvest API?

Yes. Jentic One is self-hosted, so you run it and your own rules decide which Greenhouse Harvest operations and credentials your agent may use. Because the application id sits in the URL path, such as `/applications/{id}/advance` and `/applications/{id}/reject`, a rule can pin the agent to a single application and let it read that application's stage and nothing else. Write operations like advancing or rejecting an application are only callable if you explicitly add them, so a read-only agent stays limited to endpoints like GET /candidates and GET /scorecards.
