Greenhouse, Lever & Ashby Jobs Scraper
Pricing
from $1.20 / 1,000 job postings
Greenhouse, Lever & Ashby Jobs Scraper
Get every open job from company career boards on Greenhouse, Lever and Ashby in one normalized format: title, location, remote, salary, dates, apply link and description.
Pricing
from $1.20 / 1,000 job postings
Rating
0.0
(0)
Developer
Neatfeeds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get every open job from company career pages hosted on Greenhouse, Lever and Ashby, in one normalized format. Give it company names or board URLs; get back title, location, remote/hybrid/onsite, salary range, posting date, apply link and the full description as plain text.
Price: $1.20 per 1,000 jobs ($0.0012 per job) + $0.00005 per run. 50 jobs cost about $0.06.
Why this actor
- Three platforms, one schema. Greenhouse, Lever and Ashby jobs come out with the same fields, so you can mix companies from all three in one run and one table.
- Salaries as numbers. When the employer publishes pay, you get
salaryMin,salaryMax,salaryCurrencyand (where available)salaryIntervalas separate fields, not just a text blurb. - Official APIs only. It reads the public job-board APIs these platforms provide for career pages. No browser, no proxies, no login: fast, cheap and stable.
- Minimal input. A bare company slug like
rampis tried on all three platforms; you don't need to know which one a company uses. - Filters before billing. Title keywords, locations, remote-only and posting age are applied before results are saved, so you only pay for jobs you keep.
What you can use it for
- Track hiring at competitors, customers or prospects (sales triggers, market research).
- Build job boards and newsletters for a niche (e.g. remote engineering jobs at AI startups).
- Feed AI agents and recruiting tools with fresh, structured job data.
- Salary benchmarking: Ashby and many Greenhouse boards publish pay ranges.
Input
Only companies is required.
| Field | What it does |
|---|---|
companies (required) | Board URLs (https://boards.greenhouse.io/airbnb, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ramp, EU Lever boards too), prefixed slugs (greenhouse:airbnb, lever:palantir, ashby:ramp) or a bare slug (airbnb), which is tried on all three platforms. |
titleKeywords | Keep jobs whose title contains any of these words. |
locations | Keep jobs whose location contains any of these strings (London, Remote, Germany). |
remoteOnly | Keep only remote jobs. |
postedWithinDays | Keep only jobs published in the last N days. |
includeDescription | Add the full description as plain text (default on). |
maxResultsPerCompany / maxResults | Limits per company and in total (default: no per-company limit, 1,000 in total). |
Example:
{"companies": ["greenhouse:airbnb", "https://jobs.lever.co/palantir", "ramp"],"titleKeywords": ["engineer"],"locations": ["remote", "london"],"maxResultsPerCompany": 50}
Output (one item per job)
{"platform": "ashby","company": "ramp","jobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","title": "Security Engineer, Cloud","department": "Engineering","team": "Backend","location": "New York, NY (HQ)","allLocations": ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)", "Miami, FL"],"workplaceType": "hybrid","isRemote": true,"employmentType": "FullTime","postedAt": "2026-04-07T17:12:35.753Z","url": "https://jobs.ashbyhq.com/ramp/34413f8d-…","applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-…/application","salaryMin": 211400,"salaryMax": 290600,"salaryCurrency": "USD","salaryInterval": "1 YEAR","salaryText": "$211.4K - $290.6K","description": "ABOUT RAMP …","scrapedAt": "2026-10-19T19:40:48.919Z"}
| Field | Meaning |
|---|---|
platform, company, jobId | Source platform (greenhouse, lever, ashby), board slug and the platform's job ID. |
title, department, team | Job title and the employer's own grouping. |
location, allLocations | Main location and every listed location. |
workplaceType, isRemote | remote, hybrid or onsite when the board says so; isRemote is true for remote jobs. |
employmentType | E.g. FullTime on Ashby, the commitment on Lever (not published by Greenhouse). |
postedAt | First publication date, ISO 8601. |
url, applyUrl | Job page and application form. |
salaryMin, salaryMax, salaryCurrency, salaryInterval, salaryText | Pay range as numbers plus the original text, when the employer publishes it. |
description | Full description as plain text (only with includeDescription). |
scrapedAt | When the job was collected. |
Pricing
Pay per event, no subscription:
| Event | Price |
|---|---|
| Job returned | $0.0012 ($1.20 per 1,000) |
| Run start | $0.00005 |
Examples:
- 50 jobs from three companies: 50 × $0.0012 + $0.00005 ≈ $0.06
- One large board with 600 open jobs: $0.72
- 20 companies checked daily with
postedWithinDays: 1, about 40 matching jobs per day: about $1.44 per month
FAQ
How do I cap what a run costs?
Set a maximum cost per run in the run options (or with maxTotalChargeUsd via the API). The actor stops cleanly when the limit is reached and keeps every result collected so far. maxResults caps the number of jobs as well.
Why are some fields null?
Each platform publishes different data. Fields a platform does not provide are null: Greenhouse has no employment type, Lever rarely publishes salaries, and only some employers publish pay at all. A company that does not use Greenhouse, Lever or Ashby is reported in the log and skipped; the run continues with the others.
Can I call it from code, an AI agent or an automation tool? Yes. Run it through the Apify API and get the dataset in the same call:
curl -X POST "https://api.apify.com/v2/acts/Neatfeeds~ats-jobs-greenhouse-lever-ashby/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"companies": ["ashby:ramp"], "titleKeywords": ["engineer"], "maxResults": 20}'
It also works with Apify schedules, webhooks and integrations such as Make, Zapier and n8n, and with AI agents through the Apify MCP server.
Notes
- Data comes from public career-page APIs published by the employers themselves.