Greenhouse, Lever, Ashby & Workable Jobs: ATS Job Scraper avatar

Greenhouse, Lever, Ashby & Workable Jobs: ATS Job Scraper

Pricing

from $1.00 / 1,000 jobs

Go to Apify Store
Greenhouse, Lever, Ashby & Workable Jobs: ATS Job Scraper

Greenhouse, Lever, Ashby & Workable Jobs: ATS Job Scraper

Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee jobs in one table: $1 per 1,000 jobs. Title, location, remote, salary, posted date, apply link, description. Paste job board links, careers pages or names. No duplicates, new-jobs monitoring.

Pricing

from $1.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Rowsmith HQ

Rowsmith HQ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Career Board Job Feed: Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee jobs in one table

Paste companies' job board links, careers pages or just their names, and get every open job as one clean table: $1 per 1,000 jobs, plus $0.001 per company. Boards that fail are free.

Never miss a new job at the companies you follow: schedule it, and each run sends only the jobs you have not seen to your webhook (Make, Zapier, n8n or any address that takes JSON). Nothing is sent when nothing is new.

A job scraper for company career sites that reads each company's official public job board: the Greenhouse job board API, Lever postings, Ashby job postings, Workable, SmartRecruiters and Recruitee. You get one row per job with the title, company, location, remote or hybrid, department, employment type, salary when the company publishes it, posted date, apply link and the full job description (plain text and clean HTML), the same columns whatever system the company uses.

Job alerts in 3 steps

  1. Paste the companies into Companies: board links, careers pages or names.
  2. Paste your webhook address into Send new jobs to: a Make, Zapier or n8n webhook, or any https address that takes JSON.
  3. Save it as a task and schedule it, for example every weekday at 8:00 (cron 0 8 * * 1-5).

The first run saves today's open jobs as your starting point and sends one short "watching" message. Only the company checks are charged. From then on, each run sends one message with the jobs that are new since the last run, and nothing when nothing is new.

{
"companies": ["stripe", "https://jobs.lever.co/spotify", "notion", "https://jobs.ashbyhq.com/ramp"],
"keywords": ["engineer", "data"],
"alertWebhookUrl": "https://hook.eu1.make.com/xxxxxxxxxxxxxxxxxxxxxxxx",
"monitorName": "engineering-jobs"
}

What it costs at our prices (alerts cost nothing extra; each run is charged as usual):

  • Starting to watch 50 companies: $0.05 (50 company checks, no job charged), plus Apify's $0.00005 run start.
  • A run with nothing new: $0.001 per company checked, plus $0.00005 per run ($0.05005 for 50 companies).
  • 50 companies checked every day, 40 new jobs a day: about $2.70 a month.
  • The same 50 companies every 2 hours: about $19.20 a month. Each new job is charged once, however often you check.

How the alert looks

A real message from our 50-company test schedule (23 October 2026):

2 new jobs at 2 of your 50 companies
• Senior Analyst · Affirm · Remote Canada · posted 23 Oct 2026 · Apply
• Implementation Consultant · Samsara · Remote - CA · posted 8 Oct 2026 · Apply

When more jobs are new than the message lists, the rest are counted with a link to the full table of that run.

Make, Zapier and n8n receive the same message as JSON (one job shown):

{
"summary": "2 new jobs at 2 of your 50 companies",
"kind": "new",
"alertId": "U9MayrqYttvMBamOU",
"jobs": [
{
"title": "Senior Analyst",
"company": "Affirm",
"location": "Remote Canada",
"remote": true,
"postedAt": "2026-10-23T01:53:14Z",
"applyUrl": "https://job-boards.greenhouse.io/affirm/jobs/7804955003",
"salaryText": "$112,000 - $172,000",
"sourceSystem": "Greenhouse",
"jobKey": "greenhouse:affirm:7804955003"
}
],
"jobsNotListed": 0,
"text": "2 new jobs at 2 of your 50 companies\n• Senior Analyst · Affirm · Remote Canada · posted 23 Oct 2026 · https://job-boards.greenhouse.io/affirm/jobs/7804955003\n...",
"runUrl": "https://console.apify.com/actors/.../runs/U9MayrqYttvMBamOU"
}

text holds the whole message, ready for an e-mail step. Other ways to be told: Apify's own Slack integration and webhooks also work, but they fire after every run, not only when there are new jobs.

At a glance

What it doesCollects every open job from companies' Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee job boards into one table
You give itJob board links, a company's careers page (the board on it is found for you), or just a name like stripe
You getOne row per job: title, company, location, remote / hybrid / on-site, department, type, salary, posted date, apply link, full description
Job alertsNew jobs to your webhook (Make, Zapier, n8n or any JSON address) after each scheduled run; nothing when nothing is new
Good forJob boards and job alerts, hiring signals for sales and recruiting, talent and salary research, competitor watching
FiltersTitle keywords, words to leave out, locations (cities, countries, codes, regions like Europe or APAC), remote, posted since; only new jobs for scheduled runs
Price$1.00 per 1,000 jobs + $0.001 per company checked, all-in (no usage costs on top); boards that fail are free; alerts cost nothing extra
Speed1,669 jobs from 18 companies in 1 to 1.5 minutes in our tests; 2,868 jobs from the 4 largest boards in about a minute
LimitsCompanies on these six systems only; no login-only or internal job boards
Made byRowsmith HQ
Last updatedOctober 2026

See the output

Real rows from our test run of 18 companies on all six systems (21 October 2026):

Career Board Job Feed results: one row per job with company, location, remote or hybrid, department, salary, posted date, apply link and source system

Download real results: 60 jobs, 10 per system, every column (CSV) · the same as Excel · all 1,669 jobs of the 18 companies, without descriptions (Excel)

What you get

  • One row per job, with the same 28 columns in the same order whatever system the company uses, ready for Excel, Google Sheets, a database or your own job board.
  • Salary when the company publishes it: minimum, maximum, currency and period (year, month or hour), taken from the board's own pay fields (Greenhouse pay ranges, Lever, Ashby, Recruitee) or from a pay range written in the description. salarySource says which. In our 18-company test, 59% of jobs came with a salary.
  • The full description as plain text (paragraphs and bullet points kept) and as clean HTML: formatting only, with scripts, styles, forms and images removed, so it is safe to show on your own website.
  • Remote, hybrid or on-site, the company's department and team, employment type, posting date (ISO 8601, UTC), the apply link and the job's own page.
  • A run summary (the OUTPUT record): one line per company with what was found, how many jobs matched and were saved, and a plain-English reason for any board that could not be read.

Why use this one

  • Six systems, one table. Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee in the same run, with the same columns. No more one scraper per system.
  • Paste anything. A job board link, the company's own careers page (we find the Greenhouse, Lever, Ashby, Workable, SmartRecruiters or Recruitee board on it), or just the board name: stripe is looked up on all six systems at once.
  • $1 per 1,000 jobs, all-in. You pay for jobs delivered and companies checked, and nothing else: no compute or data-transfer charges on top. Boards that fail, jobs your filters leave out and duplicates cost nothing.
  • Job alerts and only new jobs, for scheduled runs. Schedule it: each run returns, charges and sends to your webhook only the jobs you have not received yet. Starting to watch costs only the company checks.
  • Filters that understand places. Keywords in titles (and optionally descriptions), words to leave out, locations where US also finds "Austin, TX", UK finds "London, United Kingdom" and regions such as Europe, EMEA, LATAM or APAC stand for their countries, remote or on-site, and posted in the last N days.
  • No duplicates. The same company typed twice, or the same role posted twice by a company, gives one row (you can switch the second off to count every posting).
  • Read from the official public APIs. These are the endpoints each company's own careers page uses to show its jobs: fast, stable, no browser, no login, and no getting blocked.
  • Your budget is respected. Set a maximum cost for the run and it stops cleanly before going over.

How we compare

The most used career-site job tools in the Apify Store, each with 100 or more users a month, charge $1.15 to $12 per 1,000 jobs (22 October 2026). This one charges $1 per 1,000 jobs plus $0.001 per company checked. Questions worth asking any of them:

Ask any job board toolThis tool
What do 1,000 jobs cost, everything included?$1.00, plus $0.001 per company; no compute charges on top
Do I pay for boards that fail, jobs my filters drop, or duplicates?No. All free, and every failed board comes with the reason
Must I know which system each company uses?No. Paste a board link, a careers page or just a name: all six systems are searched
Salaries I can sort and compare?Yes, when published: minimum, maximum, currency and period (59% of jobs in our 18-company test)
The same columns from every system?Yes: 28 columns, same names and order, for all six
A daily run that returns only new jobs?Yes, and you pay only for the new ones
New jobs sent to your webhook, and nothing when nothing is new?Yes: one message per run; starting to watch 50 companies costs $0.05
Location filters that understand places?Yes: US finds "Austin, TX"; regions like Europe, EMEA, LATAM and APAC
A description safe to show on my own site?Yes: plain text, plus clean HTML with no scripts, forms or images
An answer when something goes wrong?Yes: open an issue on the Issues tab and we reply there

Not covered: Workday, iCIMS and Taleo boards (see Limits).

Pricing

Pay only for jobs you get and companies that were checked.

What you pay forPricePer 1,000
Job: one job (one row) in your results$0.001$1.00
Company checked: one company's job board read$0.001$1.00
A board that fails (wrong name, no such company, site down)freefree
Jobs left out by your filters, duplicates, and jobs already delivered (with Only jobs not delivered before)freefree
Job alerts (the message to your webhook)freefree

Worked examples:

  • All open jobs of 20 companies, about 2,000 jobs: 2,000 x $0.001 + 20 x $0.001 = $2.02
  • Our test of 18 real companies: 1,669 jobs for $1.69
  • The example input that opens with the tool (7 companies, about 300 jobs): about $0.31
  • One skill searched across 100 companies, 30 matching jobs: 30 x $0.001 + 100 x $0.001 = $0.13
  • A daily monitor of 50 companies that finds 40 new jobs a day: $0.09 a day, about $2.70 a month
  • Job alerts for the same 50 companies every 2 hours: about $19.20 a month (the company checks of 12 runs a day, plus the same 40 new jobs a day)

Good to know:

  • Try it free: Apify's free plan includes about $5 of usage every month, which here is about 4,900 jobs from 50 companies.
  • The company fee pays for reading the board even when it has no job you want, so searches across many companies and frequent monitors stay fair for everyone. It adds about 1% to an ordinary run.
  • Apify adds its standard run-start fee of $0.00005 per GB of memory: $0.00005 for a default run.

How to use it

  1. Paste the companies into Companies, one per line: board links, careers pages or names.
  2. Add filters if you want them (title keywords, locations, remote, posted since), or leave them empty for every open job.
  3. Click Start. Open the Jobs, Salaries or Descriptions tab of the results, or export to CSV, Excel or JSON.

The defaults suit most uses: every open job, newest first, with the full description, up to 1,000 jobs per run. For alerts, see Job alerts in 3 steps above.

Which companies work, and how to find their board

Any company whose careers page uses one of the six systems. Often the job list or the apply button tells you: links such as boards.greenhouse.io/..., job-boards.greenhouse.io/..., jobs.lever.co/..., jobs.ashbyhq.com/..., apply.workable.com/..., jobs.smartrecruiters.com/... or ....recruitee.com. If you are not sure, paste the careers page or just the company's name and the tool looks for you; the run summary says what it found.

Input

Every open job from four companies, on four systems:

{
"companies": [
"https://boards.greenhouse.io/discord",
"https://jobs.lever.co/spotify",
"notion",
"https://www.figma.com/careers/"
]
}

Remote engineering and data jobs posted in the last 7 days, 20 per company at most:

{
"companies": ["stripe", "openai", "gitlab", "https://jobs.smartrecruiters.com/Canva"],
"keywords": ["engineer", "data"],
"excludeKeywords": ["intern"],
"workplace": "remote",
"postedSince": "7 days",
"maxJobsPerCompany": 20
}

A daily monitor (schedule it in Apify): only the jobs posted since the last run, sent to your webhook.

{
"companies": ["stripe", "spotify", "huggingface", "bunq"],
"locations": ["Europe", "Remote"],
"onlyNewJobs": true,
"monitorName": "europe-jobs",
"alertWebhookUrl": "https://hooks.zapier.com/hooks/catch/000000/xxxxxxx/"
}
OptionWhat it doesDefault
companiesBoard links, careers pages or names, one per item. Put the system first to skip the look-up: lever:spotify, greenhouse:stripe.(required)
keywordsKeep jobs whose title contains any of these. engineer also finds "Engineering"; keywords of 3 letters or fewer (AI, iOS) match whole words only.all jobs
searchDescriptionsAlso keep jobs whose description contains a keyword.off
excludeKeywordsDrop jobs whose title contains any of these.
locationsKeep jobs in any of these places: a city, state or country (names or codes), or a world region: Europe, EU, EMEA, North America, LATAM, APAC. Remote keeps remote jobs.everywhere
workplaceany, remote, remoteOrHybrid or onsite (not remote and not hybrid).any
postedSinceOnly jobs first published on or after a date (2026-10-01) or within a period (7 days, 2 weeks).any date
maxJobsThe run stops after this many jobs. Companies are read in the order given, newest jobs first.1,000
maxJobsPerCompanyAt most this many jobs per company (0 = no limit).0
includeDescriptionThe description as plain text and clean HTML.on
mergeRepeatedPostingsOne row when a company posts the same job more than once (same title, place and description).on
onlyNewJobs, monitorNameReturn only jobs this monitor has not delivered before (job IDs remembered for 180 days in a key-value store named career-board-job-feed-memory in your account). Give each saved task its own monitor name.off, default
alertWebhookUrlSend new jobs to this webhook: Make, Zapier, n8n or any https address that takes JSON. Slack and Discord incoming webhooks get their own message format; our test with real Slack and Discord accounts is still to come. A secret field: never shown in the log or the results. Turns on onlyNewJobs.none
alertMaxJobsJobs listed in one message, 1 to 50; the rest are counted with a link to the full table.20
alertStartFromNowThe first run, and the first after you change the filters, saves the open jobs as the starting point and sends a short "watching" message; only the company checks are charged.on
alertWhenNothingNewAlso send a short note when there is nothing new (proof that it ran).off

Output

One row per job. A real one (description shortened here):

{
"title": "Account Manager | Growth",
"company": "Ramp",
"location": "New York, NY (HQ)",
"workplaceType": "hybrid",
"remote": false,
"department": "Sales",
"team": "Account Manager",
"employmentType": "Full-time",
"salaryMin": 97920,
"salaryMax": 149600,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$97,920 - $149,600",
"salarySource": "board",
"postedAt": "2026-10-20T18:32:31Z",
"applyUrl": "https://jobs.ashbyhq.com/ramp/6ac50530-ce1c-4375-9cc1-c56f8b5925fd/application",
"jobUrl": "https://jobs.ashbyhq.com/ramp/6ac50530-ce1c-4375-9cc1-c56f8b5925fd",
"descriptionText": "About Ramp\n\nRamp is building the smart infrastructure for finance teams...",
"descriptionHtml": "<h1><strong>About Ramp</strong></h1><p>Ramp is building the smart infrastructure for finance teams...",
"allLocations": "New York, NY (HQ); San Francisco, CA",
"country": "United States",
"sourceSystem": "Ashby",
"board": "ramp",
"boardUrl": "https://jobs.ashbyhq.com/ramp",
"jobId": "6ac50530-ce1c-4375-9cc1-c56f8b5925fd",
"updatedAt": null,
"keywordsMatched": null,
"fetchedAt": "2026-10-21T13:31:17+00:00"
}

A field is empty (null) only when the board does not publish it. Every company is also listed in the run's OUTPUT record, for example a board that could not be read:

{
"input": "greenhouse:nosuchboard-rowsmith-test",
"system": "Greenhouse",
"status": "failed",
"jobsSaved": 0,
"error": "There is no Greenhouse job board with this name (Greenhouse answered 'not found')."
}

With job alerts, OUTPUT also has an alert block: whether the message was sent, its kind (start, new, none or heartbeat), how many jobs it listed, and "ok" or the reason it could not be sent.

Tested on real companies

Before every release we run the tool on real companies' job boards and check every row automatically. Latest results (21 October 2026):

  • 24 companies on all six systems, among them Stripe, Discord, GitLab, Figma, Spotify, Palantir, OpenAI, Notion, Ramp, Hugging Face, Canva and bunq: 77 of 77 board reads succeeded.
  • 6,023 jobs delivered across 16 test runs; every row checked for complete columns, valid links and dates, clean text, safe HTML, no e-mail addresses outside descriptions and no duplicates; every charge matched a delivered job or a checked company.
  • Bad input fails clearly and costs nothing: a dead board on each system, a dead domain and an unknown name gave 8 clear reasons, 0 rows and $0.
  • Job alerts on a real schedule (22-23 October 2026): 50 companies every 2 hours on Apify. Every new job was delivered and announced exactly once, no message went out when nothing was new, and a message the receiver refused went out with the next run.
  • Spending caps, only new jobs, filters, look-ups by name and careers page, and duplicate handling each have their own test.

FAQ

Which companies can I get jobs from? Any company whose careers page runs on Greenhouse, Lever, Ashby, Workable, SmartRecruiters or Recruitee: thousands of companies, from startups to large firms. Paste the board link, the careers page or just the name.

How do I find a company's job board? Open its careers page and look at the link of a job or of the apply button (see Which companies work above). Or paste the careers page, or just the company's name, and the tool finds the board for you.

Do I pay for companies that fail? No. A board that cannot be read (wrong name, removed, site down) is free. It is listed in the run summary with the reason.

Do I pay Apify usage on top? No. The job and company prices are the whole price; the only other charge is Apify's standard run-start fee ($0.00005 for a default run).

Can I get only the new jobs every day? Yes. Turn on Only jobs not delivered before, or paste a webhook address for job alerts, and run the tool on a schedule. Each run returns only jobs you have not received before, and you pay only for those jobs plus $0.001 per company checked. Use different Monitor names to keep separate searches apart.

Will it flood my channel or inbox? No. Each run sends at most one message, and only when there are new jobs. It lists up to 20 (you choose 1 to 50) and counts the rest with a link to the full table.

What does a run cost when nothing is new? $0.001 per company checked, plus Apify's $0.00005 run start: $0.05005 for 50 companies. The alert itself costs nothing.

Can I get the alerts by e-mail? Yes, through your own Make, Zapier or n8n webhook: the JSON has a text field with the whole message, ready for an e-mail step. There is no direct e-mail.

What if my webhook is down? The run still succeeds and its OUTPUT says why the message failed. The new jobs wait (up to 200 jobs, for 7 days) and go out with the next run's message to the same address, marked as found by an earlier run.

I have two saved tasks. Do they need different monitor names? Yes: give each saved task its own Monitor name, because tasks with the same name share one memory. With job alerts, a saved task left on "default" keeps its own memory automatically.

I changed my filters. Will old jobs come as new? No. With Start from now (the default), the first run after you change the keywords, locations, remote or posted-since filters saves the open jobs that match them as the new starting point and tells you so. From the next run you get only new jobs.

Why does a new job say it was posted months ago? Companies re-open old postings. The job came back on the board since your last run, so it is new to you; the alert says "reposted, first posted" and the date. In our test schedule, 14 of the first 68 new jobs were re-opened postings.

Why did my automation get the same job twice? If your webhook answers after 15 seconds, the run counts the message as not delivered and sends its jobs again with the next message. Every message has an alertId, and every job a jobKey that never changes: drop a job whose jobKey you already have.

What if two runs of one monitor overlap? A run waits while another run of the same monitor works (up to 3 minutes), so each new job is delivered, charged and announced once. If the other run is still working after that, the waiting run stops without reading or charging anything.

Does it include salaries? When the company publishes one. It is read from the board's pay fields first, and otherwise from a pay range in the description (for example "The base salary range for this position is $150,000 to $200,000"). A range is taken only with a currency and next to pay words; when several ranges are listed (by region), the first is used and the full list stays in the description.

How are remote jobs found? From the board's own remote, hybrid and on-site fields where it has them (Lever, Ashby, Workable, SmartRecruiters, Recruitee), and otherwise from the job's title and location (for example "Remote - US"). workplaceType is empty when the board does not say.

Is it allowed to use these job boards? The tool reads only the public job-board endpoints that these systems provide so companies can show their open jobs on their own sites and anywhere else: the same information anyone sees on the careers page. No login, no bypassing anything, and no personal data: recruiter names, e-mail inboxes and application questions are never collected. How you use the job data afterwards is up to you.

My company was not found. Why? It probably uses another system (for example Workday, iCIMS or its own software) or an internal board. EU-hosted Greenhouse boards (job-boards.eu.greenhouse.io) cannot be read yet: Greenhouse offers no public job-board API for them that we could find. The run summary explains each case.

How fast is it? Most companies take a few seconds. In our tests 18 companies with 1,669 jobs took 1 to 1.5 minutes, and the 4 largest boards (2,868 jobs) about a minute. SmartRecruiters needs one extra request per job for descriptions; turn descriptions off for its fastest runs.

Can I use it from my code, Zapier, Make, n8n or an AI agent? Yes. Like any Apify Actor it runs from the Apify API, schedules, integrations and Apify's MCP server for AI agents. The input is plain JSON (see Input).

Limits

  • Companies on Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee only. Not Workday, iCIMS, Taleo or LinkedIn.
  • EU-hosted Greenhouse boards cannot be read yet (no public job-board API for them that we could find).
  • SmartRecruiters does not say whether a company name exists; an unknown name is reported as "no open jobs for this name". For job alerts this also means that a SmartRecruiters company with no open jobs today starts being watched with its first jobs, which become its starting point instead of an alert.
  • Up to 2,000 companies and 1,000,000 jobs per run. A company that lists the same job several times gives one row unless Merge repeated postings is off.
  • Salary, employment type and remote status are delivered only when the company publishes them.
  • Job alerts: every address gets plain JSON with a ready text message. Slack and Discord incoming webhooks get their own format, not yet tested with real Slack and Discord accounts: tell us if anything looks wrong and it is fixed within a day. Microsoft Teams and Google Chat are not supported yet, and there is no direct e-mail (use Make, Zapier or n8n). Alerts are about new jobs; jobs that close are not reported yet.
  • A board that can be read only in part (for example a Lever board with more than 20,000 jobs) is watched within the part that can be read, from its second read on; the alert says so.

What's new

  • October 2026: job alerts. New jobs to your webhook after each scheduled run, nothing when nothing is new, and a missed message is sent again with the next run.

About

Built and maintained by Rowsmith HQ. Something not right, or a system you need? Open an issue on the Issues tab with the company and your input, and we will look at it.

More from Rowsmith HQ: