ATS Jobs Aggregator - Greenhouse & Lever
Pricing
$1.50 / 1,000 job results
ATS Jobs Aggregator - Greenhouse & Lever
Collect open job postings from public ATS job-board APIs and get them in one normalized schema. No login, no proxies. By IntegriApps MicroApps.
Pricing
$1.50 / 1,000 job results
Rating
0.0
(0)
Developer
IntegriApps .com
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
ATS Jobs Aggregator: Greenhouse & Lever job scraper
Part of IntegriApps MicroApps, the small-tools line of IntegriApps (HR SaaS for Mexican SMBs).
Pull open job postings from the public job-board APIs of 2 Applicant Tracking Systems (Greenhouse and Lever) and get them back in one stable, normalized schema. Filter by keyword, location, country, remote, and posting date. No login, no cookies, no CAPTCHA solving, no proxies needed.
What it does
- Reads the official public endpoints that companies expose for their careers pages:
ATS Endpoint What you enter Example Greenhouse boards-api.greenhouse.io/v1/boards/{token}/jobsboard token gitlabLever api.lever.co/v0/postings/{slug}?mode=jsoncompany slug spotify - Normalizes every posting into the same fields, de-duplicates by
id, and applies your filters. - Optionally adds a plain-text description (HTML removed, e-mail addresses replaced by
[email removed]). - Does not collect recruiter names, e-mails, or any candidate data.
- Does not discover companies for you: you provide the slugs (find them in the company's careers-page URL).
Input
{"greenhouse": ["gitlab", "airbnb"],"lever": ["spotify"],"keywords": ["engineer", "data"],"excludeKeywords": ["intern"],"countries": ["MX", "US"],"locations": ["Remote"],"remoteOnly": false,"maxAgeDays": 30,"maxResults": 500,"includeDescription": false}
Other options: postedAfter (YYYY-MM-DD), searchInDescription, includeRemoteWithoutCountry, maxJobsPerCompany (default 2000), maxConcurrency (default 4). All filters are combined with AND; values inside one list are OR.
Output
One dataset item per job. Fields are always present (value may be null):
| Field | Description |
|---|---|
id | {ats}:{slug}:{jobId}, stable across runs |
ats, company, companySlug | source ATS and company |
title, department | as published |
location | location text as published |
country | ISO-3166 alpha-2 when it can be detected, else null |
remote | true when the ATS flags it remote or the location says remote |
employmentType | FULL_TIME, PART_TIME, CONTRACT, INTERN, OTHER or null |
postedAt | ISO 8601 (Greenhouse: first published; Lever: created) |
url, applyUrl | public job page and apply link |
descriptionText | only when includeDescription is on |
scrapedAt | run timestamp |
Example (real run, 27 Oct 2026):
{"id": "greenhouse:airbnb:8304183","ats": "greenhouse","company": "Airbnb","companySlug": "airbnb","title": "Product Manager, LATAM (São Paulo, Brazil)","department": "Product Management","location": "São Paulo, Brazil","country": "BR","remote": false,"employmentType": null,"postedAt": "2026-10-21T07:55:05.000Z","url": "https://careers.airbnb.com/positions/8304183?gh_jid=8304183","applyUrl": "https://careers.airbnb.com/positions/8304183?gh_jid=8304183","scrapedAt": "2026-10-27T23:59:50.256Z"}
A RUN_SUMMARY record in the key-value store lists, per board: fetched, matched, saved, errors, and time.
Pricing
Price: USD 1.50 per 1,000 jobs (pay per event). You are charged per job saved to the dataset (job-result). Boards that fail or jobs filtered out are not charged. Set maxResults (and the run's max-charge limit) to cap spending; the Actor stops when either is reached.
Use cases
Job-market research, hiring-competitor tracking, job boards and newsletters, salary/role benchmarks, and lead lists of companies that are hiring.
FAQ
How do I find a slug? Open the company's careers page and look at the URL: job-boards.greenhouse.io/gitlab → gitlab, jobs.lever.co/spotify → spotify.
Why is country null sometimes? Some postings only say "New York, NY" or "Remote". We only fill country when it is explicit. Use locations text filters or includeRemoteWithoutCountry for those.
Why is employmentType null for Greenhouse? The public Greenhouse board API does not publish it.
Is it legal? See Terms of use below.
Does it support Ashby, Workable, SmartRecruiters, Recruitee, Workday or LinkedIn? Not now. Other sources may be added after a terms-of-use review.
Troubleshooting
- "Board not found (404)": wrong slug, or the company moved to another ATS. Check the careers URL.
- 0 results but no error: your filters are too strict, or the company has no open jobs. Remove filters and try again.
- A large company returns only part of its jobs: raise
maxJobsPerCompany. - Lever boards feel slow: Lever requests are deliberately spaced 1 second apart, as Lever's robots.txt asks.
- HTTP 429/5xx: the Actor retries with exponential backoff (4 retries). If it keeps failing, lower
maxConcurrency.
Terms of use
- The Actor reads only the public, unauthenticated GET endpoints that Greenhouse (Job Board API) and Lever (Postings API) publish for careers pages. No logins, cookies, proxies, or anti-bot workarounds.
- Lever requests are spaced at least 1 second apart; failed requests back off and honor
Retry-After. - Job postings belong to the hiring companies. You are responsible for complying with Greenhouse's and Lever's terms, each employer's rights over its content, and the privacy laws that apply to you. Do not republish full descriptions without permission, and do not use the data for spam.
- No candidate data is collected; e-mail addresses in descriptions are removed.
Opt-out for companies
If you are a company (or the ATS operator) and do not want your board read by this Actor, open an issue in this Actor's Issues tab with the ATS and board token/slug. We add confirmed requests to an exclusion list in the next release, normally within 5 business days.
Support
Soporte de domingo a viernes (support Sunday to Friday) through the Actor's Issues tab.
Part of IntegriApps MicroApps — integriapps.com.
Resumen en español
Agregador de vacantes de ATS de IntegriApps MicroApps. Descarga las vacantes abiertas desde las APIs públicas de Greenhouse y Lever (con 1 s entre peticiones a Lever), y las entrega con un esquema único (id, ats, company, title, department, location, country, remote, employmentType, postedAt, url, applyUrl, y descriptionText opcional). Filtra por palabras clave, ubicación, país, remoto y fecha, con un máximo de resultados. Sin login, sin CAPTCHA y sin datos personales. Tú indicas los slugs de las empresas (vienen en la URL de su página de empleos). Cobro por vacante guardada (USD 1.50 por 1,000 vacantes). Las empresas pueden pedir su baja abriendo un issue en el Actor. Soporte de domingo a viernes. Más en integriapps.com.