Job Board Scraper — Greenhouse, Lever & Ashby
Pricing
Pay per usage
Job Board Scraper — Greenhouse, Lever & Ashby
Scrape open roles from any company using Greenhouse, Lever or Ashby. One unified schema across all three. No API key needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
BERCIK Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape every open role from any company using Greenhouse, Lever or Ashby — title, department, location, remote status, employment type, posting date and full description. One Actor, three ATS platforms, one unified output schema. No API key, no login.
What does Job Board Scraper do?
Most tech and growth companies publish their openings through one of three applicant tracking systems: Greenhouse, Lever or Ashby. Each exposes a public, keyless job-board endpoint — but all three return completely different JSON shapes.
This Actor reads all three and normalises them into a single consistent schema, so you can pull 50 companies across 3 platforms and get one clean table. Give it a company slug like stripe and it works out which platform that company uses automatically.
No browser, no proxies, no CAPTCHAs — just fast HTTP against official endpoints.
Why use Job Board Scraper?
- Recruiting and talent mapping — track exactly what a competitor is hiring for, where, and how fast their headcount is growing.
- Sales and go-to-market intelligence — hiring signals reveal budget and priorities. A company hiring six data engineers is buying data infrastructure.
- Job aggregators and niche job boards — populate your own board from hundreds of company career pages.
- Investor and market research — headcount growth by department is a leading indicator of where a company is investing.
- Job seekers — monitor a shortlist of companies and catch new postings the day they appear.
- Compensation and market research — many postings include salary bands in the description.
How to use Job Board Scraper
- Click Try for free.
- Add companies — bare slugs like
stripe,spotify,ramp, or full careers URLs likehttps://jobs.lever.co/spotify. - Optionally filter by keyword, department, location or remote status.
- Turn off Include full job description for a much smaller dataset if you only need titles and links.
- Set Maximum results to cap your spend, then click Start.
- Download as JSON, CSV, Excel, HTML or XML.
Finding a company's slug
It's the last part of their careers URL:
| Careers URL | Slug |
|---|---|
boards.greenhouse.io/stripe | stripe |
jobs.lever.co/spotify | spotify |
jobs.ashbyhq.com/ramp | ramp |
You can paste the whole URL instead — the Actor extracts the slug and skips platform detection, which is slightly faster.
Input
{"companies": ["stripe", "spotify", "https://jobs.ashbyhq.com/ramp"],"keywords": ["engineer"],"locations": ["London", "Remote"],"remoteOnly": false,"includeDescription": true,"maxResults": 2000}
| Field | Type | Description |
|---|---|---|
companies | array | Company slugs or careers URLs |
platforms | array | Which ATS to try for bare slugs — greenhouse, lever, ashby |
keywords | array | Match against title, department or team |
departments | array | Partial, case-insensitive department/team match |
locations | array | Partial, case-insensitive location match |
remoteOnly | boolean | Keep only remote roles |
includeDescription | boolean | Include full description text |
maxResults | integer | Hard cap on records returned |
Output
{"jobId": "8023928","title": "Account Executive, Bridge","company": "Stripe","companySlug": "stripe","platform": "greenhouse","department": "Sales","team": null,"employmentType": null,"location": "London","allLocations": ["London"],"isRemote": false,"workplaceType": null,"jobUrl": "https://stripe.com/jobs/search?gh_jid=8023928","applyUrl": "https://stripe.com/jobs/search?gh_jid=8023928","postedAt": "2026-07-30T10:00:00.000Z","description": "Stripe is looking for an Account Executive..."}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data fields
| Field | Description |
|---|---|
jobId, title | Role identity |
company, companySlug, platform | Which company and which ATS it came from |
department, team | Org placement, where the board exposes it |
employmentType | Full-time, permanent, contract — where exposed |
location, allLocations, isRemote, workplaceType | Where the role is based |
jobUrl, applyUrl | Public posting and application links |
postedAt, updatedAt | Timestamps, normalised to ISO 8601 |
description | Full description text, HTML stripped |
How much does it cost to scrape job boards?
Priced per job record returned, capped by Maximum results. HTTP-only with no proxies, so platform cost is minimal.
Board sizes vary enormously — a startup may post 5 roles, a large company 500+. Stripe's board alone returned 552 open roles in testing. Set maxResults accordingly.
Tips
- Turn off descriptions for large sweeps. Descriptions dominate the dataset size. Off, you get titles, departments, locations and links at a fraction of the volume.
- Narrow
platformsif you know the ATS. With a bare slug the Actor tries each enabled platform until one answers; naming the right one skips wasted requests. employmentTypeis null on Greenhouse — their board API doesn't expose it. The field isnullrather than guessed.isRemoteprefers the board's own flag. Ashby states it explicitly; for Greenhouse and Lever it's inferred from location text, so treat those as a strong hint rather than gospel.- Schedule daily and diff on
jobIdto detect new postings and roles that closed — that delta is the actual signal for hiring intelligence. - An empty board isn't an error. A company with a valid board and zero openings returns 0 records; a company with no board at all logs a warning naming the slug.
FAQ
Is scraping job boards legal? These are public, keyless endpoints that the ATS platforms serve to render each company's own public careers page — the same data any visitor sees. This Actor requests them at a polite rate and collects no personal or candidate data. This is general information rather than legal advice; check your own obligations before redistributing.
A company returned nothing — why? Either the slug is wrong, or they use a different ATS (Workday, SmartRecruiters, Personio and others aren't covered here). The run log names the slug and the platforms tried.
Can you add Workday / SmartRecruiters / Personio? Open an issue and tell me which you need. Workday in particular is a common request.
Do I get salary data?
Only where the company puts it in the posting text, which many now do for legal reasons. There's no separate structured salary field — search description for it.
Does it collect candidate or applicant data? No. It reads public job postings only. No candidate, applicant or personal data is touched.
Support
Found a bug or need another ATS covered? Open an issue on the Issues tab. Custom data pipelines and bespoke scraping work are available on request.