# SmartRecruiters Jobs Scraper & API - Remote, Last 24 Hours (`anshumanatrey/smartrecruiters-jobs-search`) Actor

SmartRecruiters jobs scraper and API for 2,900+ companies on careers.smartrecruiters.com, searched live by job title, location, remote, job type and date, newest first. 222,000+ open jobs, no company IDs needed. The site:careers.smartrecruiters.com dork at the source: descriptions, pay, link checks.

- **URL**: https://apify.com/anshumanatrey/smartrecruiters-jobs-search.md
- **Developed by:** [Anshuman Atrey](https://apify.com/anshumanatrey) (community)
- **Categories:** Jobs, Lead generation, Open source
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SmartRecruiters Jobs Scraper & API - Remote, Last 24 Hours

SmartRecruiters jobs scraper and API: search the career sites of 2,900+ companies on SmartRecruiters (careers.smartrecruiters.com and jobs.smartrecruiters.com) at once, live, and get each job's title, company, location, remote, hybrid or onsite, job type, department, exact posting time and link, newest first. Turn on full details for the description, the pay with its period, the reference number and the city, region and country.

Use it as a SmartRecruiters jobs API, a careers.smartrecruiters.com scraper or a daily job feed from the Apify Console, the Apify API, Python, JavaScript, n8n, Make or an AI agent, and export JSON, CSV or Excel. It is the `site:careers.smartrecruiters.com` Google dork done at the source, with the fields a search result cannot give you. Available as an [Apify Actor](https://apify.com/anshumanatrey/smartrecruiters-jobs-search). $0.0025 per job, $0.0035 with full details, no start fee, no login, no API key.

### What does it do?

- **Searches 2,917 career sites of 2,907 companies at once**: 222,729 open jobs in 198 countries on 2026-11-03, at companies such as Bosch, ServiceNow, LinkedIn, Domino's, Accor, H\&M, Deloitte, Canva, Ubisoft and Delivery Hero.
- **One keyword is enough.** Type a job title and press Start. Leave the form empty for the newest jobs of every kind.
- **Newest first, read live.** Every job comes from SmartRecruiters at the moment of your run, dated to the millisecond, not from a stored copy.
- **Fresh jobs in volume.** 8,406 jobs were posted on these career sites in the 24 hours before a count on 2026-11-03, and 36,138 in 7 days.
- **Filters that take what people type.** Germany, EMEA, Remote, part time, last 24 hours, or a pasted Google dork such as `site:careers.smartrecruiters.com/BoschGroup intext:software`.
- **Pay and full descriptions when you want them.** Full details add the job ad, the pay with its period when the company publishes it, the reference number and the place.
- **Checks job links.** Paste links and each comes back open, closed or not found.

### How is it different from other SmartRecruiters scrapers?

- **You do not need to know the companies.** SmartRecruiters publishes no list of its customers, and 67 of the 124 Store actors with SmartRecruiters in their name or title will not start without a company ID, link or board (2026-11-02). This actor carries a list of 2,917 career sites built from SmartRecruiters' own company search, web archives and public job data, so one keyword covers them all and finds companies you had never heard of.
- **Years-old postings stay out.** SmartRecruiters keeps a job open until its company closes it, and many never do: on 2026-11-03, 9,626 career sites had posted nothing for two years yet still listed 179,872 jobs as open, 129,611 of them on sites whose newest job was from 2017. A search leaves those sites out; name such a company and it is read, with each job's real date.
- **Test postings stay out.** Sandbox, test and demo accounts post tests, templates and copies of real jobs. On 2026-11-03, 46 such accounts held 3,714 postings, and 748 more on 33 real career sites were titled as tests, such as Pilot Flying J's `(J_SYNC_TEST)Deli Baker`. A search leaves them out, so you never pay for one.
- **Companies that SmartRecruiters' own job search leaves out.** The cross-company search on jobs.smartrecruiters.com answers with only the newest 100 jobs of a query, and 1,387 career sites with open jobs were missing from its company list on 2026-11-02, 617 of them among the 2,917 this actor searches. AbbVie (1,855 jobs on 2026-11-03) and the City of New York (1,397) are two of them, and this actor reads both.
- **The real posting date, to the millisecond.** Each job's date is the instant its own page gives Google as datePosted (11 of 11 pages checked), so the last 24 hours means 24 hours.
- **A place is where the job is.** Some companies file an office under a continent: Turner & Townsend lists Amsterdam under "Europe". This actor reads that as Amsterdam, Netherlands, so a search for Germany does not return it.
- **Company IDs in any capitals.** BoschGroup and boschgroup read the same career site, and a name such as Bosch Group finds each of its career sites on the list.
- **A failed read costs nothing.** You pay per delivered row.

### When should I use it?

- **Job seekers and job boards:** the newest jobs at large employers in Europe, the US and beyond, filtered by place, remote work and job type, on a daily schedule.
- **Recruiters and sourcing teams:** see who is hiring for a role across 2,900+ companies on SmartRecruiters, and where.
- **Sales and market research:** a company's open jobs show where it is growing, by department and by country.
- **Data teams and AI agents:** one clean, stable feed of SmartRecruiters jobs through the API or MCP.

### How much does it cost to scrape SmartRecruiters jobs?

Pay per event: $2.50 per 1,000 jobs, or $3.50 per 1,000 with full details. Apify's free $5 monthly credit covers 2,000 jobs, or about 1,400 with full details. Platform usage is included, and there is no start fee or monthly fee.

| Event | Price | When it is charged |
|---|---|---|
| Job | $0.0025 | One saved job, and one checked link that is closed or not found |
| Job with details | $0.0035 | One saved job with full details on |

SmartRecruiters Jobs Scraper's Apify Store header, "from $2.00 / 1,000 jobs", shows the lowest discount-tier price: the GOLD price. FREE and BRONZE users (Apify's Free and Starter plans) pay the base price in the table, $0.0025 a job and $0.0035 with details; SILVER (Scale) pays 10% less, $0.00225 and $0.00315; GOLD (Business) and above pay 20% less, $0.002 and $0.0028. There is no start fee, so the job price is the whole cost on every plan.

| Job (Free and Starter price) | Cost |
|---|---|
| 100 newest jobs | $0.25 |
| 100 jobs with full details | $0.35 |
| 1,000 jobs | $2.50 |
| Every job posted in one day (8,406 on 2026-11-03) | $21.02 |

Number of jobs (`maxJobs`) sets the most a run can cost, and a run stops at its spending limit with a message saying so.

### How does the price compare with other SmartRecruiters scrapers?

Every actor on the Apify Store whose listing says it reads SmartRecruiters jobs and that had 20 or more users in the last 30 days, or 3 or more with SmartRecruiters in its title, ordered by those users. Found on 2026-11-02 by reading the 1,207 job listings that name SmartRecruiters among the 2,705 actors returned by 36 Store searches; users and free-plan prices from each actor's record the same day.

| Actor | Users, 30 days | Per job | Start fee | Covers |
|---|---|---|---|---|
| fantastic-jobs/career-site-job-listing-api | 1,632 | $0.012 | $0.01 | 58 ATS from its own database; `smartrecruiters` is one filter |
| fantastic-jobs/career-site-job-listing-feed | 282 | $0.0025 | $0.10 | The same database as a feed |
| hirebase/job-search | 137 | $0.005 | $0.001 | 80+ ATS from its own index; SmartRecruiters is one platform filter |
| jobo.world/ats-jobs-api | 134 | $0.004 | $0.00005 | 150+ platforms from its own index; SmartRecruiters is one source |
| bovi/greenhouse-lever-ashby-job-scraper | 100 | $0.0015 | $0.00005 | 6 ATS, the companies you name or 4 preset lists |
| memo23/career-site-ats-jobs-api | 81 | $0.004 | $0.03 | 116 ATS, the companies you name |
| jobspipe/jobspipe-job-search | 61 | $0.00196 | none | Its own index of job boards and 12 ATS; `smartrecruiters` is one source |
| openclawai/career-site-ats-jobs-scraper | 47 | $0.0005 | none | 60+ ATS by its listing (34 named), the careers page or company name you give it |
| santamaria-automations/career-site-jobs-scraper | 23 | $0.001 | $0.001 | 42 ATS and job sites, the career-site links you give it |
| lergassy/jobs-api | 20 | $0.006 | none | Indeed, LinkedIn and 5 ATS; the SmartRecruiters boards you name. $0.0001 from 2026-11-13 |
| blackfalcondata/greenhouse-scraper | 6 | $0.00095 | $0.005 | 6 ATS, the board links you give it |
| pulsedata/career-page-jobs-scraper | 5 | $0.002 | none | 12 ATS, the board or careers-page links you give it |
| jobo.world/smartrecruiters-jobs-scraper-api | 5 | $0.004 | none | SmartRecruiters only, by keyword from its own index |
| memo23/smartrecruiters-scraper | 3 | $0.0009 | $0.025 | SmartRecruiters only, the company IDs you give it |
| This actor | new | $0.0025 | none | SmartRecruiters only, 2,917 career sites read live, no IDs needed |

Per job is each actor's main event; some charge more for extra data. Where others are cheaper: bovi, openclawai, santamaria-automations, blackfalcondata, pulsedata and memo23's SmartRecruiters actor cost less per job when you already know the companies, and jobspipe costs less per job across its sources. Where others do more: the multi-ATS actors cover many platforms in one run. The other 120 actors with SmartRecruiters in their name or title had 2 users or fewer each.

Left out although their listings name SmartRecruiters: factpipe/ats-jobs-feed (98 users), glitchbound/ats-jobs-scraper (63), jtpalms/ats-jobs-index (60) and conserving_celerytop/live-career-page-jobs-api (55) say they do not read it, and kaix/linkedin-jobs-scraper (174) reads it only to enrich jobs found on LinkedIn.

### Which inputs does it take?

Nothing is required. Type a job title and press Start, or press Start with the form empty.

| Field | What it does |
|---|---|
| Job titles to find (`searchTerms`) | One per line. A job matches when its title has every word, with or without accents. SmartRecruiters' own search finds the words, so frontend and front end find different jobs: add both lines to get both. A pasted Google dork or SmartRecruiters link works too |
| Where the job is (`location`) | A city, state, country or region: London, United States, Germany, EMEA. Remote asks for remote jobs |
| Remote or onsite (`workType`) | remote, hybrid or onsite: remote and hybrid as the company flagged them, every other job onsite |
| Posted in the last (`postedWithin`) | 24 hours, 3 days, 7 days, 30 days, any time, or your own period such as 48 hours |
| Number of jobs (`maxJobs`) | How many, newest first: 100 by default, 0 for every match |
| Full details (`includeDetails`) | Adds the description as text and HTML, pay with its currency and period, the reference number, city, region, country and country code |
| Leave out words (`excludeTerms`) | Drops jobs whose title has these words, such as senior or intern |
| Job type (`employmentType`) | full-time, part-time, contract or intern, the four job types SmartRecruiters jobs carry (its Casual counts as part-time): temporary or seasonal finds nothing |
| Match descriptions (`searchDescriptions`) | Finds your words in the description too, not only the title |
| Only these companies (`companies`) | A name (Bosch Group), the company ID (BoschGroup) or a SmartRecruiters link. Empty searches every company on the list |
| Job links to check (`jobUrls`) | Paste job links, smrtr.io short links included, to check whether they are still open, instead of searching |

Example input:

```json
{
  "searchTerms": ["software engineer"],
  "location": ["Germany", "United States"],
  "postedWithin": "30 days",
  "maxJobs": 100
}
```

### What does the output look like?

One row per job, newest first. These rows are from run T1JjpjZvjP6XS2NFm on Apify on 2026-11-03 (build 1.0.1), which searched every company for software engineer in 41 seconds and saved the 100 newest of at least 707 matching jobs at 222 companies. Five of them:

| Job title (`title`) | Company name (`company`) | Job location (`location`) | Remote or onsite (`workType`) | Job type (`employmentType`) | Posted on (`postedAt`) |
|---|---|---|---|---|---|
| Senior Staff Software Engineer, JavaScript Runtime & Compilers | ServiceNow | San Diego, California, United States | remote | full-time | 2026-11-02 |
| Staff Software Engineer, Reliability | LinkedIn | Mountain View, CA, United States | hybrid | full-time | 2026-11-02 |
| Software Engineer - AI Platform (Hybrid) | AbbVie | North Chicago, IL, United States | hybrid | full-time | 2026-11-02 |
| Software Engineer Graduate | Bosch Group | Nuneaton, England, United Kingdom | onsite | full-time | 2026-11-02 |
| Software Engineer Android | Delivery Hero | Montevideo, Uruguay | hybrid | full-time | 2026-11-02 |

One row as JSON:

```json
{
  "title": "Senior Staff Software Engineer, JavaScript Runtime & Compilers",
  "company": "ServiceNow",
  "location": "San Diego, California, United States",
  "workType": "remote",
  "employmentType": "full-time",
  "department": "Engineering, Infrastructure and Operations",
  "salary": null,
  "postedAt": "2026-11-02T20:23:23.631Z",
  "jobUrl": "https://jobs.smartrecruiters.com/ServiceNow/744000159234126-senior-staff-software-engineer-javascript-runtime-compilers",
  "applyUrl": "https://jobs.smartrecruiters.com/ServiceNow/744000159234126-senior-staff-software-engineer-javascript-runtime-compilers?oga=true",
  "status": "open",
  "platform": "smartrecruiters",
  "companySlug": "ServiceNow",
  "jobId": "744000159234126",
  "checkedAt": "2026-11-03T09:11:15+00:00"
}
```

Full details add `description`, `descriptionHtml`, `reference`, `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod`, `city`, `region`, `country` and `countryCode`, and fill `salary` when the company publishes pay, such as `USD 37 - 60.98 an hour` for a registered nurse at Northwestern Memorial Healthcare. A run also writes an `OUTPUT` record: how many career sites were read, how many jobs were saved, the matching jobs it counted while reading, and any notes on how your input was read.

### How fast is it?

Every career site in about 40 seconds at the default 2 GB of memory: the example input, software engineer across every company, took 40.7 s on Apify (run T1JjpjZvjP6XS2NFm, 2026-11-03, 100 newest jobs). At 1 GB the same search took 112 s, 2.8 times slower (run ffqkndjmBbL0rfgl8), so keep the default. The empty form reads the same pages: 107 s at 1 GB (run hx5pj1xNsf5tKA7YI), so it should take about 40 s at 2 GB.

Every search reads all 2,917 career sites, about 3,050 requests for an empty form or one keyword (3,070 and 2,999 in the runs above), because SmartRecruiters dates each job to the millisecond and the newest jobs can sit on any of them. Each keyword is its own pass over every site, so five keywords took 14,844 requests and 187 s in a local run. Requests are paced to 80 a second, below the rate at which SmartRecruiters starts refusing one address. Naming companies in Only these companies reads only those: Bosch Group took 5 requests. Full details add one request per saved job.

### Common questions

#### How does it find the companies?

SmartRecruiters publishes no customer list, so SmartRecruiters Jobs Scraper's list of career sites is built the way the `site:careers.smartrecruiters.com` dork works, at the source: SmartRecruiters' own company search, the Wayback Machine, Common Crawl, freehire's public job data and a public GitHub list gave 15,969 candidates, each checked live on 2026-11-02, and every site found was checked again on 2026-11-03. 12,589 career sites had open jobs: the 2,917 that posted within two years are searched, and 46 sandbox, test and demo accounts are left out. An estimate from how much the sources overlap puts the sites found at 83 to 90% of all SmartRecruiters career sites with open jobs, holding 93 to 96% of their jobs, possibly less, because the sources are not independent. To search a company that is not on the list, type its name or paste its link into Only these companies.

#### Why does a search leave some companies out?

SmartRecruiters keeps a job open until the company closes it, and many never do. On 2026-11-03, 9,626 career sites had posted nothing since 2024-11-03 yet still listed 179,872 jobs as open. A search skips those sites, so the newest jobs it returns are live ones, and each refresh of the list checks them again. It also skips sandbox, test and demo accounts, whose postings are tests and copies. Name such a company in Only these companies and it is read, with each job's real date.

#### Why is there no pay on most rows?

SmartRecruiters' job list carries no pay, so SmartRecruiters Jobs Scraper adds pay only with full details on, from each job's own record: 15% of a sample of 2,000 jobs had pay on 2026-11-03, and 70 of the 100 newest nurse jobs in the United States in a run the same day. The period is the one the company states (year, month, week, day or hour). A maximum stated alone reads "up to", and a period nobody stated is never guessed.

#### What does remote mean here?

In SmartRecruiters Jobs Scraper, remote and hybrid mean what the company flagged on SmartRecruiters: 4.8% of jobs are remote and 13.7% hybrid (2026-11-03). Every other job is onsite, SmartRecruiters' own third choice.

#### Does it need a login or an API key?

SmartRecruiters Jobs Scraper needs no login and no API key: it reads SmartRecruiters' public Posting API, the one SmartRecruiters offers its customers for building their own career sites, and public jobs need no key there. You need only an Apify account.

#### Does it work on Apify's free plan?

SmartRecruiters Jobs Scraper works on Apify's free plan, which pays the base price: $0.0025 a job, or $0.0035 with full details. The free $5 monthly credit pays for 2,000 jobs, or about 1,400 with full details. There is no start fee, so a small run costs only its rows.

#### How often should I run it?

Running SmartRecruiters Jobs Scraper once a day keeps a job feed fresh: set Posted in the last (`postedWithin`) to 24 hours and Number of jobs (`maxJobs`) to 0 to get every job posted that day, 8,406 in the 24 hours before a count on 2026-11-03 ($21.02), or add a job title or place to narrow it. Set the run up under Schedules in Apify Console, and match rows on `jobId` to skip jobs you already have.

#### How do I get every job of one company?

To get every open job of one company with SmartRecruiters Jobs Scraper, type the company's name in Only these companies (`companies`), such as Bosch Group, its company ID (BoschGroup, in any capitals) or its SmartRecruiters link, and set Number of jobs (`maxJobs`) to 0. Only its career sites are read: Bosch Group took 5 requests. A company that posted nothing in two years is read too when you name it.

#### How do I check a list of job links?

SmartRecruiters Jobs Scraper checks whether SmartRecruiters job links are still open when you paste them into Job links to check (`jobUrls`), one per line, instead of searching. Links on jobs., careers. and www.smartrecruiters.com, API links and smrtr.io short links all work, with or without the title part. Each link comes back as one row, open with the job's fields, or closed or not found with its link, so 10 links come to $0.025.

#### How do I call it from the API, Python, JavaScript, n8n or an AI agent?

SmartRecruiters Jobs Scraper runs from the Apify API, Python, JavaScript, n8n, Make or an AI agent over MCP. Each way uses your Apify token (Apify Console, Settings, API & Integrations) and takes the input as JSON keyed by the field names, such as `searchTerms` and `maxJobs`.

**API.** One call runs the actor and returns its rows. Apify stops that wait after 300 seconds: a search of every career site takes about 40 seconds, well inside it, but for a bigger run, such as every job (`maxJobs` 0), use a client below, which waits until the run ends.

```bash
curl -X POST "https://api.apify.com/v2/acts/anshumanatrey~smartrecruiters-jobs-search/run-sync-get-dataset-items" \
  -H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms": ["software engineer"]}'
```

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("anshumanatrey/smartrecruiters-jobs-search").call(run_input={"searchTerms": ["software engineer"]})
for row in client.dataset(run.default_dataset_id).iterate_items():  # apify-client 3+; on 2.x use run["defaultDatasetId"]
    print(row["title"], row["company"], row["location"], row["workType"], row["jobUrl"])
```

**JavaScript** (`npm install apify-client`):

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('anshumanatrey/smartrecruiters-jobs-search').call({ searchTerms: ['software engineer'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const row of items) console.log(row.title, row.company, row.location, row.workType, row.jobUrl);
```

**n8n and Make.** In n8n, add the Apify node, pick Run an Actor and get dataset, choose this actor and paste the input JSON: the rows come out as n8n items. In Make, the Apify app's Run an Actor and Get Dataset Items modules do the same.

**AI agents (MCP).** Add `https://mcp.apify.com?tools=anshumanatrey/smartrecruiters-jobs-search` to your MCP client and sign in with Apify, or send `Authorization: Bearer <YOUR_APIFY_TOKEN>`. The agent gets this actor as a tool and sees every input field by its JSON key.

#### Am I charged for closed jobs?

SmartRecruiters Jobs Scraper charges for a closed job only when you paste its link to check. A search returns open jobs only, and a pasted link that turns out closed or not found is one Job row, because it was checked and answered.

#### Is it legal to use?

SmartRecruiters Jobs Scraper reads public job postings. You are responsible for how you use the data, including each site's terms and the privacy laws that apply to you.

### Limitations

- One place per job: SmartRecruiters stores one location for each posting, and its API gives no closing date.
- Pay comes only with full details, and about 6 jobs in 7 show none.
- Every search reads every career site on the list, so a filter that matches almost nothing, such as a rare place, reads every page of every site and takes several times longer than a normal search.
- Some large posters are staffing firms or job boards that post for other employers, such as Jobs for Humanity (2,823 jobs on 2026-11-03).
- The department field holds what the company typed: sometimes a person's name, or several teams joined by a vertical bar.
- Titles and descriptions come in the company's own language.
- The same job at the same place at one company is delivered once.
- A company that locked its job API, such as CHECK24, cannot be read and comes back as not found.
- The list of career sites was last checked on 2026-11-03. A company that joined later, or a quiet one that starts posting again, is searched when you name it, until the next refresh of the list.

### Who maintains it?

Built and maintained by **Anshuman Atrey** ([@AnshumanAtrey](https://github.com/AnshumanAtrey)), who publishes a portfolio of data and OSINT actors on Apify Store. For a feature request or a bug, message [LinkedIn](https://linkedin.com/in/anshumanatrey) (fastest), open an issue on the GitHub repo, or write through [atrey.dev](https://atrey.dev).

### Sibling actors

| Actor | What it searches |
|---|---|
| [Ashby Jobs Scraper](https://apify.com/anshumanatrey/ashby-jobs-search) | Jobs from every company on Ashby (jobs.ashbyhq.com), searched live |
| [Cornerstone Jobs Scraper](https://apify.com/anshumanatrey/cornerstone-jobs-search) | Jobs from every company on Cornerstone (csod.com), searched live |
| [Workday Jobs Scraper](https://apify.com/anshumanatrey/workday-job-search) | Jobs from every company on Workday (myworkdayjobs.com), searched live |
| [Deel Jobs Scraper](https://apify.com/anshumanatrey/deel-jobs-search) | Jobs from every company on Deel ATS (jobs.deel.com), with pay |
| [Greenhouse Jobs Scraper](https://apify.com/anshumanatrey/greenhouse-jobs-search) | Jobs from every company on Greenhouse (boards.greenhouse.io), searched live |
| [Workable Jobs Scraper](https://apify.com/anshumanatrey/workable-job-search) | Jobs from every company on Workable, in one search |
| [Lever Jobs Scraper](https://apify.com/anshumanatrey/lever-jobs-search) | Jobs from 2,300+ companies on Lever (jobs.lever.co), searched live |

For the people behind a company: [LinkedIn Profile Finder](https://apify.com/anshumanatrey/linkedin-harvester) turns an email into a public LinkedIn profile.

### Documentation

- Apify Store: https://apify.com/anshumanatrey/smartrecruiters-jobs-search
- GitHub repo: https://github.com/AnshumanAtrey/smartrecruiters-jobs-search (MIT license, see [LICENSE](LICENSE))
- The engine behind it: https://github.com/AnshumanAtrey/ats-jobs-engine

### Last updated

2026-11-03 (version 1.0)

# Actor input Schema

## `searchTerms` (type: `array`):

Type the job titles or keywords to find, one per line, for example software engineer. A job matches when its title has every word of a line, with or without accents. SmartRecruiters' own search finds the words, so frontend and front end find different jobs: add both lines to get both. Leave it empty to get the newest jobs of every kind. A pasted Google dork or SmartRecruiters link works too.

## `location` (type: `array`):

Type where the jobs should be: a city, state, country or region, one per line, for example London, United States, Germany or EMEA. US, USA and United States all work, a region finds the jobs in its countries, and an office a company filed under a continent counts where it is. Type Remote here to get remote jobs. Leave it empty for anywhere.

## `workType` (type: `array`):

Pick remote, hybrid or onsite, or several. Leave it empty for all of them. Remote and hybrid are what the company flagged on SmartRecruiters, and every other job is onsite, as SmartRecruiters counts it. Typed words such as wfh work too.

## `postedWithin` (type: `string`):

Pick how new the jobs must be: posted in the last 24 hours, 3 days, 7 days or 30 days. Any time, the default, keeps every open job, newest first. SmartRecruiters dates each job to the millisecond, so 24 hours means 24 hours. You can also type your own period, such as 48 hours or 2 weeks.

## `maxJobs` (type: `integer`):

Type how many jobs to get, newest first: 100 by default. Type 0 to get every matching job. Each job is one charged row, so this also sets the most a run can cost.

## `includeDetails` (type: `boolean`):

Tick to add the full details of each job: the description as text and HTML, the pay with its period when the company publishes it (about 1 job in 7), the reference number, and the city, region, country and country code. A job with details costs $3.50 per 1,000 instead of $2.50.

## `excludeTerms` (type: `array`):

Type words that leave a job out when its title has them, one per line, for example senior or manager. Leave it empty to keep every job.

## `employmentType` (type: `array`):

Pick the job type: full-time, part-time, contract or internship, or several. Leave it empty for every job type. These are the four job types SmartRecruiters jobs carry (its Permanent is full-time and its Casual, the hourly work of Australia and New Zealand, part-time), so temporary or seasonal finds nothing here; 0.3% of jobs state none and this filter leaves them out. Typed words such as freelance or casual work too.

## `searchDescriptions` (type: `boolean`):

Tick to match your keywords in the job description too, not only in the title: kubernetes then also finds jobs that ask for Kubernetes in the text. A line of several words must appear in the description as a phrase. SmartRecruiters runs this search itself, so it needs no full details and costs nothing extra.

## `companies` (type: `array`):

Type company names to search only them, one per line: a name (Bosch Group), the company ID in the address (BoschGroup, in any capitals) or a SmartRecruiters link (careers.smartrecruiters.com/BoschGroup). A company that is not on our list is tried by its name or link, and one that posted nothing in two years is read when named. Leave it empty to search every company on the list.

## `jobUrls` (type: `array`):

Paste SmartRecruiters job links to check whether they are still open, one per line, instead of searching. Each link comes back open with the job, closed, or not found. Links on jobs., careers. and www.smartrecruiters.com, API links and smrtr.io short links work too, with or without the title part.

## Actor input object example

```json
{
  "searchTerms": [
    "software engineer"
  ],
  "location": [
    "United States"
  ],
  "workType": [
    "remote"
  ],
  "postedWithin": "24 hours",
  "maxJobs": 100,
  "includeDetails": false,
  "excludeTerms": [
    "senior"
  ],
  "employmentType": [
    "full-time"
  ],
  "searchDescriptions": false,
  "companies": [
    "Bosch Group",
    "https://careers.smartrecruiters.com/ServiceNow"
  ],
  "jobUrls": []
}
```

# Actor output Schema

## `jobs` (type: `string`):

Every saved job, newest first: title, company, location, work type, job type, department, posting date and job link, and with details on the description, pay with its period, reference and place. Export as JSON, CSV or Excel.

## `summary` (type: `string`):

The OUTPUT record in the default key-value store: career sites read, sites and companies with a match, jobs matched and saved, checked links, notes about how the input was read, and the settings used.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxJobs": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("anshumanatrey/smartrecruiters-jobs-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxJobs": 100 }

# Run the Actor and wait for it to finish
run = client.actor("anshumanatrey/smartrecruiters-jobs-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxJobs": 100
}' |
apify call anshumanatrey/smartrecruiters-jobs-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anshumanatrey/smartrecruiters-jobs-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ACpgm5TEsX61pmfdS/builds/YbCXYaY8z41zDGCxG/openapi.json
