Job Scraper by Company — Greenhouse, Lever, Ashby ATS + Salary
Pricing
from $4.00 / 1,000 job scrapeds
Job Scraper by Company — Greenhouse, Lever, Ashby ATS + Salary
Every open role straight from a company's own ATS. Give it company domains — it finds the board itself. One schema across Greenhouse, Lever and Ashby: title, location, remote flag, department, employment type and published salary. No proxies, no anti-bot.
Pricing
from $4.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Daniele Giovane
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Job Scraper by Company — Greenhouse, Lever, Ashby
Give it a list of companies. Get back every open role they are advertising, in one schema, with salary where the employer published it.
{ "companies": ["stripe.com", "ramp.com", "vercel.com"] }
That is the whole input. You do not have to know which applicant tracking system each company uses, or what its board is called — which is the part that makes every other tool in this category unusable on a real list of companies.
Why this does not break
Most job data is scraped from job boards, which is a permanent fight against sites that do not want to be read: proxies, rotating fingerprints, and a product that quietly starts returning nothing the week the target changes its defences.
This reads the source instead — the endpoint the employer's own ATS publishes so that their careers page works. An employer pays Greenhouse precisely so that their openings are easy to fetch. There is no anti-bot to get past, no login, no proxy, and no incentive for any of that to appear.
What you get, per role
| Identity | company, company_domain, ATS, board, stable job_id, title, URL, apply URL |
| Classification | department, team, employment_type normalised to full_time / part_time / contract / internship / temporary |
| Place | the board's original text and the individual places split out, country, is_remote, workplace_type (remote / hybrid / on_site) |
| Pay | salary_min, salary_max, currency, period, and salary_source so you know whether the figure is a field the employer filled in or something read out of prose |
| Time | posted_at, updated_at |
| Text | full description, on request |
job_id is the ATS's own identifier and is stable between runs, so it is the
right key for an incremental sync.
One schema, ten dialects
Every system says the same things differently, and the differences are exactly where a job dataset goes wrong:
- Lever publishes dates as epoch milliseconds and everyone else uses ISO 8601. Left alone, one column is sometimes a number and sometimes a date, and you cannot filter on it.
- Ashby puts equity and salary in the same list. Read the first element instead of the salary one and you publish an "equity percentage" as a wage.
- Greenhouse serves descriptions as HTML that has itself been HTML-escaped. Strip the tags before decoding and you get a description full of visible markup.
All three are handled, and all three are pinned by tests against captured payloads so they stay handled.
Filters
title_keywords, locations, departments, remote_only,
with_salary_only. Filtered-out roles are not charged — you pay for rows
you receive.
remote_only keeps only roles the board actually marked remote. A role whose
remoteness the employer never stated is excluded rather than guessed at:
charging you for a maybe is how a filter becomes worthless.
Pricing
| Event | Price |
|---|---|
| Job scraped | $0.004 per role delivered |
| Actor start | $0.005 per run, charged by the platform |
Nothing is charged for a board that failed, a company whose board could not be found, or a row your own filters removed. Those are our costs.
A run over 50 companies pulling 20 roles each is 1,000 roles — $4.00.
Two things worth knowing before you run it
Descriptions are off by default. They make the payload about thirteen times
larger: measured on a real 564-role board, 0.3 MB without them and 4.0 MB with.
Turn include_description on only when you need the text.
max_jobs is shared fairly between boards. Ask for 100 roles across 10
companies and you get roughly 10 from each, not 100 from whichever board
answered first. A board with three openings hands its unused share to the
others.
Which systems
Greenhouse, Lever and Ashby today — the three that between them cover most
startup and scale-up hiring, and the three whose public endpoints are stable
enough to promise. Ashby and Lever publish structured salary; Greenhouse does
not publish it at all, so with_salary_only removes every Greenhouse role.
Workday, SmartRecruiters, Personio, Teamtailor, Recruitee, Workable and BambooHR all expose usable public endpoints and are next. If you need one of them, say so in an issue and it moves up.
Limits
- 500 companies and 500 boards per run; 50,000 roles per run.
- Roles are what the board publishes. A company that lists nothing publishes nothing, and no amount of scraping invents a job.
- This returns job postings, which are company data, not personal data.
Legal
The data is fetched from endpoints each ATS vendor publishes without authentication for the purpose of distributing their customers' job adverts. No login is used, no access control is circumvented, and no personal data is collected or resold.