Greenhouse ATS API / Harvest API
Pricing
from $0.01 / 1,000 results
Greenhouse ATS API / Harvest API
Automate your Greenhouse recruiting with Harvest API. Manage candidates, jobs, applications, offers, interviews & scorecards. Perfect for HR automation, candidate pipeline management & recruiting analytics. Build automations, sync candidate data, manage applications, & integrate w/your HR systems.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer

John Rippy
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Greenhouse ATS API - Recruiting Automation
Automate Greenhouse recruiting workflows. Manage candidates, jobs, applications, offers, interviews, and scorecards. Perfect for HR automation, candidate pipeline management, and recruiting analytics.
Features
Candidates
- List Candidates - Get all candidates with filtering
- Get Candidate - Retrieve candidate details
- Create Candidate - Add new candidate
- Update Candidate - Modify candidate info
Applications
- List Applications - Get all applications
- Get Application - Retrieve application details
- Move Application - Move to different stage
- Reject Application - Reject with reason
- Hire Application - Mark as hired
Jobs
- List Jobs - Get all open jobs
- Get Job - Retrieve job details
- List Job Stages - Get hiring pipeline stages
Offers
- List Offers - Get all offers
- Get Offer - Retrieve offer details
Scorecards
- List Scorecards - Get interview scorecards
- Get Scorecard - Retrieve scorecard details
Interviews
- List Scheduled Interviews - Get all scheduled interviews
Organization
- List Departments - Get all departments
- Get Department - Retrieve department details
- List Offices - Get all offices
- Get Office - Retrieve office details
- List Users - Get all users
- Get User - Retrieve user details
- List Sources - Get candidate sources
- List Rejection Reasons - Get rejection reasons
Quick Start
{"input": "your input here"}
Demo Mode
Set demoMode: true to test with sample data (no charges). When you're ready for real results, set demoMode: false or omit it.
{"demoMode": true,...}
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| task | string | Yes | Operation to perform |
| apiKey | string | Yes* | Harvest API key (*not needed for demoMode) |
| onBehalfOf | string | No | User ID for write operations |
| candidateId | string | No | Candidate ID |
| applicationId | string | No | Application ID |
| jobId | string | No | Job ID |
| stageId | string | No | Stage ID for moving applications |
| firstName | string | No | First name for new candidate |
| lastName | string | No | Last name for new candidate |
| string | No | Email for candidate | |
| status | string | No | Filter by status |
| createdAfter | string | No | Filter by created date |
| maxResults | integer | No | Max results (default: 100) |
| webhookUrl | string | No | URL to send results |
| demoMode | boolean | No | Run with sample data (default: true) |
Output Format
Results are saved to the default dataset:
Candidates List
{"task": "list_candidates","success": true,"candidates": [{"id": 12345678,"first_name": "Jane","last_name": "Smith","company": "Tech Corp","title": "Senior Engineer","emails": [{ "value": "jane@example.com", "type": "personal" }],"applications": [{"id": 11111111,"job": "Software Engineer","status": "active","current_stage": { "name": "Technical Interview" }}]}],"total": 156}
Job Stages
{"task": "list_job_stages","success": true,"stages": [{ "id": 1, "name": "Application Review", "priority": 0 },{ "id": 2, "name": "Phone Screen", "priority": 1 },{ "id": 3, "name": "Technical Interview", "priority": 2 },{ "id": 4, "name": "Onsite Interview", "priority": 3 },{ "id": 5, "name": "Offer", "priority": 4 }]}
Pricing
This actor uses pay-per-event billing: Pay-per-event pricing:
| Event | Price |
|---|---|
list_candidates | $0.01 |
manage_candidate | $0.02 |
list_applications | $0.01 |
manage_application | $0.02 |
list_jobs | $0.01 |
get_job | $0.01 |
list_job_stages | $0.005 |
list_offers | $0.01 |
list_scorecards | $0.01 |
list_scheduled_interviews | $0.01 |
list_departments | $0.005 |
list_offices | $0.005 |
list_users | $0.01 |
list_sources | $0.005 |
list_rejection_reasons | $0.005 |
get_hiring_metrics | $0.02 |
search_candidates | $0.01 |
export_pipeline | $0.02 |
Use Cases
HR Automation
- Sync candidates with HRIS
- Auto-update candidate status
- Generate hiring reports
Recruiting Operations
- Track pipeline metrics
- Monitor interview completion
- Alert on stalled candidates
CRM Integration
- Sync candidates to Salesforce
- Track referral sources
- Measure recruiting ROI
Analytics
- Export candidate data
- Analyze time-to-hire
- Track source effectiveness
Common Problems & Solutions
"Invalid API key" error
Cause: Your API key is wrong, expired, or doesn't have the right permissions. Fix: Double-check your API key. Make sure you copied it exactly without extra spaces.
"Rate limit exceeded" error
Cause: You've hit the API's rate limits. Fix: Wait a few minutes, then try again. Consider reducing the number of concurrent requests.
Empty or incomplete results
Cause: The target may have anti-scraping protection or the data doesn't exist. Fix:
- Check if the URL/search query is correct
- Try with different parameters
- Some sites may block automated access
Demo data showing instead of real results
Cause: demoMode is still set to true.
Fix: Set demoMode: false and provide your API key(s).
Built by John Rippy | Actor Arsenal