Career Site Job Search: New Greenhouse & Lever Jobs avatar

Career Site Job Search: New Greenhouse & Lever Jobs

Pricing

from $1.40 / 1,000 jobs

Go to Apify Store
Career Site Job Search: New Greenhouse & Lever Jobs

Career Site Job Search: New Greenhouse & Lever Jobs

Search jobs across 6,000+ companies' Greenhouse and Lever career sites without naming them: by title, location, remote, company, department, salary and date (24h, 7d), with live descriptions and only-new mode. One index refreshed daily; every job checked on its board before you pay.

Pricing

from $1.40 / 1,000 jobs

Rating

0.0

(0)

Developer

Michael Costa

Michael Costa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

What does Career Site Job Search do?

Career Site Job Search searches jobs across 6,000 companies' career sites on Greenhouse and Lever at once, without naming the companies: by job title, location, remote, company and posting date (last 24 hours, 7 days...). It reads one index of about 210,000 open jobs, rebuilt daily from the companies' own public job boards, and checks each job live on its board before you pay for it.

It is not a LinkedIn or Indeed scraper, and it doesn't cover every ATS: only companies whose careers page runs on Greenhouse or Lever (why).

Input fields · API · Use it from Claude, ChatGPT or Cursor (MCP)

Jump to: New jobs feed · Fields · Price · How to use · Coverage · Input · Output · AI agents (MCP) · Limits · FAQ

Try it in one click: the input comes pre-filled with software engineer, posted in the last 7 days, 20 jobs. That's 20 jobs, or about $0.04 (20 × $0.002, plus $0.00005 for the run start). Then replace it with what you actually want.

Get new jobs every day, in Slack, email or a webhook

With Only new jobs since the last run on, each run returns (and charges for) only the jobs that search hasn't returned before. A run with nothing new costs only the $0.00005 start fee.

  1. Set your search (for example Job title keywords data engineer, Locations remote, Posted within 7d), turn on Only new jobs since the last run ("onlyNewJobs": true), and click Start. This first run returns the matching jobs and is the baseline.
  2. Click Save as a new task (top right of the actor page). The memory is kept in a store in your own account, one per combination of filters, so the task keeps comparing with its own last run and other searches never hide its jobs.
  3. In Apify Console, open Schedules, click Create new, set how often in Schedule setup (daily is enough: the index is rebuilt once a day), then Add your task.
  4. On the task, open the Integrations tab and pick where the new jobs go:
    • Slack: click Configure, sign in, pick the workspace and channel, and the "run succeeded" event. A useful message: {{resource.statusMessage}} and a link, <https://console.apify.com/storage/datasets/{{resource.defaultDatasetId}}|new jobs>.
    • Gmail: click Connect with Google, set the subject and body, and attach the dataset. It sends after each successful run.
    • HTTP webhook: event ACTOR.RUN.SUCCEEDED, your URL. Apify POSTs {"eventType": ..., "resource": {...}}; resource.defaultDatasetId is the run's dataset, and GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?format=json (with your API token) returns the new jobs.

Apify's integrations fire after every successful run, including quiet ones: a quiet run's dataset is empty. If a run stops at Max jobs per run before it has returned everything new, the next run carries on where it stopped.

What data does Career Site Job Search return?

FieldExampleNotes
titleSenior Data EngineerAs the company wrote it
companyNameStripecompany is the board id (stripe)
location, locationsSan Francisco, CAThe company's own text; every location for multi-site jobs
remote, workplaceTypetrue, remoteremote / hybrid / onsite; null when the board doesn't say
employmentTypeFULL_TIMELever only; null on Greenhouse
postedAt2026-10-08T14:02:11ZThe board's own posting date
salaryMin, salaryMax, salaryCurrency, salaryPeriod150000, 190000, USD, YEARFrom the board's salary field, or a pay range in the description; null when neither has one
descriptionAbout the role ...Plain text, read live; null with descriptions off
url, applyUrlhttps://job-boards.greenhouse.io/...The job page and the application page
firstSeenAt2026-10-07T23:06:43ZWhen the daily index first saw the job
verifiedAt2026-10-09T08:12:40ZWhen this run found it still open on its board; null if the board couldn't be read

The fields match Company Career Page Jobs Scraper, so you can go from "search all companies" to "monitor these companies" without re-mapping. The full list is under Output.

How much does it cost to search jobs across company career sites?

You pay per job returned: $2.00 per 1,000 jobs ($0.002 a job), plus $0.00005 each time a run starts. Jobs that closed since the index was built, or no longer match after the live check, are dropped before they're charged.

  • The pre-filled example: 20 jobs × $2.00/1,000 = $0.04, plus the start fee.
  • A month, for example: a daily "new jobs" feed for one search that finds 30 new jobs a day ≈ 900 jobs ≈ $1.80, plus 30 start fees ($0.0015).
  • Caps: Max jobs per run in the input (default 100), and Maximum cost per run in the run options. The run stops cleanly at whichever comes first, and stops reading boards as soon as the limit is covered.

Never charged: jobs closed since the index was built, jobs a filter drops, jobs an only-new search returned before, and a run with nothing new beyond the start fee.

How to search jobs across company career sites

  1. Open Career Site Job Search and click Try for free (or Start if you're signed in).
  2. Fill in Job title keywords (software engineer, account executive), and if you like Locations (Berlin, remote) and Posted within (24h, 7d).
  3. Optional: narrow it down by company, department, employment type, salary or platform, or turn off descriptions for a faster run with fields from the index only.
  4. Click Start, then open the Output tab and export as JSON, CSV or Excel.

Which companies and job boards does it cover?

6,000 companies with open jobs, about 210,000 jobs (index of 2026-10-08: Greenhouse 4,485 companies / 161,718 jobs, Lever 1,530 / 48,261). Mostly tech, startups and fast-growing companies, worldwide, in the language each company writes in.

  • The board list starts from the open, MIT-licensed company lists of job-board-aggregator by Riley Dorrington (12,701 Greenhouse and Lever company boards). Boards with open jobs are checked daily; boards with none (or that no longer exist) are checked weekly and come back as soon as they post a job.
  • Greenhouse and Lever only. Both publish their job boards for anyone to read: Greenhouse's docs say "Job Board data is publicly available", and Lever's say published postings "may be scraped by third parties". Other ATSs either aren't cleared for a stored, shared index (Ashby routes job aggregators through an opt-in partner program) or forbid automated access (Workday, iCIMS, Taleo and others). See the FAQ.
  • Need a company that isn't here, or another ATS (Ashby, Recruitee, Personio, Teamtailor)? Name the company in Company Career Page Jobs Scraper, which reads it live.

Example: software engineer jobs posted this week

The pre-filled input:

{"titleKeywords": ["software engineer"], "postedWithin": "7d", "maxJobs": 20}

On Apify on 2026-10-09 (index built 2026-10-08 23:06 UTC), it matched 586 jobs in the index, read 16 companies' boards live and returned the 20 newest, from 16 companies, in 15 s: $0.04 plus the start fee. A few of them:

TitleCompanyLocationPostedSalary
AI Security Software Engineer (Starshield)SpaceXWashington, DC2026-10-08
Embedded Software Engineer, Platform (Starshield)SpaceXHawthorne, CA2026-10-08
Software Engineer II, Full Stack (Digital Products - Service)Scout MotorsFremont, California, United States2026-10-08$121,000 - $148,500
Software Engineer, AI/MLPlayStation GlobalUnited States, San Diego, CA2026-10-08$150,000—$225,000 USD
Senior Software EngineerRocket Lab CorporationAuckland, NZ2026-10-08

Input

FieldWhat it does
Job title keywords (titleKeywords)Jobs whose title contains any of these words or phrases. Matching ignores case and starts at a word: engineer also finds Engineering.
Exclude title keywords (excludeTitleKeywords)Drop titles with any of these (senior, intern).
Locations / Exclude locations (locations, excludeLocations)The company's own location text: try the city and the country. remote also keeps jobs marked remote.
Remote only (remoteOnly)Only jobs the board marks as remote.
Posted within (postedWithin)24h, 3d, 7d (default), 30d or any. On Apify's Free plan, 30d and any search the last 7 days (see Limits).
Only new jobs since the last run (onlyNewJobs)Return only jobs this search hasn't returned before.
Companies / Exclude companies (companies, excludeCompanies)By company name or board id.
Description keywords / Exclude (descriptionKeywords, excludeDescriptionKeywords)Checked on the live description (python, visa sponsorship).
Departments (departments)Department or team (Lever boards only).
Employment types (employmentTypes)FULL_TIME, PART_TIME, CONTRACT, TEMPORARY, INTERNSHIP, VOLUNTEER (Lever boards only).
Only jobs with a salary (hasSalary)The board's salary field, or a pay range in the description.
Job board platforms (platforms)greenhouse, lever; empty = both.
Include descriptions (includeDescription)On (default): read each matching board live for descriptions and the open check. Off: index fields only, faster.
Max jobs per run (maxJobs)Newest first; default 100, maximum 10,000.
Max jobs per company (maxJobsPerCompany)So one big employer doesn't fill the run.
{
"titleKeywords": ["data engineer", "analytics engineer"],
"excludeTitleKeywords": ["intern"],
"locations": ["remote", "New York"],
"postedWithin": "7d",
"onlyNewJobs": true,
"maxJobs": 100
}

Output

Every job has the same fields. Fields the board doesn't publish are null.

One job from the example run (real output; description shortened):

{
"id": "greenhouse:scoutmotors:5260681007",
"platform": "greenhouse",
"company": "scoutmotors",
"companyName": "Scout Motors",
"title": "Software Engineer II, Full Stack (Digital Products - Service)",
"department": "Commercial Operations",
"team": null,
"location": "Fremont, California, United States",
"locations": ["Fremont, California, United States"],
"country": null,
"remote": false,
"workplaceType": null,
"employmentType": null,
"postedAt": "2026-10-08T22:45:24Z",
"updatedAt": "2026-10-08T22:47:15Z",
"url": "https://job-boards.greenhouse.io/scoutmotors/jobs/5260681007",
"applyUrl": "https://job-boards.greenhouse.io/scoutmotors/jobs/5260681007",
"salaryMin": 121000,
"salaryMax": 148500,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"salaryText": "$121,000 - $148,500",
"salarySource": "description",
"description": "Here at Scout Motors, we're carrying forward the heritage of one of the most iconic American vehicles in history. A vehicle dating back to 1960. One that ...",
"firstSeenAt": "2026-10-08T23:06:43Z",
"verifiedAt": "2026-10-09T00:40:44Z",
"indexedAt": "2026-10-08T23:06:43Z",
"scrapedAt": "2026-10-09T00:40:44Z"
}

id is platform:company:job id and stable across runs, so you can use it to deduplicate. Jobs come newest first. The run's RUN_STATS record says when the index was built, how many jobs matched, how many closed since the index was built (closedSinceIndex), and any board that couldn't be read live, with the reason. Jobs whose board gives no posting date (a few Greenhouse boards) come last.

Run it on a schedule, or from your own code

  1. Save your input as a task (Save as a new task, top right of the actor page) and add it to a schedule (Console → Schedules → Create new).
  2. Collect results: download the dataset as JSON, CSV or Excel; fetch the latest run's results from the API (GET https://api.apify.com/v2/actor-tasks/<task id>/runs/last/dataset/items?status=SUCCEEDED&format=csv, with your API token); let a webhook tell your system when a run succeeds; or connect it to Make, Zapier or n8n through Apify's integrations.

Can I use Career Site Job Search from an AI agent (MCP)?

Yes, through Apify's MCP server, from Claude, ChatGPT, Cursor or any other MCP client. Add this to your client's MCP configuration (or let the agent find it with the server's actor search); your client signs you in to Apify:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=humble-echidna/ats-job-search"
}
}
}

To use an Apify API token instead of signing in, add "headers": {"Authorization": "Bearer <APIFY_TOKEN>"} next to url.

An agent should pass the search and a small cap, e.g.

{"titleKeywords": ["product designer"], "locations": ["London"], "postedWithin": "7d", "maxJobs": 20}
, and "includeDescription": false when it only needs titles and links.

Who it's for

Job boards and newsletters that publish fresh tech and startup roles every day, recruiters and sourcers watching who is hiring for a role, and job seekers who want one daily feed across thousands of companies instead of checking each careers page.

Why this one?

  • Checked before you pay. With descriptions on (the default), every job is re-read on its own board in the same run: one that closed since the index was built is dropped, not charged.
  • Only new jobs, per search. A daily feed returns each job once, with the memory in your own account.
  • $2.00 per 1,000 jobs, with the same fields as Company Career Page Jobs Scraper.
  • Polite and safe. The index is refreshed with conditional requests (an unchanged board answers with an empty 304), with an honest User-Agent (HumbleEchidnaApify), each site's robots.txt and Lever's crawl delay.

Limits

  • Two platforms, 6,000 companies. Companies on other ATSs, or on Greenhouse and Lever but not in the board list, aren't in the index (see coverage).
  • Daily index. A job posted after the last rebuild appears in the next one, so 24h means "posted in the last 24 hours and already indexed". There is no 1-hour window.
  • Greenhouse's job list has no departments or employment types, so those filters keep only Lever jobs.
  • Description keywords are checked on each candidate company's live board. A run stops once 400 companies read live gave it no job (closed, or no keyword match), so combine them with title keywords or a short window. The status message says when a run stopped there.
  • Free plan: the last 7 days. On Apify's Free plan, 30d and any search jobs posted in the last 7 days, and the status message says so. Any paid Apify plan searches 30 days or any time.
  • Locations are free text as each company writes them; there is no geographic radius search or country code mapping.
  • No AI enrichment (seniority, skills, visa) and no LinkedIn company data.

FAQ

It reads only the job boards Greenhouse and Lever publish for anyone to read: Greenhouse's Job Board API ("Job Board data is publicly available, so authentication is not required for any GET endpoints") and Lever's postings API ("These jobs may be scraped by third parties"). Neither platform's published terms restrict reading its public job boards; their terms of service are contracts with their customers. No login is used. It collects job postings only: no recruiter names, emails or applicant data.

How fresh is the data?

The index is rebuilt once a day; each run's RUN_STATS (indexBuiltAt) and status message say when. With descriptions on, every job you get was also found open on its board during your run (verifiedAt).

Why isn't my company (or Workday, Ashby, LinkedIn) in the results?

Only companies whose careers page runs on Greenhouse or Lever and that are in the board list are indexed. Workday, iCIMS, Taleo, SmartRecruiters and others forbid automated access in their terms or robots.txt. Ashby's public API is documented for a company's own careers page, and Ashby lets each customer choose which job aggregators get its jobs, so it isn't in a shared index. To track named companies on six ATSs (Ashby included), use Company Career Page Jobs Scraper.

Why did a search return nothing, or fewer jobs than expected?

Check Posted within first (the default is 7 days), then the keywords: they match at the start of a word, so ops finds "Ops Manager" and "DevOps" doesn't match ops. RUN_STATS says how many jobs matched in the index (matched) and how many closed since it was built (closedSinceIndex).

Can I get only new jobs since my last run?

Yes: turn on Only new jobs since the last run and schedule the search (how). Each combination of filters has its own memory in your account.

How is this different from a job database like fantastic.jobs, Hirebase or Jobo?

Those index far more sources (millions of jobs, dozens of ATSs, AI-extracted fields and company data) at $3-12 per 1,000 jobs on Apify's Starter plan. This one covers Greenhouse and Lever only, at $2.00 per 1,000, and checks every job on its board before charging. Pick it when your audience is tech and startup roles and you want verified, fresh links at a low price.

ActorUse it when
Company Career Page Jobs ScraperYou know the companies: all their jobs on six ATSs, with closed and changed jobs
Greenhouse Jobs ScraperNamed companies on Greenhouse only
Lever Jobs ScraperNamed companies on Lever only
Remote Jobs ScraperRemote job boards: We Work Remotely, Remote OK and Python.org Jobs

Feedback and support

Found a bug, or need a field, filter or company that isn't here? Open an issue on the Issues tab with the input you used.

Versions

Current version: 0.1. See the Changelog tab for what changed in each version.