SmartRecruiters Jobs Scraper: Company Career Pages avatar

SmartRecruiters Jobs Scraper: Company Career Pages

Pricing

Pay per event

Go to Apify Store
SmartRecruiters Jobs Scraper: Company Career Pages

SmartRecruiters Jobs Scraper: Company Career Pages

Scrape open jobs from SmartRecruiters company career pages (jobs.smartrecruiters.com): title, company, location, workplace type, department, employment type, salary where stated, posting date, apply URL and full description. Filter by keyword, location and date. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

SmartRecruiters Jobs Scraper: Company Job Boards

Get the open jobs of any company that hires through SmartRecruiters. Paste a company board URL such as https://jobs.smartrecruiters.com/CERN (or just the company identifier) and receive title, location, department, employment type, workplace type, stated salary, description, posting date and apply URL as clean dataset rows.

What you can do with it

  • Pull all open roles of a list of target companies for lead generation or recruiting research.
  • Track hiring over time: run it on a schedule with postedWithinDays and sortBy: newest to see only new postings.
  • Feed a job board or alert system with the openings of the companies you follow.
  • Filter by keyword in the title, by location or by country.

What you get

One dataset row per job. Duplicates are removed before anything is charged, so the number of rows is the number of results you pay for.

FieldDescription
idJob id, unique across boards
ats_job_idThe id the portal itself uses for the posting
titleJob title
companyCompany name as the posting states it (for example CERN)
ats_platformsmartrecruiters
location, city, countryLocation text as posted (city, region, country), the city and the two-letter country code
departmentDepartment or team, when the posting states one
employment_typeFull-time, part-time, contract and so on, when stated
remotetrue when the posting is marked remote
workplace_typeremote or hybrid when the posting marks it; empty when it does not say
descriptionFull job description as HTML: company description, job description, qualifications and additional information, each under its heading. Empty only when includeDescription is off or the posting could not be read
apply_url, job_urlLink to the posting and to its application page
created_atPosting date
languageLanguage of the posting
scraped_atTime of the run

Salary fields (salary_text, salary_min, salary_max, salary_currency, salary_period, salary_source) are filled only when the posting states a salary range. They are never estimated.

Input

FieldDescription
companiesSmartRecruiters board URLs or bare company identifiers (CERN is https://jobs.smartrecruiters.com/CERN). Strings, {"url": "..."} objects, a single string, or several separated by commas or new lines. Empty = one sample board.
keywordsKeep only jobs whose title matches at least one keyword. They filter the jobs of the boards you list; they do not search other companies.
locationKeep only jobs in this city, region or country (Geneva, Switzerland, CH).
countriesISO-2 codes such as ["CH", "DE"]: keep only jobs located in these countries (jobs whose country cannot be determined are left out).
includeRemoteWithoutRegionOnly with a country filter: also keep remote jobs that state no country or region (they may not be open to applicants in that country). Default false.
postedWithinDaysDrop jobs older than this many days. Jobs without a posting date are kept.
sortBynewest (default) or relevance (the portal's own order).
maxJobsPerCompanyCap per board, counted after the filters. 0 = all. Default 50.
maxResultsCap for the whole run. The run stops cleanly when it is reached. 0 = no limit. Default 100.
includeDescriptionInclude the description HTML. Default true.

Example: one board

{
"companies": ["https://jobs.smartrecruiters.com/CERN"],
"maxResults": 20
}

Example: several boards with filters

{
"companies": [
"https://jobs.smartrecruiters.com/CERN",
"Freshworks"
],
"keywords": ["engineer", "data"],
"postedWithinDays": 30,
"sortBy": "newest",
"maxJobsPerCompany": 25
}

Only SmartRecruiters boards are read. A URL of any other job system (Greenhouse, Lever, Workday and so on) is skipped with a log line that names the actor to use, and is never charged.

Supported URL formats

  • Board: https://jobs.smartrecruiters.com/{company} (with or without a trailing slash, or without https://; tracking parameters such as utm_source are ignored).
  • Posting: https://jobs.smartrecruiters.com/{company}/{id}-{title} is reduced to its board; the whole board is read.
  • Bare company identifier: {company}.

Output

{
"id": "smartrecruiters-a1b2c3d4-9e2e0190-34ad-4697-9aac-cacd1a03ff54",
"ats_job_id": "9e2e0190-34ad-4697-9aac-cacd1a03ff54",
"title": "Software Engineer in Physics Simulation (IT-CE-PSE-2026-167-GRAP)",
"company": "CERN",
"ats_platform": "smartrecruiters",
"location": "Geneva, GENEVA, Switzerland",
"city": "Geneva",
"country": "CH",
"department": "IT",
"employment_type": "Full-time",
"remote": false,
"workplace_type": "hybrid",
"salary_text": "CHF 6,372 - 7,004 per month",
"salary_min": 6372,
"salary_max": 7004,
"salary_currency": "CHF",
"salary_period": "month",
"salary_source": "stated",
"apply_url": "https://jobs.smartrecruiters.com/CERN/744000157409267",
"job_url": "https://jobs.smartrecruiters.com/CERN/744000157409267",
"language": "en",
"created_at": "2026-10-23T08:21:12.810Z",
"scraped_at": "2026-10-27T09:00:00Z"
}

The row above is illustrative (the description field is left out for brevity); values depend on the board. created_at is the posting date the portal reports.

Pricing

Pay per result, two events:

  • apify-actor-start: $0.001 once per run.
  • job-result: $0.001 per job in the dataset ($1.00 per 1,000 jobs).

The start fee is charged on top of the job results. Filtered-out and duplicate jobs are never charged, and a board that is not found costs nothing. Set a maximum total charge on the run to stop at a budget; the run ends cleanly when it is reached. The pricing box on the actor page always shows the current rates.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client, such as Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Example prompts once connected:

"Use smartrecruiters-jobs-scraper for https://jobs.smartrecruiters.com/CERN and list the open roles with title, location and apply URL."

"Use smartrecruiters-jobs-scraper for the companies CERN and Freshworks and return the roles posted in the last 30 days."

Configure the MCP server with the SmartRecruiters Jobs Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/smartrecruiters-jobs-scraper:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=santamaria-automations/smartrecruiters-jobs-scraper",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

See the auto-generated API tab on the actor page for language-specific examples (cURL, JavaScript, Python, and more).

FAQ

How do I find a company's SmartRecruiters board URL? Open the company's careers page and look at the address of a job: if it starts with jobs.smartrecruiters.com/, the part right after it is the company identifier and https://jobs.smartrecruiters.com/{company} is the board URL. You can pass either the URL or just the identifier.

Can I search by keyword across all SmartRecruiters companies? No. Give the board URL or company identifier of each company. Keywords only filter the titles of the jobs of the boards you list.

What if a board is not found? The run continues with the other boards. The run status line names the board and the reason (for example board_not_found), and nothing is charged for it.

Why is the description empty? It is empty when includeDescription is off, or when the posting could not be read. The row still has title, location, department, employment type, date and the apply URL, and is charged the same.

Why is the salary empty? Salary fields are filled only when the posting states a salary range, which most postings do not, and only with includeDescription on (the salary is read together with the description). Nothing is estimated.

How do I get only new jobs? Run it on a schedule with postedWithinDays set to the interval (for example 1 for a daily run) and sortBy set to newest.

How do I stop at a budget? Set maxResults or the maximum total charge of the run. The run stops cleanly when either is reached.

Why did I get fewer jobs than maxJobsPerCompany? The caps apply after your filters, and a board can simply have fewer open jobs. The boards are read in the order you list them, and the run stops once maxResults is reached.

Limits

  • Boards only; no company-name search across SmartRecruiters.
  • Salary fields are filled only when the posting states a salary, and only with includeDescription on.
  • workplace_type is empty for postings that mark neither remote nor hybrid.

Support

  • Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours, or open a ticket in the Issues tab on the actor page.
  • Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume.