Greenhouse Jobs API avatar

Greenhouse Jobs API

Pricing

from $1.20 / 1,000 job records

Go to Apify Store
Greenhouse Jobs API

Greenhouse Jobs API

Find job postings from Greenhouse-powered career sites by country, role, company, salary, posting age, employment type, and seniority.

Pricing

from $1.20 / 1,000 job records

Rating

0.0

(0)

Developer

Aspen Technology Labs, Inc.

Aspen Technology Labs, Inc.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Greenhouse Job Postings API - JobsIndex by Aspen Tech Labs

Greenhouse is one of the most widely adopted ATS platforms, particularly among technology and machine learning companies, high-growth businesses, and teams that take a structured approach to hiring.

The JobsIndex API, built by Aspen Tech Labs, collects job postings directly from the Greenhouse ATS across thousands of companies worldwide. It is part of a broader index aggregating 11M+ active job listings daily from 300K+ employer source sites globally.

Coverage is not limited by posting date. If a job was posted six months ago, a year ago, or longer, as long as it is an actual live job posting, we have it in our index. We actively verify that every position is current and not an abandoned posting. Our database also includes evergreen roles that companies keep open on a rolling basis, which we tag in the system.

What You Can Use It For

This Actor serves two primary use cases: teams that want to publish Greenhouse job listings on their platform, and teams that need structured Greenhouse ATS data for matching algorithms, AI model training, or tech hiring intelligence.

This Actor can power job boards and careers platforms with live Greenhouse postings, and feed matching engines, AI models, and hiring intelligence tools with data filterable by role, location, or posting date.

Need More Or Something Different?

If this Actor is working well for you, we'd love a review. For more data, custom feeds, feedback, or any questions, reach out via our website or email. You can also explore JobMarketPulse, our labor and job market intelligence platform.

Built-In Search Preset

This Actor is fixed internally to Greenhouse-powered jobs (ats_name=greenhouse). The ATS/source platform preset is not exposed as an input parameter. Users can narrow the search by country, structured location, role keywords, salary, company, category, posting age, employment type, seniority, work arrangement, and pagination fields.

Quick Start

{
"what": "@title software engineer",
"country": "United States",
"page": 0,
"size": 5
}

Input Parameters

ParameterDescriptionExample
salarySalary amount or range filter.20h-30h
whatMain job search query. Supports keywords, boolean logic, exact phrases, and field-targeted search such as @title software engineer or @(title,description) (python).@title software engineer
whereFree-text location search. Supports place names, boolean logic, and field-targeted search such as @country United States or @(city,metro_area) (San Francisco). Prefer structured location fields for exact filters.United States
countryCountry filter.United States
regionState, province, or region.California
cityCity filter.San Francisco
postal_codePostal or ZIP code filter.94105
metro_areaMetropolitan area filter.San Francisco-Oakland-Fremont, CA
titleJob title filter.Software Engineer
company_nameCompany name filter.Stripe
company_domainCompany website domain.stripe.com
categoryJob category.Information Technology
sub_categoryMore specific job function or role.Software Developer
industryCompany industry filter.Software
remoteWork arrangement filter. Supported values: remote, on-site, hybrid.remote
postedRelative posting age or ISO date.1w
employment_typeEmployment type.Full-Time
senioritySeniority level.Senior
pagePage number, starting from 0.0
sizeNumber of results per page. Default 5, min 1, max 100.5

Salary Filter Format

Use:

NUMBER[UNIT]

or:

NUMBER[UNIT]-NUMBER[UNIT]

Supported units:

  • h - per hour
  • d - per day
  • w - per week
  • m - per month
  • y - per year

Examples:

  • 20h-30h - hourly rate between 20 and 30
  • 35h - fixed hourly rate
  • 20h-200000y - range from hourly to yearly comparison

Advanced Filters

what and where support plain-text search, boolean logic, and field-targeted search.

If no field is provided, the API expands the search across a default set of relevant fields.

Plain keyword examples:

what = front end engineer
where = United States

Field-specific examples:

what = @title software engineer
where = @country United States

Multi-field examples:

what = @(title,description) (python)
what = @(title,title_raw,description) (engineer OR manager)
what = @(title,description) (machine AND learning)
where = @(country,region,city,metro_area,county,sub_city) (United States)
where = @(city,region,metro_area) (San Francisco OR California)
where = @(city,region,metro_area) (California)

When using where, avoid sending separate structured location parameters for the same request unless you want those structured parameters to take priority. For example, country, region, city, postal_code, and metro_area can override or narrow where.

Common job/content fields for what:

  • title, title_raw, description, reference
  • category, sub_category, seniority, industry, company_type
  • company_name, company_domain, company_name_raw
  • employment_type, remote, language
  • posted, posted_raw, expired
  • url_source, url_apply
  • salary_value, salary_currency, salary_unit
  • id

Common location fields for where:

  • country, region, city, metro_area, county, sub_city, postal_code

Location Filtering

For precise location matching, use structured filters exposed for this Actor:

  • country
  • region
  • city
  • postal_code
  • metro_area

Use where only as a free-text location search when the structured location filters above are not set. If where is provided together with structured location filters, the structured filters take priority and where may be ignored or deprioritized.

Limits and Pagination

This Actor uses the JobsIndex jobs API. Results are paginated with page and size.

ParameterDefaultMinMax
page00Depends on size and the item cap
size51100

Invalid page or size values can return 400 Invalid page or size parameters.

Item Caps

The maximum number of retrievable jobs depends on the query shape:

Query shapeMax itemsEffective max sizeOver-size behavior
No company filter1000100Validation error; not silently capped
Company filter plus another keyword or filter2020Silent cap with capping metadata
Company filter only55Silent cap with capping metadata

A company filter means company_name, company_domain, or a company field referenced inside what. Another keyword or filter means anything in what other than company_*, or a value in fields such as title, category, sub_category, industry, posted, salary, employment_type, or seniority where available on this Actor.

When a company-filtered request asks for size greater than the effective cap, the API returns up to the capped number of results instead of erroring. The response metadata includes:

  • size_requested - the original requested size
  • size_capped_by - "company" for the 5-item cap or "company|keywords" for the 20-item cap

On uncapped responses, size_requested and size_capped_by are not present.

No-company-filter requests are not silently capped. If the request exceeds the 1000-item retrieval window, the API can return 400 Item limit reached. Maximum of 1000 items can be retrieved.

Free-Text Query Limits

what and, where available, where support advanced matching syntax but have safety limits:

LimitValueError behavior
Raw URL length before decoding700 characters400 'what' or 'where' parameters exceed 700 characters
Decoded text length500 characters400 MATCH input exceeds length limit
Combined operator characters: ?, +, pipe, @20400 Too many MATCH operators
Unsafe SQL-like keywordsblocked400 Unsafe MATCH expression

Unsupported characters may be normalized before search. Unbalanced quotes and trailing @ characters may be stripped.

Field Validation

Invalid filter values can return 400 Invalid value for parameter: <name>. Common validation examples include malformed company domains, invalid dates or relative posted values, invalid salary format, invalid job IDs, unsupported location formats, or overly long field values.

ID Lookup Shortcut

When id is provided, the search query is bypassed and the API returns the matching job record or records. Job IDs must be numeric; otherwise the API returns 400 Invalid job id format.

Output

Each run stores job records in the default Apify dataset. The dataset schema includes an Overview table for the most useful fields and a Raw data (all fields) table for the complete JobsIndex record.

Example dataset item:

{
"id": "15131474020159014052",
"title": "Software Engineer",
"company_name": "Nuro",
"company_domain": "nuro.ai",
"category": "Information Technology",
"sub_category": "Software Developer",
"country": "United States",
"region": "California",
"city": "Mountain View",
"salary_value": null,
"salary_currency": null,
"salary_unit": null,
"employment_type": "Full-Time",
"remote": "n/a",
"posted": "2026-06-22",
"url_apply": "https://boards.greenhouse.io/embed/job_app"
}

Field availability depends on the source job posting.