Greenhouse
Greenhouse is a leading Applicant Tracking System (ATS) and recruiting platform that helps organizations streamline their hiring process. It provides comprehensive tools for managing candidates, tracking applications through interview pipelines, scheduling interviews, collecting feedback via scorecards, extending offers, and analyzing recruiting metrics.
Authentication Types
Greenhouse supports 2 authentication methods:
-
OAuth 2.0 (Client Credentials) - Create OAuth credentials in Greenhouse for server-to-server authentication.
- Pros: Secure, automatic token refresh, granular scope control, production-ready
- Cons: Requires Site Admin access to set up, tokens expire after 1 hour
- Best for: Production integrations, automated workflows, compliance requirements
-
API Key - Use a Harvest API key for all requests.
- Pros: Simple setup, no token expiration handling needed
- Cons: Static credential, requires rotation management, binary access control (all or nothing per endpoint)
- Best for: Development, testing, single-user scenarios
General Settings
Before using the connector, you need to configure your Greenhouse base URL:
- Greenhouse API Version - The connector uses Harvest API v3 (
https://harvest.greenhouse.io/v3)
Greenhouse Harvest API provides read and write access to most data in your Greenhouse account. Make sure to grant only the scopes and endpoints your integration needs.
Setting up OAuth 2.0 (Client Credentials)
OAuth 2.0 with Client Credentials flow is the recommended authentication method for custom integrations. You'll need Site Admin privileges.
-
Log in to your Greenhouse account with Site Admin access
-
Navigate to Configure → Dev Center → API Credential Management
-
Click Create New Credential
-
Select Harvest v3 as the API type
-
Select OAuth 2.0 as the authentication method
-
Fill in the credential details:
- Credential Name: Give it a descriptive name (e.g., "Webrix AI Integration")
- Description: Optional description of what this integration does
-
Click Create
-
After creation, you'll see your Client ID and Client Secret - copy both immediately
cautionThe Client Secret is only shown once. Store it securely - if you lose it, you'll need to create new credentials.
-
Configure endpoint permissions:
- Click Manage Permissions next to your new credential
- Grant access to the specific API endpoints your integration needs
- For full functionality, grant access to all Harvest v3 endpoints
-
In Webrix, go to Integrations → New → Built-in
-
Select Greenhouse and click Use
-
Under Authentication Type, select OAuth 2.0 (Client Credentials)
-
Paste your Client ID in the Client ID field
-
Paste your Client Secret in the Client Secret field
-
Click Save Changes
-
Click Connect to test the authentication
OAuth 2.0 access tokens expire after 1 hour. The integration will automatically request new tokens using the client credentials when needed.
Setting up API Key
API Keys provide simpler authentication but require manual management. You'll need Site Admin privileges.
-
Log in to your Greenhouse account with Site Admin access
-
Navigate to Configure → Dev Center → API Credential Management
-
Click Create New Credential
-
Select Harvest v3 (or Harvest v1 for legacy) as the API type
-
Select API Key as the authentication method
-
Fill in the credential details:
- Credential Name: Give it a descriptive name (e.g., "Webrix Integration Key")
- Description: Optional description
-
Click Create
-
After creation, copy the API Key shown
cautionThe API Key is only shown once. Store it securely - if you lose it, you'll need to generate a new key.
-
Configure endpoint permissions:
- Click Manage Permissions next to your new credential
- Grant access to the specific API endpoints your integration needs
- Access is binary per endpoint: you either have full access or no access
-
In Webrix:
- Select API Key as the authentication type
- Paste your API Key
- Click Save Changes
API Keys never expire but should be rotated regularly as a security best practice. You can create multiple API keys for different integrations.
Available Operations
The Greenhouse connector provides 28 tools across 7 categories:
Candidates (6 tools)
- List Candidates - Search and filter candidates with cursor-based pagination
- Get Candidate - Retrieve complete candidate profile including applications and attachments
- Create Candidate - Add new candidates with contact information and tags
- Update Candidate - Edit candidate profiles and contact details
- Add Candidate Note - Record notes and observations about candidates
- Add Candidate Attachment - Upload resumes, cover letters, and other documents
Applications (7 tools)
- List Applications - Browse applications with filtering by job, candidate, status, or date
- Get Application - Retrieve detailed application information and history
- Create Application - Submit a candidate's application to a specific job
- Advance Application - Move applications to the next stage in the pipeline
- Reject Application - Reject applications with reasons and optional rejection emails
- Hire Application - Mark applications as hired and fill job openings
- Move Application to Different Job - Transfer applications between jobs
Jobs & Openings (5 tools)
- List Jobs - Browse all jobs with filtering by status, department, or office
- Get Job - Retrieve complete job details including stages and hiring team
- List Job Posts - View public job board postings and internal postings
- List Job Openings - Get all available positions for a specific job
- Get Job Hiring Team - Retrieve the team members responsible for a job
Interviews & Scorecards (4 tools)
- List Scheduled Interviews - View upcoming and past interviews across all applications
- Create Scheduled Interview - Schedule new interviews with date, location, and interviewers
- List Scorecards - Browse interview feedback and evaluations
- Get Scorecard - Retrieve detailed scorecard with questions, ratings, and recommendations
Offers (2 tools)
- List Offers - Browse all job offers with date filtering
- Get Current Offer for Application - Retrieve the active offer for a specific application
Organization & Settings (4 tools)
- List Users - View all Greenhouse users and team members
- List Departments - Get organizational departments
- List Offices - Get office locations and regions
- List Custom Fields - View custom field definitions for candidates, applications, and jobs
Tags, Activity & Reference Data (4 tools)
- List Candidate Tags - Get all available candidate tags
- Get Activity Feed - Retrieve audit log of all system activities
- List Rejection Reasons - Get configured rejection reasons for applications
- List Sources - View candidate sources and recruiting channels
Common Use Cases
Candidate Sourcing Workflow
- Use Create Candidate to add a new candidate
- Use Add Candidate Attachment to upload their resume
- Use Create Application to submit them for a job
- Track their progress through the pipeline
Interview Scheduling
- Use List Jobs to find the job
- Use Get Job to see available interview stages
- Use Create Scheduled Interview to schedule interviews
- Use List Scorecards to review feedback after interviews
Application Management
- Use List Applications to find applications in a specific stage
- Use Advance Application to move qualified candidates forward
- Use Reject Application for candidates who don't meet requirements
- Use Hire Application when a candidate accepts an offer
Reporting & Analytics
- Use Get Activity Feed to track all recruiting activities
- Use List Applications with date filters to analyze pipeline metrics
- Use List Scorecards to evaluate interviewer feedback quality
- Use List Sources to measure recruiting channel effectiveness
Troubleshooting
"Unauthorized" or 401 Errors
Cause: Invalid credentials or expired access token.
Solution:
- For OAuth: Verify your Client ID and Client Secret are correct
- For API Key: Verify your API key is correctly entered and not revoked
- Check that the credentials haven't been deleted in Greenhouse
- Ensure the credentials have not expired or been rotated
"Forbidden" or 403 Errors
Cause: Your credentials don't have permission to access a specific endpoint.
Solution:
- Go to Greenhouse → Configure → Dev Center → API Credential Management
- Click Manage Permissions next to your credential
- Grant access to the required endpoint
- Note that access is binary per endpoint - you need explicit permission
"Not Found" or 404 Errors
Cause: The requested resource doesn't exist or you don't have access.
Solution:
- Verify the ID you're using is correct
- Check that the resource hasn't been deleted
- Ensure your credential has permission to view that resource type
Rate Limit Exceeded (429 Errors)
Cause: You've exceeded Greenhouse's API rate limits.
Solution:
- Check the
X-RateLimit-LimitandX-RateLimit-Remainingheaders - Implement exponential backoff and retry logic
- Use the
X-RateLimit-Resetheader to know when to retry - Contact Greenhouse if you need higher rate limits for production use
"Validation Error" or 422 Errors
Cause: Invalid data in your request.
Solution:
- Review the error message for specific field issues
- Ensure required fields are included
- Verify data types match expected formats (e.g., ISO-8601 for dates)
- Check that IDs reference valid existing resources
OAuth Token Refresh Failures
Cause: Client credentials are invalid or permissions changed.
Solution:
- Verify Client ID and Client Secret are still valid
- Check that the OAuth credential wasn't deleted or regenerated
- Re-enter the credentials in Webrix
- Test the connection again
Security Best Practices
- Principle of Least Privilege: Grant only the endpoint permissions your integration needs
- Credential Rotation: Regularly rotate API keys (every 90 days recommended)
- Secure Storage: Never commit credentials to source control or share them via unencrypted channels
- Monitor Access: Review the Activity Feed regularly to audit API usage
- User Attribution: Use OAuth for production to track which user performed each action
- Separate Environments: Use different credentials for development, staging, and production
API Rate Limits
Greenhouse enforces rate limits per 10-second windows:
- The exact limit is returned in the
X-RateLimit-Limitheader - Remaining requests are in the
X-RateLimit-Remainingheader - When limit is exceeded, requests return HTTP 429
- The
Retry-Afterheader indicates when you can retry - Approved partners may have higher limits
Additional Resources
- Greenhouse Harvest API Documentation
- Greenhouse Harvest v3 API Documentation
- Greenhouse API Authentication Guide
- Greenhouse Developer Portal
- Greenhouse Support Center
Differences Between Harvest v1 and v3
If you're familiar with Harvest v1 or v2, note these key differences in v3:
- Pagination: v3 uses cursor-based pagination instead of offset-based
- Authentication: v3 supports OAuth 2.0 Client Credentials flow
- Filtering: Enhanced filtering with
created_after,updated_after, and other parameters - Performance: Improved performance for large data sets
- Scopes: More granular scope control for OAuth integrations
This connector uses Harvest API v3. If you need v1 compatibility, please contact support.