SmartRecruiters Jobs Scraper - Career Site Job Listings API avatar

SmartRecruiters Jobs Scraper - Career Site Job Listings API

Pricing

$1.20 / 1,000 job returneds

Go to Apify Store
SmartRecruiters Jobs Scraper - Career Site Job Listings API

SmartRecruiters Jobs Scraper - Career Site Job Listings API

Scrape live job postings from any company career site on SmartRecruiters. Pass company identifiers or URLs, or search a built-in index of SmartRecruiters companies by keyword, location and country. Clean JSON, no login, no proxies.

Pricing

$1.20 / 1,000 job returneds

Rating

0.0

(0)

Developer

DataSignals Lab

DataSignals Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

SmartRecruiters Jobs Scraper: live listings from any SmartRecruiters career site, or search 180 companies

Get every open job from a company that runs its careers page on SmartRecruiters, as clean JSON, in seconds. Paste the career site URL or the company slug, or leave the list empty and search a built-in index of 180 SmartRecruiters companies by keyword, location and country. Built for recruiters, job boards, sales teams and data pipelines that need SmartRecruiters jobs straight from the source, not a day later from an aggregator.

The data comes from the public endpoint SmartRecruiters itself publishes for every customer's job board. No login, no API key, no proxies, no browser. A posting is in your dataset the moment the employer publishes it.

Run it with the default input and you get the live openings of wise and the other prefilled SmartRecruiters companies, capped at 500 jobs, with descriptions included.

What you get from the SmartRecruiters Jobs Scraper

One row per open job. The schema is identical across all seven DataSignals Lab ATS scrapers (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Teamtailor, Workday), so you can merge feeds without remapping a single field.

fieldmeaning
titlejob title exactly as the employer published it
companythe slug or site you asked for
platformalways smartrecruiters
job_idthe employer's own posting id, stable across runs
locationlocation text as the employer wrote it
countrynormalised country name derived from the location, null when unknown
remotetrue, false or null (only set on explicit signals)
departmentteam or department when the employer provides it
employment_typefull time, part time, contract or internship when provided
posted_atISO 8601 UTC timestamp when the posting went live, null when the platform does not expose it
apply_urldirect link to the posting on the employer's career site
descriptionplain-text description, HTML removed, up to 4000 characters (absent when includeDescription is off)

Example row:

{
"title": "Senior Backend Engineer",
"company": "wise",
"platform": "smartrecruiters",
"job_id": "4012345",
"location": "Amsterdam, Netherlands",
"country": "Netherlands",
"remote": false,
"department": "Engineering",
"employment_type": "Full-time",
"posted_at": "2026-09-28T09:14:02+00:00",
"apply_url": "https://jobs.smartrecruiters.com/wise/744000012345678-senior-backend-engineer",
"description": "We are looking for ..."
}

How to scrape SmartRecruiters jobs with this Actor

In the Apify Console:

  1. Open the Actor page and click Try for free. The input form is prefilled with example SmartRecruiters companies.
  2. Replace the companies list with your own slugs or career site URLs, one per line. To search the whole index instead, clear the list and type one or more keywords, optionally with a country.
  3. Set maxJobs to the number of rows you are willing to pay for. The run stops there.
  4. Click Start. Open the Output tab to browse the jobs, then export as JSON, CSV or Excel, or copy the dataset URL.

Through the API, from your own code or an automation:

  1. Call POST https://api.apify.com/v2/acts/datasignalslab~smartrecruiters-jobs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN with the input JSON as the body. The response is the dataset itself, so one call gives you the jobs.
  2. For larger runs, start the Actor asynchronously with /runs, attach a webhook, and read the dataset when the run finishes.
  3. Schedule the run in the Console (hourly, daily, weekly) and point the schedule at the same input. Every run writes a fresh dataset.

Input

fieldwhat it does
companiesThe company identifier in the URL, for example 'Wise' in careers.smartrecruiters.com/Wise. Full URLs are accepted, for example https://careers.smartrecruiters.com/Wise. Empty means: search the built-in index.
keywordsmatch on title and department, case-insensitive. Empty returns every open job.
locationsubstring match on the location text, for example Berlin or New York.
countrynormalised country filter, for example Germany. Resolves Remote Canada and Mountain View, CA alike. More reliable than location for countries.
remoteOnlykeep only jobs the employer flagged as remote. Default false.
maxJobshard stop across all companies and your budget cap. Default 500, 0 means no limit.
maxJobsPerCompanycap per employer, so one large company does not fill the whole result. Default 0, no cap.
includeDescriptionplain-text description up to 4000 characters. Default true. Off gives a lighter dataset.
searchDescriptionsalso match keywords in descriptions. Default false, because nearly every description mentions words like engineer.
companyFilteronly used when companies is empty: keep index companies whose name contains this text.
maxCompaniesonly used when companies is empty: how many index companies to walk. Default 25, 0 means the whole index.

Named companies, every open job:

{ "companies": ["wise", "thenielsencompany", "vuoriinc"] }

Search the index for a role in one country:

{ "keywords": ["data engineer"], "country": "Germany", "maxCompanies": 100, "maxJobs": 300 }

Remote roles only, titles and links without descriptions:

{ "companies": ["wise", "thenielsencompany", "vuoriinc"], "remoteOnly": true, "includeDescription": false, "maxJobs": 200 }

Pricing: how much does it cost

You pay per job returned: $1.20 per 1,000 jobs, the same rate as the market leaders in this niche. Only rows that pass your filters and land in the dataset are charged. Filters cost nothing. A company that returns no match, a slug that does not exist or an empty run costs nothing beyond a few seconds of Apify compute.

A worked example in words: a run over twenty named companies that returns 2,400 open jobs costs two point four times the per-thousand price. The same run with keywords set to engineer and country set to Netherlands might return 90 jobs, and then you pay for 90 jobs, not for the 2,400 the Actor read to find them. maxJobs is a hard ceiling on the bill: set it to 1,000 and a run can never cost more than the per-thousand price.

Apify's free monthly credit covers thousands of jobs, so you can evaluate the feed for your own companies before paying anything.

More from DataSignals Lab

This Actor is one of the pay-per-result data Actors of DataSignals Lab: job listings per ATS platform and job board, app and company reviews, YouTube comments and transcripts, website contacts and tech stacks. Every Actor returns the same clean JSON style and charges only for rows that land in the dataset, so you can combine feeds without remapping fields. All Actors and prices are listed on datasignalslab.com.

Use cases for SmartRecruiters jobs data

  • Recruiters and sourcers: see a posting the hour it goes live on the employer's SmartRecruiters board, before it reaches the big job sites, and reach out first.
  • Job boards and job search products: a normalised feed per employer with stable job_id values, so you can add new jobs and close expired ones automatically.
  • Sales and growth teams: hiring as an intent signal. A company opening five data roles in Berlin is a prospect for data tooling this quarter.
  • Analysts and researchers: headcount growth per company and department over time, from a scheduled daily run.
  • AI agents and automations: structured openings instead of HTML, callable from n8n, Make, Zapier or the Apify MCP server.

SmartRecruiters jobs API alternative: how it compares

  • Scrapers that read LinkedIn or Indeed fight bot protection, need residential proxies and deliver postings a day late. This Actor reads the SmartRecruiters endpoint api.smartrecruiters.com/v1/companies/{slug}/postings directly. It is the source, it is stable, and it has no anti-bot layer.
  • Most per-platform scrapers require you to know the company slug. This one also ships an index of 180 SmartRecruiters companies you can search by keyword, location and country without naming a single employer.
  • Some multi-platform tools return a different field set per ATS. Here all seven DataSignals Lab ATS scrapers share one schema, so a SmartRecruiters row and a Workday row line up column for column.
  • If you need several ATS platforms in one run, use Job Search API, which detects the platform per company automatically.

Limits

  • Only companies on SmartRecruiters. A slug on another platform returns "not found" for that company, nothing else.
  • No salary field. SmartRecruiters does not expose salary in a structured way on its public endpoint, and the Actor does not guess it from the description text.
  • No "only new since last run" delta. Schedule the Actor and deduplicate on job_id in your own store or sheet. The id is stable, so a job you have seen before has the same id in every run.
  • No company size or industry. The Actor returns jobs, not company profiles.
  • The built-in index is a snapshot of 180 companies refreshed monthly. Companies you name explicitly are fetched live and do not need to be in the index.
  • Description text is capped at 4000 characters of plain text, HTML removed.
  • posted_at, department, employment_type and remote are null when the employer did not fill them in. The Actor never invents values.

FAQ

The Actor reads the public endpoint that SmartRecruiters serves to every visitor of a customer's career site, with no login and no personal data. Job postings are published to be read. You are responsible for how you use the data, in particular if you republish it.

Do I need an API key or login to get SmartRecruiters jobs?

No. You need an Apify account to run the Actor and nothing from SmartRecruiters. No proxies, no browser, no cookies.

How often do the SmartRecruiters jobs update?

Every run reads the live endpoint, so the dataset is as fresh as the employer's own career site at that moment. Schedule the Actor hourly or daily to track changes. The company index is separate and is refreshed monthly.

Can I schedule the SmartRecruiters Jobs Scraper and only keep new jobs?

Yes to scheduling: set a schedule in the Console or via the API. The Actor itself does not return a delta, so compare job_id against your previous dataset to find new and closed jobs. A webhook on run finish can trigger that comparison.

Can an AI agent or MCP client call it?

Yes. Through the Apify MCP server any MCP client, including Claude and ChatGPT, can call this Actor as a tool, pass companies or keywords and receive the jobs as structured JSON.

How much do 10,000 SmartRecruiters jobs cost?

Ten times the per-thousand price, so ten times $1.20. Filters and empty results are free, and maxJobs caps the run so a bill can never exceed what you set.

What happens when a SmartRecruiters company blocks or disappears?

Nothing is charged for it. A slug that no longer exists, has moved to another ATS or returns an error is logged in the run and skipped. The other companies in the same run are unaffected.

Integrations

Works with the Apify API, scheduled runs and webhooks, the Apify MCP server, and the Apify apps for Make, Zapier and n8n. Export the dataset as JSON, CSV or Excel, or push it into Google Sheets and tools such as Clay with the Apify integrations.

Changelog

  • 2026-10: README rewritten, price aligned with the market at $1.20 per 1,000 jobs.
  • 2026-10: launch of the seven per-platform ATS scrapers with a shared schema and a built-in company index.

Support

Issues tab on this page, or support@datasignalslab.com. Response within one working day. Built and maintained by DataSignals Lab.