SmartRecruiters Jobs Scraper avatar

SmartRecruiters Jobs Scraper

Pricing

from $0.03 / 1,000 result extracteds

Go to Apify Store
SmartRecruiters Jobs Scraper

SmartRecruiters Jobs Scraper

Scrape public SmartRecruiters job postings by company with details and apply URLs.

Pricing

from $0.03 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Collect public job postings from SmartRecruiters-powered career pages.

Use this actor when you need structured hiring data from companies that publish roles through SmartRecruiters. Provide company names or career page URLs, choose how many jobs you want, and export clean records with titles, locations, departments, job links, apply links, descriptions, and posting dates.

What does SmartRecruiters Jobs Scraper do?

SmartRecruiters Jobs Scraper turns public SmartRecruiters career pages into a structured dataset.

It helps you:

  • 🧲 Monitor open roles at target companies
  • 📈 Track hiring trends by department, location, and remote status
  • 🧾 Export job descriptions for analysis
  • 🔎 Build recruiting, sales, or labor-market workflows
  • 🔗 Collect public job and apply links in one table

Who is it for?

This actor is useful for several teams.

  • Recruiters tracking competitor hiring
  • Sales teams looking for buying signals
  • Labor-market analysts monitoring demand
  • Job-board operators collecting public roles
  • RevOps teams enriching account research
  • Founders watching where companies are investing

Why use it?

SmartRecruiters career pages are common across enterprise hiring teams. Manually checking every company page is slow and easy to forget.

This actor gives you repeatable exports that can run on a schedule, feed a CRM, power a job board, or support market research.

Typical use cases

  • Track new jobs at a list of target accounts
  • Watch which departments are growing
  • Find companies hiring for a specific role family
  • Export remote roles for a job-alert workflow
  • Build datasets for hiring trend dashboards
  • Enrich company profiles with current open roles

How much does it cost to scrape SmartRecruiters jobs?

The actor uses pay-per-event pricing.

You pay a small run start fee and then a per-job fee for each saved job posting.

A small test run with 25 jobs is inexpensive. Larger runs scale with the number of jobs saved, so you can control spend with the Maximum jobs input.

Input options

You can provide company names, career page URLs, or both.

InputTypeDescription
companyIdentifiersarraySmartRecruiters company slugs such as SmartRecruiters
companyUrlsarraySmartRecruiters career page URLs
limitintegerMaximum jobs to save across all companies
includeDetailsbooleanInclude descriptions and apply links when available
maxConcurrencyintegerNumber of parallel detail requests

Example input

{
"companyIdentifiers": ["SmartRecruiters"],
"limit": 25,
"includeDetails": true,
"maxConcurrency": 5
}

Company names and URLs

The simplest input is a SmartRecruiters company slug.

For example, if the public career page is:

https://jobs.smartrecruiters.com/SmartRecruiters

Use:

{
"companyIdentifiers": ["SmartRecruiters"]
}

You can also paste the career page URL into companyUrls.

Output data

Each dataset row is one public job posting.

FieldDescription
jobIdSmartRecruiters job identifier
refNumberEmployer reference / requisition number
titleJob title
companyCompany name
departmentDepartment when available
functionJob function when available
locationFull location string
remoteRemote-work flag when available
hybridHybrid-work flag when available
employmentTypeEmployment type when available
experienceLevelExperience level when available
languageJob ad language when available
postedDatePublic posting date
applyUrlApply link
jobUrlPublic job page link
descriptionTextPlain-text job description
descriptionHtmlHTML job description
sourceCompanySlugCompany slug used for the scrape
scrapedAtTimestamp when the job was saved

Example output item

{
"jobId": "744000132998500",
"refNumber": "REF2010Z",
"title": "Senior Information Security Specialist",
"company": "SmartRecruiters Inc",
"department": "Engineering",
"function": "Engineering",
"location": "Poland, REMOTE, Poland",
"remote": true,
"hybrid": false,
"employmentType": "Full-time",
"experienceLevel": "Mid-Senior Level",
"language": "English",
"postedDate": "2026-06-19T06:46:31.452Z",
"applyUrl": "https://jobs.smartrecruiters.com/smartrecruiters/...",
"jobUrl": "https://jobs.smartrecruiters.com/smartrecruiters/...",
"descriptionText": "SmartRecruiters is looking for...",
"descriptionHtml": "<p>SmartRecruiters is looking for...</p>",
"sourceCompanySlug": "SmartRecruiters",
"scrapedAt": "2026-06-23T14:30:00.000Z"
}

How to run it

  1. Open the actor on Apify.
  2. Add one or more SmartRecruiters company names or career URLs.
  3. Set Maximum jobs to the number of postings you want.
  4. Keep Include job descriptions enabled if you need full job text.
  5. Click Start.
  6. Export the dataset as JSON, CSV, Excel, or via API.

Tips for best results

  • Start with one company and a small limit to confirm the slug.
  • Use company URLs if you are unsure about the exact slug.
  • Increase the limit for scheduled monitoring runs.
  • Keep descriptions enabled for analysis workflows.
  • Disable descriptions when you only need a fast list of titles and URLs.

Scheduling

You can run this actor on a schedule.

Common schedules include:

  • Daily checks for new jobs
  • Weekly hiring trend snapshots
  • Monthly account enrichment exports

Scheduled runs are useful when you want to detect new openings without manually checking career pages.

Integrations

The dataset can be sent to many tools.

  • Google Sheets for lightweight monitoring
  • Airtable for recruiting operations
  • CRM systems for sales triggers
  • BI dashboards for hiring analytics
  • Webhooks for alerts when new jobs appear
  • Data warehouses for trend analysis

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/smartrecruiters-jobs-scraper').call({
companyIdentifiers: ['SmartRecruiters'],
limit: 25,
includeDetails: true
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/smartrecruiters-jobs-scraper').call(run_input={
'companyIdentifiers': ['SmartRecruiters'],
'limit': 25,
'includeDetails': True,
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~smartrecruiters-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"companyIdentifiers":["SmartRecruiters"],"limit":25,"includeDetails":true}'

MCP usage

Use Apify MCP to run this actor from AI tools.

MCP URL:

https://mcp.apify.com/?tools=fetch_cat/smartrecruiters-jobs-scraper

Claude Code setup:

$claude mcp add apify-smartrecruiters-jobs "https://mcp.apify.com/?tools=fetch_cat/smartrecruiters-jobs-scraper"

JSON MCP server configuration:

{
"mcpServers": {
"apify-smartrecruiters-jobs": {
"url": "https://mcp.apify.com/?tools=fetch_cat/smartrecruiters-jobs-scraper"
}
}
}

Example prompts:

  • "Run SmartRecruiters Jobs Scraper for SmartRecruiters and summarize open engineering roles."
  • "Find remote jobs from this SmartRecruiters company page and export them as a table."
  • "Compare current job postings with last week's dataset and list new roles."

Data freshness

The actor reads public career page data at run time. Each item includes scrapedAt, so you can compare exports over time.

Limits

The actor can save up to the limit you set. If a company has fewer public jobs than your limit, the run finishes after collecting all available jobs.

Empty results

An empty dataset usually means one of these things:

  • The company slug is misspelled
  • The company is not hosted on SmartRecruiters
  • The company currently has no public jobs
  • The career page URL is not a SmartRecruiters URL

Try pasting the full company career URL if the slug is unclear.

Troubleshooting

Why did I get fewer jobs than my limit?

The company may have fewer public postings than your requested maximum. The limit is a cap, not a guarantee.

Why is a field empty?

Not every company fills every SmartRecruiters field. Department, employment type, remote status, and descriptions depend on what the company publishes.

Can I scrape private or internal jobs?

No. This actor is designed for public job postings only.

Legality

This actor collects publicly available job posting data. You are responsible for using the data legally and respecting applicable laws, terms, and privacy rules. Do not use it to collect private, internal, or access-restricted content.

You may also find these useful:

FAQ

Does this actor need my SmartRecruiters login?

No. It only collects public job postings.

Can I run multiple companies at once?

Yes. Add multiple values to companyIdentifiers or companyUrls.

Can I export to CSV?

Yes. Apify datasets can be exported as CSV, JSON, Excel, XML, RSS, and more.

Can I monitor new jobs over time?

Yes. Schedule the actor and compare datasets by jobId and scrapedAt.

Yes, when available from the public posting data.

Does it include full descriptions?

Yes, keep includeDetails enabled to save descriptionText and descriptionHtml.

Changelog

0.1

Initial version for public SmartRecruiters job postings.