Skip to the content.

Job Search Scraper: 25,500+ Company Career Sites

▶ Run it on Apify: no install, no login to any data source. Apify’s free plan includes monthly credit, enough for small runs.

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).

Who uses it

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.

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();

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.

Run it

Job Data APIs: Company Career Sites, ATS Job Boards and Job Search · All data APIs