Greenhouse, Lever & Ashby Jobs Scraper avatar

Greenhouse, Lever & Ashby Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Greenhouse, Lever & Ashby Jobs Scraper

Greenhouse, Lever & Ashby Jobs Scraper

Scrape every open job from Greenhouse, Lever and Ashby company boards: title, company, location, department, salary where stated, apply URL and full description. Filter by keyword, location and date. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Get every open job of any company that hires through Greenhouse, Lever or Ashby. Paste a company board URL (or just the company name) and receive title, location, department, employment type, remote flag, salary where the posting states one, apply URL and the full job description. No login, no API key. Fast, with clean rows.

One actor for the three most common applicant tracking systems of startups and tech companies. It reads the public job board endpoints of each system, so the data is live at run time.

What you can do with it

  • Pull all open roles of a list of target companies for lead generation or recruiting research.
  • Track hiring at competitors: run it on a schedule with postedWithinDays and sortBy: newest to see only new postings.
  • Build a job board or alert feed from the boards of companies you care about.
  • Collect stated salary ranges (Greenhouse pay transparency, Lever salary range, Ashby compensation) for market research.

Two ways to run it

A run is in exactly one mode, decided from your input and written to the run log.

Your inputModeWhat happens
companies (with or without keywords)Company modeReads exactly the boards you list. keywords only filter their jobs.
keywords and no companiesKeyword searchSearches the jobs of many companies at once, from a built-in list of 10,550 companies on Greenhouse, Lever and Ashby, biggest hirers first.
nothing ({})Company modeReads four sample boards.

Keyword search is for questions such as "which companies are hiring a data engineer in Germany right now" when you do not know the companies in advance. It matches the job title, the same as company mode. Each company is read once and jobs are pushed as the companies are scanned, so you see rows early. Use countries, location, postedWithinDays and maxCompanies to narrow the search, and maxResults to stop early. The built-in list is verified live when it is generated and refreshed with each release; a company that has since changed system is skipped.

Every row has the same fields in both modes, and duplicates are removed before anything is charged.

Input

FieldDescription
companiesCompany mode. Board URLs or bare company names. Strings, {"url": "..."} objects, a single string, or several separated by commas or new lines. Empty (and no keywords) = four sample boards.
atsOnly for bare company names: auto (default, tries Greenhouse, then Lever, then Ashby), or greenhouse, lever, ashby. In keyword search it limits the scan to that system.
keywordsKeep only jobs whose title matches at least one keyword. With no companies it starts keyword search.
locationKeep only jobs in this city, region or country (London, Germany, DE).
includeRemoteWithoutRegionboolean
countriesKeyword search only. ISO-2 codes such as ["DE", "CH"]: skips companies known not to hire there and keeps only jobs in these countries (jobs whose country cannot be determined are left out).
maxCompaniesKeyword search only. How many companies of the built-in list are scanned, biggest hirers first. Default 500.
postedWithinDaysDrop jobs older than this many days.
sortBynewest (default) or relevance (the board's own order). In keyword search, newest first within each company.
maxJobsPerCompanyCap per company, counted after the filters. 0 = all. Default 50.
maxResultsCap for the whole run. The run stops cleanly when it is reached. 0 = no limit. Default 100.
includeDescriptionInclude the full description HTML. Default true.

Remote jobs under a country filter: a country filter is the location input when it is a country (Germany, DE). A remote job is kept when its text names that country (Remote - Germany, Remote (DE), Germany (Remote)), names a region that contains it (EMEA, Europe, EU, DACH for DE/AT/CH, Americas or North America for US/CA, LATAM, APAC, UK & Ireland) or says it is open worldwide (Worldwide, Anywhere, Global). A remote job that names another country or a region without your country is dropped. A job that says only Remote (also Remote OK, Fully remote, or a remote flag with no place) does not state where it can be filled from, so it is left out by default and not charged; the run status says how many were left out. Turn on includeRemoteWithoutRegion to keep them anyway (they may not be open to applicants in your country). Jobs with a physical place are judged by that place as before.

{
"keywords": ["data engineer", "product manager"],
"countries": ["DE", "CH"],
"postedWithinDays": 14,
"maxResults": 100
}

Example: board URLs

{
"companies": [
"https://boards.greenhouse.io/airbnb",
"https://jobs.lever.co/palantir",
{ "url": "https://jobs.ashbyhq.com/openai" }
],
"keywords": ["engineer", "data"],
"postedWithinDays": 14,
"sortBy": "newest",
"maxJobsPerCompany": 25
}

Example: bare company names

{
"companies": ["airbnb", "palantir", "openai"],
"maxResults": 60
}

Each name is looked up on Greenhouse, Lever and Ashby in that order and the first board that exists is used. If you already know the system, set "ats": "lever" and the lookup is skipped.

Only Greenhouse, Lever and Ashby boards are read. A URL of any other job system (Workday, Workable, SmartRecruiters and so on) is skipped with a log line and is never charged; for Workday use the Workday Jobs Scraper, and for 40 more systems use Career Site Jobs Scraper.

Supported URL formats

  • Greenhouse: https://boards.greenhouse.io/{company}, https://job-boards.greenhouse.io/{company}, a posting URL of those, or the board API URL.
  • Lever: https://jobs.lever.co/{company}, https://jobs.eu.lever.co/{company} (EU instance), or a posting URL.
  • Ashby: https://jobs.ashbyhq.com/{company} or a posting URL.

Output

One dataset row per job. Duplicates are removed before anything is charged, so the number of rows is the number of results you pay for.

{
"id": "ashby-7b2865a7-1f148786-2e00-472a-96b9-0b29015980e1",
"ats_job_id": "1f148786-2e00-472a-96b9-0b29015980e1",
"title": "Product Data Scientist - Youth, Families and Learning",
"company": "Openai",
"ats_platform": "ashby",
"location": "San Francisco",
"city": "San Francisco",
"country": "US",
"department": "Data Science",
"employment_type": "Full-time",
"remote": true,
"description": "<p>About the Team ...</p>",
"apply_url": "https://jobs.ashbyhq.com/openai/1f148786-2e00-472a-96b9-0b29015980e1/application",
"job_url": "https://jobs.ashbyhq.com/openai/1f148786-2e00-472a-96b9-0b29015980e1",
"language": "en",
"created_at": "2026-10-20T21:21:22Z",
"salary_text": "$401K - $510K",
"salary_min": 401000,
"salary_max": 510000,
"salary_currency": "USD",
"salary_period": "year",
"salary_source": "stated",
"scraped_at": "2026-10-21T04:37:09Z"
}

salary_* fields are filled only when the posting states a salary; they are never estimated. created_at is the posting date (Greenhouse first_published, Lever createdAt, Ashby publishedAt).

Pricing

Pay per result. You pay the platform start fee per run and then only for the jobs you receive. Filtered-out and duplicate jobs are never charged.

EventWhenPrice
job-resultone job from company mode (you list the companies)$0.001
job-result-keyword-searchone job from keyword search across companies$0.0015

The pricing box on the actor page always shows the current rates.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client, such as Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Example prompts once connected:

"Use greenhouse-lever-ashby-jobs-scraper to get all open engineering roles at Airbnb, Palantir and OpenAI posted in the last 14 days. Return a table with title, location and apply URL."

"Use greenhouse-lever-ashby-jobs-scraper for the company names stripe, ramp and notion and list the roles that state a salary."

"Use greenhouse-lever-ashby-jobs-scraper keyword search for data engineer in Germany and Switzerland, posted in the last 14 days, and return the 30 newest with company and apply URL."

Configure the MCP server with the Greenhouse, Lever & Ashby Jobs Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/greenhouse-lever-ashby-jobs-scraper:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=santamaria-automations/greenhouse-lever-ashby-jobs-scraper",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

See the auto-generated API tab on the actor page for language-specific examples (cURL, JavaScript, Python, and more).

FAQ

Do I need an API key for Greenhouse, Lever or Ashby? No. The actor reads the public job board endpoints these systems provide for career pages and job aggregators.

How do I find out which system a company uses? Open the company's careers page and look at the URL of a job: boards.greenhouse.io, jobs.lever.co and jobs.ashbyhq.com are the three this actor reads. Or give the company name and let the actor look it up. The Website Job Extractor finds the careers page and the job system of any company website.

What if a company is not found? The run continues with the other companies. The run status line names the company and the reason (for example board_not_found), and nothing is charged for it.

Which companies does keyword search cover? A built-in list of 10,550 companies that publish their jobs on Greenhouse, Lever or Ashby, built from our company directory, the public YC company list and public company lists, and checked live (the job board answered and had at least one open job) when the list was generated. It is not every company on these systems. If a company you need is missing, pass its board URL in companies instead.

Why did I get fewer jobs than maxJobsPerCompany? The caps apply after your filters, and a board can simply have fewer open jobs. Companies are read in the order you list them, and the run stops once maxResults is reached.

Support

  • Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours, or open a ticket in the Issues tab on the actor page.
  • Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume.