Career Site Jobs Search: Greenhouse, Lever, Ashby avatar

Career Site Jobs Search: Greenhouse, Lever, Ashby

Pricing

from $2.00 / 1,000 jobs

Go to Apify Store
Career Site Jobs Search: Greenhouse, Lever, Ashby

Career Site Jobs Search: Greenhouse, Lever, Ashby

Search job postings from company career sites on Greenhouse, Lever, Ashby, Workable and Recruitee ATS boards. A built-in index of 280 company boards, no company list needed. Filter by keyword, location and remote. Get title, department, salary and apply link. Monitor mode finds new and closed jobs.

Pricing

from $2.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Malik Said

Malik Said

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Search job postings from company career sites in one run. The Actor reads the public job board APIs of Greenhouse, Lever, Ashby, Workable and Recruitee. A built-in index of 1,001 company boards comes with it, so you do not need a company list. Recruiters, job seekers, sales teams and analysts use it to find open roles and track hiring.

What it covers

Counted on 24 October 2026 with a full run.

ATSCompany boards in the indexJobs found
Greenhouse39032,852
Ashby33810,660
Lever1786,448
Workable66932
Recruitee29433
Total1,00151,325

The index includes companies such as Stripe, Airbnb, Databricks, Cloudflare, OpenAI, Notion, Ramp, Spotify, Palantir, Careem, Tamara and Unifonic. You can add any other public board on these five ATS with the Extra companies option.

What you get

One record per job, in the same format for every ATS.

FieldMeaning
companyCompany name
atsgreenhouse, lever, ashby, workable or recruitee
companyBoardBoard name in the ATS URL
jobIdJob ID on the ATS
titleJob title
departmentDepartment or team
location, locationsMain location and every listed location
countryCountry, when the ATS gives it separately
remotetrue when the job is remote. null when the board does not say
workplaceTyperemote, hybrid or on-site, when the ATS states it
employmentTypeFor example Full-time
seniorityLevel read from the title: intern, junior, mid, senior, lead, manager, director or executive. null when the title gives none
companyDomainThe company's own website domain, for index boards where it is known
postedAt, updatedAtDates in ISO 8601
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTextSalary, when the employer publishes it
applyUrl, jobUrlApplication page and job page
descriptionSnippetFirst 300 characters of the description
descriptionThe whole description as plain text, up to 8,000 characters. Only when Include full description is on
changeTypelisted in a normal search. new or closed in monitor mode
closedDetectedAtMonitor mode: when the job left its board

Sample record from a test run:

{
"id": "ashby:vanta:795ab93b-57d9-4387-9cc1-ea7615721ec6",
"changeType": "listed",
"company": "Vanta",
"ats": "ashby",
"companyBoard": "vanta",
"jobId": "795ab93b-57d9-4387-9cc1-ea7615721ec6",
"title": "Senior Analytics Engineer",
"department": "Product Analytics",
"location": "Remote U.S.",
"locations": ["Remote U.S."],
"country": "USA",
"remote": true,
"workplaceType": "remote",
"employmentType": "Full-time",
"postedAt": "2026-10-01T23:43:01.805Z",
"updatedAt": null,
"salaryMin": 190000,
"salaryMax": 224000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$190K - $224K",
"applyUrl": "https://jobs.ashbyhq.com/vanta/795ab93b-57d9-4387-9cc1-ea7615721ec6/application",
"jobUrl": "https://jobs.ashbyhq.com/vanta/795ab93b-57d9-4387-9cc1-ea7615721ec6",
"descriptionSnippet": "At Vanta, our mission is to help businesses earn and prove trust. We believe that security should be monitored and verified continuously, and we empower companies to practice better security and prove it with ease. Vanta has a kind and talented team, and while some have prior security experience,...",
"seniority": "senior",
"companyDomain": null,
"closedDetectedAt": null,
"scrapedAt": "2026-10-21T12:44:22.924Z"
}

Some fields are empty because the ATS does not publish them:

  • Salary comes from Ashby, Lever and Recruitee, when the employer fills it in. In a full run on 21 October 2026, 3,709 jobs had a salary. The Greenhouse and Workable list APIs carry no salary.
  • updatedAt comes from Greenhouse and Recruitee only.
  • remote on Greenhouse is true only when the location or title says "Remote". Otherwise it is null.
  • For a Lever or Ashby board you add yourself, company is the board name, because these APIs do not return a company name.

How to use it

  1. Enter keywords, for example data engineer.
  2. Optional: add locations, for example London or Remote, or turn on Remote jobs only.
  3. Set Maximum jobs to 0 to get every match. A full search of the index takes about 8 to 15 minutes. For a full search, set the run timeout to 3,600 seconds. If the timeout comes first, the run stops cleanly with the jobs saved so far.
  4. For a daily feed, turn on Monitor mode and schedule the Actor. Each run returns only new jobs and jobs that closed since the last run.

Input

OptionDefaultMeaning
KeywordsNoneKeep jobs whose title, department or company has a keyword. Whole words, any case
Exclude keywordsNoneDrop jobs whose title has one of these words
Description keywordsNoneKeep jobs whose description has one of these words, for example Python or Kubernetes
Exclude description keywordsNoneDrop jobs whose description has one of these words
LocationsNoneKeep jobs in these places, for example Germany or Remote
Exclude locationsNoneDrop jobs in these places, for example India
Remote jobs onlyOffKeep only remote jobs
Jobs with salary onlyOffKeep only jobs that state pay
SeniorityAnyKeep jobs at these levels: intern, junior, mid, senior, lead, manager, director, executive. Read from the title
Workplace typeAnyKeep remote, hybrid or on-site jobs
Employment typeAnyKeep full-time, part-time, contract, internship or temporary jobs
Posted within (days)0 (any)Keep jobs posted or updated in the last N days
ATS platformsAll fiveLimit the search to some ATS
Search the built-in company indexOnTurn off to search only your own companies
Extra companiesNoneBoard URLs such as https://boards.greenhouse.io/stripe, greenhouse:stripe, or a board name such as figma
Exclude companiesNoneDrop jobs from these companies, by name or board name
Company website domainsNoneKeep jobs from companies with these domains, for example stripe.com. Only index boards with a known domain match
Include full descriptionOffAdd the whole description as plain text, up to 8,000 characters. Each record gets larger
Monitor modeOffReturn only new and closed jobs
Monitor mode: include updated jobsOffAlso return jobs whose title, location, pay, workplace type or update date changed
Monitor state keydefaultName of the monitor memory. Use one key per search
Maximum jobs100Stop after this many jobs. Set 0 for no limit

Example input:

{
"keywords": ["data engineer", "analytics engineer"],
"locations": ["London", "Remote"],
"postedWithinDays": 30,
"maxItems": 0
}

Find skills that appear only in the job text, with pay stated, outside one country:

{
"descriptionKeywords": ["Kubernetes"],
"locations": ["Remote"],
"excludeLocations": ["India"],
"salaryOnly": true,
"maxItems": 200
}

Senior hybrid full-time roles at a list of target accounts, for a sales team:

{
"companyDomains": ["stripe.com", "figma.com", "reddit.com"],
"seniorityLevels": ["senior", "lead", "manager"],
"workplaceTypes": ["hybrid"],
"employmentTypes": ["full-time"],
"maxItems": 0
}

Monitor mode

The first monitor run returns every matching job as new. Later runs return:

  • new: a job that was not returned before.
  • closed: a job returned before that is no longer on its board.
  • updated: only when Monitor mode: include updated jobs is on. A job returned before whose title, location, pay, workplace type or update date changed. The record holds the new values.

A board that fails to load is skipped for closed checks. So a network error never marks jobs as closed.

Pricing

You pay per event:

  • $0.005 when the run starts.
  • Per job saved to your dataset: $0.0025 on the Free and Bronze plans, $0.00225 on Silver, and $0.002 on Gold and above. That is $2.50, $2.25 or $2.00 per 1,000 jobs.
  • Jobs skipped by your filters cost nothing. In monitor mode, jobs already returned cost nothing.
Jobs savedFree and BronzeSilverGold and above
100$0.26$0.23$0.21
1,000$2.51$2.26$2.01
10,000$25.01$22.51$20.01

Costs include the start fee and are rounded up to the cent.

Filters run before a job is saved, so a narrow search costs less than a broad one.

Use it from the API or a schedule

Get jobs in one call, for example from a script or an AI agent:

curl -X POST "https://api.apify.com/v2/acts/maliksaid~career-site-jobs/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["data engineer"], "locations": ["London"], "maxItems": 50}'

For a daily feed of new and closed jobs, create a schedule in Apify Console with Monitor mode on and a fixed Monitor state key. Each run then returns only the changes. Apify integrations send the results to Make, Zapier, n8n, Google Sheets, Slack or a webhook.

FAQ

How fresh are the jobs? Each run reads the live job boards, so the jobs are as current as the employer's own careers page.

Where does the index come from? From public company career boards on the five ATS, including boards that companies shared in public hiring posts. Every board answered its public API with at least one job when it was added. companyDomain is filled when the board's own job links or the company's post name its website.

How do I add a company? Paste its board URL, write greenhouse:company, or type the board name, such as figma, in Extra companies. Ask on the Issues tab to have it added to the index.

Why is the salary empty for some jobs? The Greenhouse and Workable list APIs carry no salary. Ashby, Lever and Recruitee carry it when the employer fills it in. Use Jobs with salary only to keep only jobs with pay.

Why are Workday and SmartRecruiters missing? Their terms or robots.txt do not allow this kind of access.

Does it return recruiter contacts? No. It removes emails and phone numbers on purpose and never saves recruiter or hiring manager names.

How do I filter by level or job type? Use Seniority, Workplace type and Employment type. Seniority is read from the job title, so a title such as "Software Engineer" has no level.

How do I get a daily feed? Turn on Monitor mode and schedule the Actor. See the section above.

Data sources and use

  • The Actor reads documented public job board APIs that need no login or key.
  • It sends at most one request per second to each ATS.
  • On Recruitee, it reads each company's robots.txt first and skips boards that disallow the API.
  • It saves job posting fields only. It does not save recruiter or hiring manager names, emails or phone numbers. Emails and phone numbers are removed from the description snippet and the full description.
  • Workday and SmartRecruiters are not included. Their terms or robots.txt do not allow this kind of access.

Support

Open an issue on the Issues tab if a company board is missing or a field looks wrong. You can also ask for a company to be added to the index.