SmartRecruiters Jobs Scraper & API: Any Company's Board avatar

SmartRecruiters Jobs Scraper & API: Any Company's Board

Pricing

from $0.70 / 1,000 jobs

Go to Apify Store
SmartRecruiters Jobs Scraper & API: Any Company's Board

SmartRecruiters Jobs Scraper & API: Any Company's Board

Any company's public SmartRecruiters job board as JSON. 30 fields, salary as numbers, no key, no browser. Monitor mode returns only what changed. $1 per 1,000.

Pricing

from $0.70 / 1,000 jobs

Rating

0.0

(0)

Developer

Dodo Data

Dodo Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Get every open job from any company's SmartRecruiters career page as clean JSON. 30 fields per job, 500 jobs from 2 companies in 104 seconds: title, department, locations, remote / hybrid flag, pay range as numbers, dates, apply URL and the full description as plain text.

Paste career-page URLs or company names. Jobs come straight from the employer's own SmartRecruiters board: no aggregator, no duplicates, no expired listings. SmartRecruiters' public Posting API lists title, location, department and date; the description comes from each posting, so a full row costs one request per job. Filters run on the listing first, so you only open (and pay for) the jobs that match. The source is SmartRecruiters' public Posting API: its documentation describes it as access to postings previously made public, it answers without a key, and this Actor stays under half of the documented rate limit.

In one minute

  • What you get: every open job on the career pages you give it, one JSON row per job: title, company, locations, remote flag, pay range as numbers when published, dates, the employer's apply link and the full text.
  • What it costs: $1.00 per 1,000 jobs, plus a $0.00005 start fee per run. The measured sample run (500 jobs) cost about $0.50. Apify's free plan includes $5 of usage every month.
  • Try it: click Start. The prefilled input reads 2 sample companies in about 104 seconds; then paste your own career-page URLs or company names.

One real row from that run (description shortened):

{
"title": "Mechanical Design Engineer (Automotive)",
"company": "BoschGroup",
"company_name": "Bosch Group",
"location": "Waltham, MA, United States",
"employment_type": "Full-time",
"salary_min": 80000,
"salary_max": 88000,
"salary_currency": "USD",
"salary_period": "year",
"posted_at": "2026-10-19T13:39:41.716Z",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156323545-mechanical-design-engineer-automotive-?oga=true",
"description": "Company Description\nWe Are Bosch.\nAt Bosch, we shape the future by inventing high-quality technologies and services t…"
}

What people use it for

  • Track who is hiring, and for what. For example, "every new engineering role at my target accounts since yesterday" as a sales or recruiting signal. Set Posted within (days) to 1 and schedule it daily.
  • Feed a job board, a newsletter or an AI agent with first-party jobs. For example, "remote data roles from these 300 companies", without scraping aggregators.
  • Benchmark pay and hiring plans. For example, "published pay ranges and open headcount by department across my competitors".

Why not build it yourself

Building this yourself: the SmartRecruiters source, its pagination and quirks, HTML descriptions, pay formats, de-duplication between runs: about a day of work, then upkeep each time a field changes. This Actor: $1.00 per 1,000 jobs, and when something changes we fix it within 48 hours. Every Apify account includes $5 of free usage a month, so your first 4,900 jobs cost nothing.

Price: $1.00 per 1,000 jobs. Any change is announced 14 days ahead through Apify, as its rules require, and applies to every user alike.

Proof

Success rate (staging runs on Apify)100%, 0 failures
Last verified against live boards2026-10-20
Typical run500 jobs from 2 companies in 104 seconds
Issues answered within6 hours
Changes fixed within48 hours

Changelog at the bottom of this page, and every fix is dated.

Pay ranges, read from the job text

SmartRecruiters' Posting API publishes no pay field. Every pay range this Actor returns is read from the job text: in the run of 2026-10-20, 129 of 500 jobs stated one (ServiceNow 120, BoschGroup 9). salary_source is therefore always description on this Actor, and salary_text holds the words it was read from so you can check any row. The reader is deliberately strict: a pay phrase has to sit right before the numbers, and equity, bonuses, 401k matches and on-target earnings are left out rather than mixed into base pay.

Monitor SmartRecruiters career pages: only new, changed and closed jobs

Most people do not want the whole board every day. They want to know what changed. Give the run a Monitor name and put it on a schedule:

  • every job comes back with change_status (new, updated, unchanged) and first_seen_at, the date the monitor first saw it, which survives later edits and tells you how long a role has been open. Without a monitor name these three fields are empty, as in the rows above
  • with Only changes on, unchanged jobs are left out and not billed, and they are not even opened, so a daily run costs a few percent of the board. Measured on Sodexo's board: the first run returned 152 jobs, the next run 0 rows and nothing billed, in 1 second
  • closed jobs are reported too. A job that was listed last time and is gone now comes back once with change_status: "removed", its title, URL and last_seen_at

What we deliberately do not collect

  • No personal data. Recruiter and creator fields are never read. E-mail addresses, phone numbers and the names of contact people that an employer prints in its job text are replaced with [email removed], [phone removed] and [name removed].
  • Public sources only: what the career page itself shows to any visitor. No logins, no candidate data, nothing behind authentication.
  • Rate-limited: at most 5 requests a second.
  • This Actor declares limited permissions: it can only write to its own storages on your account.

How to run it

  1. Click Run. The defaults read two sample boards.
  2. Replace them with your own SmartRecruiters career page URLs, for example https://jobs.smartrecruiters.com/BoschGroup, or list Companies by name (BoschGroup). Hundreds of companies per run are fine.
  3. Narrow with Title keywords, Locations (remote, berlin, united kingdom) and Posted within (days). Jobs that do not match are never saved and never charged.
  4. Set Max rows to cap the run. That is also your spend cap.
  5. Download as JSON, CSV or Excel, or call it from the API or from an AI agent through the Apify MCP server. The id field is stable, so de-duplicating between runs is one line.

A company name that does not exist is reported in the log and skipped; it does not fail the run. Need several systems in one run (Greenhouse, Lever, Ashby, Workday, SmartRecruiters and seven more)? Use the Career Page Jobs Scraper below: same rows, same price.

Ten real rows

Ten real rows from the run of 2026-10-20 (descriptions shortened here to 160 characters; the dataset carries them in full):

[
{
"id": "smartrecruiters:BoschGroup:744000156323545",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Mechanical Design Engineer (Automotive)",
"department": null,
"team": "Engineering",
"location": "Waltham, MA, United States",
"locations": [
"Waltham, MA, United States"
],
"country": "US",
"workplace_type": null,
"remote": null,
"employment_type": "Full-time",
"experience_level": "Associate",
"salary_min": 80000,
"salary_max": 88000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "base salary range for this full-time position is between the range of $80,000-88,000",
"salary_source": "description",
"posted_at": "2026-10-19T13:39:41.716Z",
"updated_at": null,
"requisition_id": "REF294425G",
"description": "Company Description\nWe Are Bosch.\nAt Bosch, we shape the future by inventing high-quality technologies and services that spark enthusiasm and enrich people’s…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156323545-mechanical-design-engineer-automotive-?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156323545-mechanical-design-engineer-automotive-",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:17.800Z"
},
{
"id": "smartrecruiters:ServiceNow:744000156376629",
"ats": "smartrecruiters",
"company": "ServiceNow",
"company_name": "ServiceNow",
"title": "Federal Field Marketing Manager",
"department": "Marketing, Communications, and Brand",
"team": "Marketing",
"location": "Vienna, VIRGINIA, United States",
"locations": [
"Vienna, VIRGINIA, United States"
],
"country": "US",
"workplace_type": "hybrid",
"remote": false,
"employment_type": "Full-time",
"experience_level": "Not Applicable",
"salary_min": 126800,
"salary_max": 221900,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "For positions in this location, we offer a base pay of $126,800 - $221,900",
"salary_source": "description",
"posted_at": "2026-10-19T16:28:02.718Z",
"updated_at": null,
"requisition_id": "JB0075521",
"description": "Company Description\nIt all started when engineer Fred Luddy wrote code that automated a tedious task for his coworker, Phyllis. She cried tears of joy. That…",
"apply_url": "https://jobs.smartrecruiters.com/ServiceNow/744000156376629-federal-field-marketing-manager?oga=true",
"url": "https://jobs.smartrecruiters.com/ServiceNow/744000156376629-federal-field-marketing-manager",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:29.098Z"
},
{
"id": "smartrecruiters:ServiceNow:744000156410512",
"ats": "smartrecruiters",
"company": "ServiceNow",
"company_name": "ServiceNow",
"title": "Sales Operations Strategy and Planning Manager",
"department": "Sales",
"team": "Sales",
"location": "Chicago, ILLINOIS, United States",
"locations": [
"Chicago, ILLINOIS, United States"
],
"country": "US",
"workplace_type": "remote",
"remote": true,
"employment_type": "Full-time",
"experience_level": "Not Applicable",
"salary_min": 139900,
"salary_max": 218551,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "For positions in this location, we offer a base pay of $139,900 - $218,551",
"salary_source": "description",
"posted_at": "2026-10-19T19:50:23.751Z",
"updated_at": null,
"requisition_id": "JB0076163",
"description": "Company Description\nIt all started when engineer Fred Luddy wrote code that automated a tedious task for his coworker, Phyllis. She cried tears of joy. That…",
"apply_url": "https://jobs.smartrecruiters.com/ServiceNow/744000156410512-sales-operations-strategy-and-planning-manager?oga=true",
"url": "https://jobs.smartrecruiters.com/ServiceNow/744000156410512-sales-operations-strategy-and-planning-manager",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:29.094Z"
},
{
"id": "smartrecruiters:ServiceNow:744000156353749",
"ats": "smartrecruiters",
"company": "ServiceNow",
"company_name": "ServiceNow",
"title": "Advisory Solution Consultant",
"department": "Sales",
"team": "Consulting",
"location": "Denver, COLORADO, United States",
"locations": [
"Denver, COLORADO, United States"
],
"country": "US",
"workplace_type": "remote",
"remote": true,
"employment_type": "Full-time",
"experience_level": "Not Applicable",
"salary_min": 168750,
"salary_max": 200000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "For positions in this location, we offer a base pay of $168,750 - $200,000",
"salary_source": "description",
"posted_at": "2026-10-19T15:07:12.711Z",
"updated_at": null,
"requisition_id": "JB0074552",
"description": "Company Description\nIt all started when engineer Fred Luddy wrote code that automated a tedious task for his coworker, Phyllis. She cried tears of joy. That…",
"apply_url": "https://jobs.smartrecruiters.com/ServiceNow/744000156353749-advisory-solution-consultant?oga=true",
"url": "https://jobs.smartrecruiters.com/ServiceNow/744000156353749-advisory-solution-consultant",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:30.196Z"
},
{
"id": "smartrecruiters:ServiceNow:744000156084161",
"ats": "smartrecruiters",
"company": "ServiceNow",
"company_name": "ServiceNow",
"title": "Senior Technical Architect, Infrastructure and Cloud",
"department": null,
"team": "Engineering",
"location": "Chicago, Illinois, United States",
"locations": [
"Chicago, Illinois, United States"
],
"country": "US",
"workplace_type": "remote",
"remote": true,
"employment_type": "Full-time",
"experience_level": "Not Applicable",
"salary_min": 171900,
"salary_max": 300800,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "For positions in this location, we offer a base pay of $171,900 - $300,800",
"salary_source": "description",
"posted_at": "2026-10-16T21:34:05.524Z",
"updated_at": null,
"requisition_id": "JB0076236",
"description": "Company Description\nIt all started when engineer Fred Luddy wrote code that automated a tedious task for his coworker, Phyllis. She cried tears of joy. That…",
"apply_url": "https://jobs.smartrecruiters.com/ServiceNow/744000156084161-senior-technical-architect-infrastructure-and-cloud?oga=true",
"url": "https://jobs.smartrecruiters.com/ServiceNow/744000156084161-senior-technical-architect-infrastructure-and-cloud",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:31.502Z"
},
{
"id": "smartrecruiters:BoschGroup:744000156520070",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Assembly Operator - 3rd Shift",
"department": null,
"team": "Production",
"location": "Albion, IN, United States",
"locations": [
"Albion, IN, United States"
],
"country": "US",
"workplace_type": null,
"remote": null,
"employment_type": "Full-time",
"experience_level": "Entry Level",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"salary_source": null,
"posted_at": "2026-10-20T10:20:24.901Z",
"updated_at": null,
"requisition_id": "REF299000U",
"description": "Company Description\nDo you want beneficial technologies being shaped by your ideas? Whether in the areas of mobility solutions, consumer goods, industrial te…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156520070-assembly-operator-3rd-shift?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156520070-assembly-operator-3rd-shift",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:10.611Z"
},
{
"id": "smartrecruiters:BoschGroup:744000156501729",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Supply Chain Intern",
"department": null,
"team": "Supply Chain",
"location": "Denham, England, United Kingdom",
"locations": [
"Denham, England, United Kingdom"
],
"country": "GB",
"workplace_type": null,
"remote": null,
"employment_type": "Full-time",
"experience_level": "Internship",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"salary_source": null,
"posted_at": "2026-10-20T08:57:20.811Z",
"updated_at": null,
"requisition_id": "REF298441I",
"description": "Company Description\nDo you want your ideas to shape the technology of the future? Whether in the areas of mobility solutions, consumer goods, industrial tech…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156501729-supply-chain-intern?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156501729-supply-chain-intern",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:11.194Z"
},
{
"id": "smartrecruiters:BoschGroup:744000156496059",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Płatny Staż w Dziale Technicznym (k/m)",
"department": null,
"team": "Manufacturing",
"location": "Mirków, Województwo dolnośląskie, Poland",
"locations": [
"Mirków, Województwo dolnośląskie, Poland"
],
"country": "PL",
"workplace_type": null,
"remote": null,
"employment_type": "Intern",
"experience_level": "Internship",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"salary_source": null,
"posted_at": "2026-10-20T08:33:17.027Z",
"updated_at": null,
"requisition_id": "REF298993W",
"description": "Opis firmy\nCzy chcesz, aby Twoje pomysły kształtowały technologie, które zmieniają standardy życia? Zarówno w obszarze rozwiązań mobilnych, dóbr konsumpcyjny…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156496059-p-atny-staz-w-dziale-technicznym-k-m-?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156496059-p-atny-staz-w-dziale-technicznym-k-m-",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:11.726Z"
},
{
"id": "smartrecruiters:BoschGroup:744000156385859",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Supervisor de producción",
"department": null,
"team": "Engineering",
"location": "Celaya Planta, Mexico",
"locations": [
"Celaya Planta, Mexico"
],
"country": "MX",
"workplace_type": null,
"remote": null,
"employment_type": "Full-time",
"experience_level": "Associate",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"salary_source": null,
"posted_at": "2026-10-19T17:16:58.488Z",
"updated_at": null,
"requisition_id": "REF298623H",
"description": "Company Description\nBosch fue fundada en Stuttgart en 1886 por Robert Bosch (1861-1942), y por más de 130 años se ha distinguido por una cultura corporativa…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156385859-supervisor-de-produccion?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156385859-supervisor-de-produccion",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:12.287Z"
},
{
"id": "smartrecruiters:BoschGroup:744000156356979",
"ats": "smartrecruiters",
"company": "BoschGroup",
"company_name": "Bosch Group",
"title": "Electronic Supplier Quality Engineer",
"department": null,
"team": "Quality Assurance",
"location": "Celaya, Gto., Mexico",
"locations": [
"Celaya, Gto., Mexico"
],
"country": "MX",
"workplace_type": null,
"remote": null,
"employment_type": "Full-time",
"experience_level": "Associate",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"salary_source": null,
"posted_at": "2026-10-19T15:18:01.192Z",
"updated_at": null,
"requisition_id": "REF298318S",
"description": "Company Description\nBosch was founded in Stuttgart in 1886 by Robert Bosch (1861-1942) and for more than 130 years has been distinguished by a unique corpora…",
"apply_url": "https://jobs.smartrecruiters.com/BoschGroup/744000156356979-electronic-supplier-quality-engineer?oga=true",
"url": "https://jobs.smartrecruiters.com/BoschGroup/744000156356979-electronic-supplier-quality-engineer",
"change_status": null,
"first_seen_at": null,
"last_seen_at": null,
"scraped_at": "2026-10-20T18:18:12.252Z"
}
]

In that run 129 of 500 jobs (26%) carried a published pay range, parsed into salary_min, salary_max, salary_currency and salary_period.

  • Career Page Jobs Scraper: the same rows from twelve career-page systems in one run
  • Jobs API: search company-career-page jobs by words, location and remote, no board URLs needed

Input reference

FieldDefaultMeaning
startUrlssample boardsSmartRecruiters career-page URLs
companiesnoneCompany names as they appear in the career-page URL
keywordsnoneKeep jobs whose title contains one of these words
locationsnoneKeep jobs whose location, country or workplace type contains one of these
postedWithinDaysnoneKeep jobs published in the last N days
includeDescriptiontrueTurn off for lighter rows at one request per 100 jobs instead of one per job. Pay fields are then empty: SmartRecruiters publishes pay only in the job text
monitorNamenoneTurns on change tracking between runs; use the same name every run
onlyChangesfalseWith a monitor name: leave out, and do not bill, unchanged jobs
includeRemovedtrueWith a monitor name: report jobs that are gone since the previous run
maxItems500Stop after this many rows
maxConcurrency5Parallel requests
useProxyfalseOff by default: the source answers faster without it. Turn on only if a run reports being rate-limited or blocked

Changelog

  • 2026-10-20, v0.1: first release. Verified against live boards on 2026-10-20.