๐ฑ Greenhouse Jobs API
Pricing
from $2.99 / 1,000 results
๐ฑ Greenhouse Jobs API
๐ฑ Greenhouse Jobs API streamlines job data access from Greenhouse ATS. Fetch listings, details, and metadata fast for recruitment, analytics, and B2B automation. ๐ Build smarter hiring workflows with clean, reliable endpoints.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
๐ฑ Greenhouse Jobs API Scraper
Pull every public job posting from any company that hosts its careers page on Greenhouse โ straight from the official Greenhouse Boards API. Just paste one or more board URLs and get a clean, structured dataset with 94 fields per job, including geocoded locations and published salary ranges.
โก No login. No browser. Direct from
boards-api.greenhouse.io.
๐ก Why Choose This Actor?
- ๐ฏ Source-direct โ reads the official Greenhouse Boards API, so data is fresh and complete (no stale aggregation).
- ๐ Bulk input โ drop in as many board URLs as you like; tokens are auto-extracted from any Greenhouse URL format.
- ๐ Geocoding built in โ messy office addresses are resolved to city / region / country / timezone / lat-lng via OpenStreetMap, and cached for fast repeat runs.
- ๐ฐ Salary enrichment โ pulls published pay-transparency ranges per job.
- ๐ก๏ธ Bulletproof proxy fallback โ starts direct, then automatically climbs to datacenter and residential proxies only if Greenhouse pushes back.
- ๐ 94-field schema โ the same comprehensive shape used by premium ATS feeds.
โจ Key Features
| Feature | Description |
|---|---|
| ๐ Title / Location / Org / Domain filters | Include & exclude lists with :* prefix matching |
| ๐ Description search | Full-text search across title + description |
| ๐ต Salary ranges | Per-job pay-transparency data |
| ๐ Derived location fields | Cities, regions, countries, timezones, lat/lng |
| ๐งพ Text or HTML descriptions | Your choice |
| ๐ก๏ธ Proxy ladder | direct โ datacenter โ residential (sticky) |
| ๐ค Live saving | Records stream to the dataset as they finish |
๐ฅ Input
| Field | Type | Description |
|---|---|---|
urls โ
| array | Greenhouse board URLs or plain tokens (bulk). Required. |
limit | integer | Max jobs per run (200โ5000). |
includeCompanyDetails | boolean | Include company-data columns (LinkedIn/Crunchbase/logo). |
titleSearch / titleExclusionSearch | array | Keep / drop by title. |
locationSearch / locationExclusionSearch | array | Keep / drop by location. |
organizationSearch / organizationExclusionSearch | array | Keep / drop by company. |
domainFilter / domainExclusionFilter | array | Keep / drop by company domain (exact). |
descriptionSearch / descriptionExclusionSearch | array | Search/exclude in title + description. |
descriptionType | string | text or html. |
hasSalary | boolean | Keep only jobs with a published salary. |
fetchSalaryData | boolean | Fetch pay ranges even when hasSalary is off. |
geocodeLocations | boolean | Fill the *_derived location fields. |
maxRetries / concurrency | integer | Tuning knobs. |
proxyConfiguration | object | Proxy settings (defaults to no proxy). |
Example input
{"urls": [{ "url": "https://job-boards.greenhouse.io/datadog" },{ "url": "https://job-boards.greenhouse.io/stripe" }],"limit": 200,"titleSearch": ["Engineer:*"],"fetchSalaryData": true,"geocodeLocations": true,"proxyConfiguration": { "useApifyProxy": false }}
๐ค Output
Each record follows the full 94-field schema. The dataset ships with 5 per-section views in the Console: ๐ Overview, ๐ Location, ๐ฐ Salary, ๐ข Company, ๐ Description.
Example record (truncated)
{"id": 4567890,"title": "Senior Software Engineer","organization": "Datadog","url": "https://job-boards.greenhouse.io/datadog/jobs/4567890","source": "greenhouse","source_domain": "job-boards.greenhouse.io","date_posted": "2026-06-11T10:22:02","locations_alt": ["New York, NY"],"cities_derived": ["New York"],"regions_derived": ["New York"],"countries_derived": ["United States"],"timezones_derived": ["America/New_York"],"lats_derived": [40.7127281],"lngs_derived": [-74.0060152],"ai_salary_currency": "USD","ai_salary_min_value": 150000.0,"ai_salary_max_value": 220000.0,"ai_salary_unit_text": "YEAR","description_text": "About the role โฆ"}
โน๏ธ The
ai_*,org_linkedin_*,linkedin_org_*, andorg_crunchbase_*columns are vendor-side AI/LinkedIn enrichments with no public Greenhouse source. They are present in the schema for parity and emitted asnull(salaryai_salary_*fields are filled from the published pay ranges).
๐ How to Use (Apify Console)
- Log in at console.apify.com โ Actors.
- Open Greenhouse Jobs API Scraper.
- Paste your Greenhouse board URLs into ๐ Greenhouse Board URLs.
- (Optional) Set filters, salary, geocoding, and proxy.
- Click Start.
- Watch the real-time log as boards are fetched, salaries pulled, and locations geocoded.
- Open the Output tab โ switch between the per-section views.
- Export to JSON / CSV / XLSX.
๐ค Use via API
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls":[{"url":"https://job-boards.greenhouse.io/datadog"}],"limit":200}'
๐ฏ Best Use Cases
- ๐ Job-market & hiring-trend analysis
- ๐งญ Sourcing & recruiting pipelines
- ๐ข Competitive hiring intelligence
- ๐ผ Building job boards / aggregators
๐ณ Pricing
This actor uses the Pay-Per-Event model:
| Event | Bills for |
|---|---|
job-item | Each job posting saved to the dataset |
You only pay for the jobs you actually receive. Runs that hit your charge limit stop cleanly.
โ FAQ
Which URLs are accepted? Any Greenhouse board URL โ job-boards.greenhouse.io/<token>, boards.greenhouse.io/<token>, boards-api.greenhouse.io/v1/boards/<token>, embed links, or a plain token like datadog.
Why are the LinkedIn/Crunchbase columns null? They require third-party enrichment data that a direct Greenhouse scrape doesn't have. They're kept for schema parity.
Do I need a proxy? No. The actor runs direct by default and only escalates to datacenter/residential proxies if Greenhouse blocks a request.
How does geocoding work? Locations are resolved via OpenStreetMap/Nominatim (1 req/s), cached across runs so repeat scrapes are fast.
๐ Support & Feedback
Found a bug or want a new field? Open an issue on the Actor's Issues tab.
โ๏ธ Legal
Data is collected only from publicly available Greenhouse job boards. You are responsible for compliance with applicable laws (GDPR, CCPA, target ToS).