Greenhouse Jobs Search
Pricing
$0.99 / 1,000 jobs
Greenhouse Jobs Search
Search for jobs directly from Greenhouse ATS. Access top tech companies like Airbnb, Stripe, and Discord. Zero ghost jobs, verified daily. Perfect for job boards, AI agents & tech hiring research.
Greenhouse Jobs Scraper & API | Extract Jobs from Greenhouse ATS
Scrape and search job listings directly from Greenhouse ATS β the leading recruitment platform used by Airbnb, Stripe, Discord, Figma, Notion, and thousands of top tech companies.
Search across 8,000+ companies and hundreds of thousands of jobs from the tech companies everyone wants to work at.
π What's new in v2.0
Major upgrade. If you're upgrading from v1.x your existing scheduled runs keep working β is_remote, queries, locations, posted_after, page, page_size are unchanged. Everything below is additive:
- Far richer per-job data β AI-extracted
qualifications(typed hard / soft skills, education, certifications),responsibilities[],benefits[],summary(one-paragraph AI summary),normalized_titlefor canonical grouping. - Enriched company object β
company.industries[],company.summary,company.logo_url,company.website, plus acompany.details_urllink to the full enriched company profile (funding, leadership, ratings, press references, H1B stats). - Geocoded locations β every
locations[]entry includes resolvedcity/region/countryandlatitude/longitudewhen the raw string is geocodable. - Salary range filter β
min_salary_usd/max_salary_usd(USD-normalized server-side from any source currency). - Skills include / exclude β match against AI-extracted qualifications, not just description text.
- Companies include / exclude β narrow to (or away from) specific employers.
- Work model + experience + employment type filters β
work_models,experience_levels,employment_typesas explicit faceted filters. - Negative query syntax β prefix any
queriesentry with-to drop that token (e.g.["Software Engineer", "-staff", "-principal"]). - Work-authorization signals β
is_work_auth_required,is_h1b_sponsor,is_clearance_requiredflags per job.
No setup required. The actor ships pre-configured to call the Jobo Connect API.
β‘ Why Use This Actor?
- 8,000+ companies indexed β from unicorns to hot startups, all in one place
- Hundreds of thousands of jobs β every open role from every Greenhouse customer
- Top tech companies β Airbnb, Stripe, Discord, Figma, Notion, Datadog, and more
- Zero ghost jobs β daily verification removes expired listings
- Rich structured data β salary, geocoded locations, experience level, full descriptions, company industries, AI-extracted skills / responsibilities / benefits, and work-authorization signals
π’ Companies Using Greenhouse
Greenhouse is the #1 ATS for high-growth tech companies:
| Company | Industry | Typical Roles |
|---|---|---|
| Airbnb | Travel Tech | Engineering, Product, Design |
| Stripe | Fintech | Backend, Infrastructure, Security |
| Discord | Social | Full-Stack, Mobile, ML |
| Figma | Design Tools | Product, Engineering, Design |
| Notion | Productivity | Engineering, Growth, Marketing |
| Datadog | DevOps | SRE, Backend, Sales Engineering |
| Flexport | Logistics | Operations, Engineering, Data |
| Plaid | Fintech | Security, Platform, Mobile |
| Webflow | No-Code | Engineering, Customer Success |
| Brex | Fintech | Engineering, Product, Finance |
β¦and 8,000+ more companies in our database
π Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | Array | [] | Job titles or keywords (e.g., ["Software Engineer"]). Multiple values are OR-ed. Prefix any entry with - to exclude that word, e.g. ["Software Engineer", "-staff", "-principal"] returns Software Engineer roles but drops anything titled Staff/Staffing/Staffed/β¦ or Principal/Principals/β¦ (light suffix-stemming applied). |
locations | Array | [] | Cities, regions, countries (e.g., ["San Francisco"]). Geocoded server-side β accepts loose forms like "NYC", "Bay Area", "UK". |
is_remote | Boolean | false | Quick toggle for remote-only. Overridden by work_models if both are set. |
work_models | Array | [] | Work model: remote, hybrid, onsite. Multiple allowed. |
employment_types | Array | [] | full-time, part-time, contract, internship, freelance, temporary. |
experience_levels | Array | [] | intern, entry, mid, senior, lead, executive. |
skills_include | Array | [] | Only return jobs requiring ANY of these skills (e.g. ["Go", "Rust"]). Matched case-insensitively against AI-extracted qualifications. |
skills_exclude | Array | [] | Exclude jobs requiring ANY of these skills. |
companies_include | Array | [] | Only return jobs from these company names (e.g. ["Stripe", "Anthropic"]). Case-insensitive exact match against the canonical company name. |
companies_exclude | Array | [] | Exclude jobs from these companies. Useful for filtering out staffing agencies or companies you've already applied to. |
min_salary_usd | Integer | - | Minimum annual USD salary. Excludes jobs without disclosed salary. Salaries in other currencies are normalized server-side. |
max_salary_usd | Integer | - | Maximum annual USD salary. Combine with min_salary_usd for a range. |
posted_after | String | - | ISO 8601 (e.g. 2026-01-01T00:00:00Z) or relative (7 days ago, 1 month, yesterday, last week). |
page | Integer | 1 | Page number (max: 100). |
page_size | Integer | 50 | Results per page (max: 100). |
π€ Output Schema
Each dataset row uses Jobo Connect's enhanced job shape β far richer than raw Greenhouse JSON. Notable additions: normalized_title (canonical title for grouping), summary (AI-generated short description), company.industries, company.details_url (link to the full enriched company profile), structured qualifications with typed skills, responsibilities[], benefits[], geocoded locations[] with lat/lon, and work-authorization flags.
{"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab","title": "Senior Software Engineer, Payments","normalized_title": "software_engineer","company": {"id": "f7c12345-1111-2222-3333-444455556666","name": "Stripe","website": "https://stripe.com","logo_url": "https://...","summary": "Stripe builds economic infrastructure for the internet.","industries": ["FinTech", "Payments", "SaaS"],"details_url": "https://connect.jobo.world/api/companies/f7c12345-1111-2222-3333-444455556666"},"description": "We're looking for...","summary": "Senior backend role on Stripe's payments platform team β Go/Rust, owns latency-sensitive APIs.","listing_url": "https://boards.greenhouse.io/stripe/jobs/123","apply_url": "https://boards.greenhouse.io/stripe/jobs/123/apply","locations": [{"location": "San Francisco, CA","city": "San Francisco","region": "California","country": "United States","latitude": 37.7749,"longitude": -122.4194}],"compensation": { "min": 180000, "max": 250000, "currency": "USD", "period": "year" },"employment_type": "full_time","workplace_type": "hybrid","experience_level": "senior","is_remote": false,"qualifications": {"must_have": {"education": ["BS in Computer Science"],"certifications": [],"skills": [{ "name": "Go", "type": "hard" },{ "name": "distributed systems", "type": "hard" }]},"preferred": {"education": [],"certifications": [],"skills": [{ "name": "Rust", "type": "hard" }]}},"responsibilities": ["Own a critical service in the payments path", "..."],"benefits": ["Equity", "Health, dental, vision", "..."],"is_work_auth_required": true,"is_h1b_sponsor": true,"is_clearance_required": false,"source": "greenhouse","date_posted": "2026-04-15T10:30:00Z","valid_through": "2026-07-15T00:00:00Z","created_at": "2026-04-15T11:02:11Z","updated_at": "2026-04-30T08:14:55Z"}
Field reference
| Field | Type | What it is |
|---|---|---|
| Identity | ||
id | UUID | Stable Jobo job identifier. Same across re-scrapes. |
source | string | Always "greenhouse" for this actor. |
| Content | ||
title | string | Job title as published by the employer. |
normalized_title | string | null | Canonical title slug (e.g. software_engineer). Useful for grouping/comparing across companies. |
description | string | Full job description, HTML stripped, line breaks preserved. |
summary | string | null | AI-generated 2β3 sentence summary of the role. |
listing_url | string | Canonical URL to view the job on Greenhouse. |
apply_url | string | Direct application URL (often equal to listing_url). |
| Company | ||
company.id | UUID | Stable Jobo company identifier. |
company.name | string | Display name. |
company.website | string | null | Marketing website. |
company.logo_url | string | null | Hosted logo URL. |
company.summary | string | null | One-paragraph company summary (AI-curated). |
company.industries | string[] | 1β3 industry tags (e.g. ["FinTech", "Payments"]). |
company.details_url | string | null | URL to the full enriched company profile (funding, leadership, ratings, press references, H1B stats). Same X-Api-Key required. |
| Location | ||
locations[].location | string | null | Raw location string from the posting. |
locations[].city / region / country | string | null | Resolved geocoded fields. |
locations[].latitude / longitude | number | null | Decimal degrees when geocoded. |
is_remote | bool | True if any location is fully remote. |
| Classification | ||
employment_type | string | null | full_time, part_time, contract, internship, temporary. |
workplace_type | string | null | remote, hybrid, onsite. |
experience_level | string | null | entry, mid, senior, lead, executive. |
| Compensation | ||
compensation.min / max | number | null | Range bounds in posted currency. |
compensation.currency | string | null | ISO 4217 (e.g. USD, EUR). |
compensation.period | string | null | hour, day, week, month, year. |
| Qualifications | ||
qualifications.must_have.education | string[] | Required degrees. |
qualifications.must_have.certifications | string[] | Required certifications. |
qualifications.must_have.skills[] | objects | {name, type: "hard" | "soft"}. |
qualifications.preferred.* | same shape | Nice-to-haves. |
responsibilities | string[] | Bulleted responsibilities extracted from the description. |
benefits | string[] | Bulleted benefits. |
| Authorization | ||
is_work_auth_required | bool | null | True when applicants must already have work auth in the job's country. |
is_h1b_sponsor | bool | null | True when the company is known to sponsor H1B visas. |
is_clearance_required | bool | null | True when a US security clearance is required. |
| Dates (UTC) | ||
created_at / updated_at | datetime | When Jobo first ingested / last updated the row. |
date_posted | datetime | null | When the employer originally posted. |
valid_through | datetime | null | Employer-declared expiry, when present. |
See the Dataset Schema tab in the Apify UI for the full machine-readable JSON Schema.
π Quick Start Examples
Remote engineering jobs at top tech companies
{"queries": ["Software Engineer", "Backend Developer"],"is_remote": true,"page_size": 50}
Senior+ roles in San Francisco, $180k+
{"queries": ["Software Engineer"],"locations": ["San Francisco"],"experience_levels": ["senior", "lead"],"min_salary_usd": 180000,"page_size": 50}
Recent data science jobs (last 7 days)
{"queries": ["Data Scientist", "ML Engineer"],"posted_after": "7 days ago","page_size": 100}
Software Engineer roles, but skip Staff / Principal / Lead
Prefix any queries entry with - to exclude that token. Excludes are lightly stemmed, so -staff also catches staffs, staffed, staffing. The exclusion applies across title, description, and skills β useful for filtering out role-modifier words you never want to see.
{"queries": ["Software Engineer", "-staff", "-principal", "-lead"],"experience_levels": ["mid", "senior"],"page_size": 50}
Python / Go backend roles, no Java
Skill filters match against AI-extracted qualifications, not raw description text β so you don't have to worry about a job description that says "we don't use Java" matching your skills_exclude: Java.
{"queries": ["Backend Engineer"],"skills_include": ["Python", "Go"],"skills_exclude": ["Java"],"is_remote": true,"page_size": 50}
Hybrid product roles at a specific company shortlist
Companies match case-insensitively on the canonical name. Pull the names from a previous run's company.name field if you're unsure of the exact form.
{"queries": ["Product Manager"],"companies_include": ["Stripe", "Plaid", "Brex", "Mercury"],"work_models": ["hybrid", "onsite"],"experience_levels": ["senior", "lead"]}
H1B-sponsoring engineering roles
The is_h1b_sponsor flag is per-job (derived from public DOL filings + company history), not per-company.
{"queries": ["Software Engineer"],"experience_levels": ["mid", "senior"],"min_salary_usd": 150000,"page_size": 100}
Then filter the dataset for
is_h1b_sponsor == truein your client code.
π‘ Tips & Gotchas
- Negative query scope.
-staffexcludes documents containing the tokenstaffin any searched field (title, description, skills, company name). For role-modifier words likestaff,lead,principal,internthat's nearly always what you want; for ambiguous words it can over-exclude. industriesempty for some companies. Industries are populated by Jobo's company enrichment pipeline (Crunchbase + LinkedIn + AI curation). Companies that haven't been enriched yet showindustries: []. Coverage is ~95%+ on companies with > 100 jobs in our index, lower on long-tail companies.- Geocoding is best-effort. Loose location strings like
"Worldwide"or"Multiple Locations"won't havelatitude/longitude. The rawlocationstring is always preserved so you can fall back to it. details_urlis authenticated. It returns the same auth-gated JSON as Jobo Connect's enterprise company API β you'll need anX-Api-Key. Treat the URL as a discoverable hint rather than an open endpoint.- Pagination cap.
page_sizemaxes at 100;pagemaxes at 100. To pull more than 10,000 results for a query, narrow the filter (e.g. byposted_afterwindow,companies_include, or a more specificqueries) rather than paginating deeper. - One ATS per actor. This actor pre-pins
sources: ["greenhouse"]β you can't widen it to other ATSes. Use ATS Jobs Search to query Greenhouse + Lever + Ashby + 45 more in one call.
πΌ Use Cases
| Industry | Use Case |
|---|---|
| Job Boards | Build tech-focused job aggregators with rich structured data |
| AI Agents | Power career chatbots and rΓ©sumΓ©-matching agents with Greenhouse data |
| HR Tech | Analyze competitor hiring trends, salary benchmarks, skill demand |
| Recruiting | Source candidates and roles at top tech companies |
| Salary Research | Benchmark compensation at tech unicorns by role / level / location |
| Investor Research | Track hiring velocity at portfolio or comp companies |
β Frequently Asked Questions
How many Greenhouse companies do you cover?
We index 8,000+ companies using Greenhouse, representing hundreds of thousands of active jobs. New companies and jobs are added daily.
Which companies use Greenhouse?
Greenhouse is the ATS of choice for tech unicorns and high-growth companies: Airbnb, Stripe, Discord, Figma, Notion, Datadog, Plaid, Flexport, and 8,000+ more in our database.
How often is data updated?
Jobs are verified daily. Expired listings are automatically removed within 24 hours.
How do I exclude certain titles?
Prefix any entry in queries with -. Example: ["Software Engineer", "-staff", "-principal"] returns Software Engineer roles but drops Staff and Principal variants. Excludes are lightly stemmed (-staff also catches staffs / staffed / staffing).
Why is industries empty for some companies?
Industries come from Jobo's company-enrichment pipeline (Crunchbase + LinkedIn + AI curation). Companies that haven't been enriched yet β typically very small or newly added β show industries: []. The full enriched profile (including industries) is also available via company.details_url.
Can I filter by salary?
Yes β min_salary_usd and max_salary_usd. Salaries posted in other currencies are normalized to USD server-side using current FX rates. Jobs without a disclosed salary are excluded when either filter is set.
What does company.details_url give me?
It links to the full enriched company profile on Jobo Connect: funding history, leadership, employee counts, ratings (Glassdoor), press mentions, H1B sponsorship statistics. It uses the same X-Api-Key as the search API.
Can I search all ATS platforms at once?
Yes! Use ATS Jobs Search to search Greenhouse + Ashby + Lever + 45 other platforms in one call.
What's the difference between v1.x and v2.0?
v2 calls a richer backend (Jobo Connect direct, not the previous gateway). Same input contract for queries / locations / is_remote / posted_after / page / page_size (existing schedules keep working), plus a much richer per-job shape and 10+ new filters. See What's new in v2.0 above.
π Related Actors
| Actor | Best For |
|---|---|
| ATS Jobs Search | Search all 48 ATS platforms at once |
| ATS Jobs Feed | Bulk download for data pipelines |
| AI Deep Job Search | AI-powered relevance scoring |
| Lever Jobs Search | More startup jobs |
| Workday Jobs Search | Fortune 500 enterprise jobs |
| Crunchbase Company Lookup | Pair with company.details_url for funding / leadership data |
π’ About Jobo
Jobo provides the most comprehensive job data infrastructure for developers and businesses. Our ATS Jobs Database powers job boards, AI agents, and HR tech platforms worldwide.
- Website: jobo.world
- Enterprise API: jobo.world/enterprise
- Support: enrico@jobo.world