Job Search Scraper: 25,500+ Company Career Sites avatar

Job Search Scraper: 25,500+ Company Career Sites

Pricing

from $2.40 / 1,000 jobs

Go to Apify Store
Job Search Scraper: 25,500+ Company Career Sites

Job Search Scraper: 25,500+ Company Career Sites

Scrape job postings from 25,500+ company career sites in one search (Greenhouse, Lever, Ashby, Workday and more): a legal alternative to LinkedIn and Indeed job scrapers. Salaries, remote filter, daily alerts. $3.00 per 1,000 jobs.

Pricing

from $2.40 / 1,000 jobs

Rating

0.0

(0)

Developer

Richie Data

Richie Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Security

Limited permissions

Share

Type a job title and get matching open jobs from 25,500+ companies at once, straight from their official career sites. You do not need a list of companies: the Actor searches its directory of companies that hire on Ashby (3,236), BambooHR (3,732), Breezy HR (348), Greenhouse (4,757), Jobvite (345), Lever (572), Oracle Cloud HCM (1,248), Personio (2,141), Pinpoint (100), Recruitee (1,290), Rippling (1,268), SmartRecruiters (1,297), Teamtailor (1,151), Workable (220), Workday (3,953).

⭐ Is this Actor useful to you? A short review on the Reviews tab helps other users find it, and tells us what to build next.

  • 🔎 One search, thousands of career sites: startups, scale-ups and enterprises in tech, finance, health, retail and more.
  • 💰 Salary ranges parsed into numbers when the company publishes them.
  • 🔔 Daily job alerts: save your search as a task, schedule it daily and turn on Only new jobs: each run returns just the jobs posted since the last one, straight to Slack, email, Google Sheets or a webhook.
  • 📅 Only fresh jobs: keep jobs posted in the last day, week or month with Posted within (days).
  • 🌍 Location and remote filters, experience level, employment type, minimum salary and words in the description.
  • 🛂 Visa sponsorship filter: keep only jobs whose description says the company sponsors visas (H-1B, work permits). Every job carries a visaSponsorship field: true, false or null when the posting does not say.
  • 🟧 Y Combinator filter: search only YC startups; every YC company's jobs carry its batch (ycBatch, e.g. W24).
  • 🧹 Merge duplicate titles: one job per opening even when a company posts it once per city.
  • 🎯 Companies output for lead generation: switch Output to Companies and get one row per company hiring for your role, with its careers page, number of matching and remote jobs, titles, locations, salary range and newest posting date.
  • 🔔 Monitoring mode: schedule it daily and receive only jobs you have not seen before.
  • ⚡ Fresh and fast: job titles are indexed daily, then every matching job is fetched live from the company's career site, so you get current details and closed jobs drop out.
  • 💵 $3.00 per 1,000 jobs plus a small fee per run that covers scanning the directory.

Who uses it

  • Job seekers and career coaches building a personal job alert for a role.
  • Job boards and newsletters that publish curated openings (remote jobs, AI jobs, design jobs...).
  • Recruiters and sourcers mapping which companies hire for a role right now.
  • Sales teams looking for companies that are hiring for a function they sell to.
  • Analysts tracking hiring demand and salaries by role.

How to use it

  1. Enter one or more job title keywords (for example data engineer, machine learning, account executive).
  2. Optionally narrow it down: locations (or locations to exclude), remote only, posted within N days, experience level (intern, junior, senior...), employment type, minimum salary, words in the description, visa sponsorship, or only some companies or ATS.
  3. Click Start. For a daily alert, turn on Only new jobs and add a schedule.

Example input

{
"keywords": ["data engineer", "analytics engineer"],
"locations": ["Remote", "New York"],
"excludeKeywords": ["intern"],
"postedWithinDays": 7,
"onlyNewJobs": true
}

Output

Each job has the same clean schema as our other job scrapers: company, title, department, location, workplace type (remote/hybrid/on-site), employment type, seniority, salary min/max/currency/period, visa sponsorship, posting date, URL and description. The SUMMARY record lists how many companies were scanned and which ones matched.

Pricing

$3.00 per 1,000 jobs saved plus about $0.01 per run for scanning the directory. Use Max jobs to cap the cost of a run. In the Companies output (lead lists), each hiring company costs $0.01 more, because one record bundles every matching role, the careers page and the salary range.

FAQ

Is this an alternative to a LinkedIn or Indeed jobs scraper? Yes, and a safer one. Most jobs you see on LinkedIn and Indeed are first published on the employer's own career site (Greenhouse, Lever, Workday and the other ATS this Actor reads), so you get the same openings from the original source, usually earlier and with the full description, salary range and direct apply link. No LinkedIn or Indeed account, cookies, proxies or login are needed, nothing is scraped from those sites, and there are no blocked runs or duplicated reposts. This Actor is not affiliated with LinkedIn or Indeed.

How does it find companies? It keeps a directory of companies with an active public job board on each supported ATS, built from public sources and refreshed regularly (current directory: 25,658 companies).

How fresh are the results? Job titles across the directory are indexed every day, so the search runs in minutes instead of hours. Then every matching job is fetched live from the company's own career site at run time: you get the current title, salary, description and apply link, and jobs that were closed since the last index are simply not returned. For brand-new jobs, schedule the Actor daily with Only new jobs turned on.

How long does a run take? A search across the full directory usually finishes in about 3 minutes; most of that time goes to downloading the details of the matching jobs. Use Max jobs in total for quick previews.

My target company is missing. Use the Career Site Jobs Scraper with the company's careers URL, or open an issue and we will add it to the directory.

Is it legal? It reads public job postings that companies publish for anyone to see, through each ATS's public job board endpoints. No login and no personal data.

Supported ATS

Supported ATS
GreenhouseLeverAshby
WorkdaySmartRecruitersWorkable
RecruiteePersonioTeamtailor
BambooHRBreezy HRRippling
Oracle Cloud HCMPinpointJobvite

Use it from your code, AI agents and automations

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("richiedc95/company-jobs-search").call(run_input={
"keywords": [
"data engineer"
],
"locations": [
"Remote"
],
"postedWithinDays": 1,
"onlyNewJobs": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('richiedc95/company-jobs-search').call({
"keywords": [
"data engineer"
],
"locations": [
"Remote"
],
"postedWithinDays": 1,
"onlyNewJobs": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
  • 🤖 AI agents (MCP): add the Apify MCP server to Claude, ChatGPT, Cursor or any MCP client and this Actor becomes a tool your agent can call.
  • 🔗 No-code (n8n, Make, Zapier): one HTTP request runs the Actor and returns the results, so any automation tool can use it. In n8n, add an HTTP Request node with method POST, URL https://api.apify.com/v2/acts/richiedc95~company-jobs-search/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> and the JSON input above as the body, then send the items to Slack, Google Sheets, email or a CRM. Put a Schedule node in front for daily alerts. Make and Zapier have official Apify apps (Run an Actor → Get dataset items). Ready-made n8n workflows (import from URL) and a step-by-step guide: n8n / Make / Zapier examples.
  • 📥 Exports: download every run as JSON, CSV, Excel, XML or RSS, or read it through the Apify API.

Get a fresh feed automatically (job boards, dashboards, alerts)

  1. Click Save as a new task with your input (turn on the monitoring option if the Actor has one, so each run returns only new jobs).
  2. Add a schedule to the task (hourly, daily or weekly) under Schedules.
  3. Read the latest results from one stable URL, in the format your tool expects:
https://api.apify.com/v2/actor-tasks/<TASK_ID>/runs/last/dataset/items?token=<YOUR_APIFY_TOKEN>&status=SUCCEEDED&format=csv

Use format=json, csv, xlsx, xml or rss. Job-board plugins and spreadsheets can import that URL directly.

Found a bug or need a feature? Open an issue on the Issues tab and we will usually answer within a day.