SmartRecruiters Jobs Scraper

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

Data fields

FieldTypeDescription
jobIdstringStable SmartRecruiters job or posting identifier.
refNumberstring | nullEmployer reference number when published.
titlestringPublished job title.
companystring | nullPublishing company name when available.
departmentstring | nullPublished department when available.
functionstring | nullPublished job function when available.
locationstring | nullPublished job location.
remoteboolean | nullPublished remote-work flag when available.

Input preview

companyIdentifiersCompany identifiers / slugs
companyUrlsCompany career URLs
limitMaximum jobs
includeDetailsInclude job descriptions
maxConcurrencyMax concurrency
maxRuntimeSecondsMaximum run time (seconds)

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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

Input options

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

Input Type Description
companyIdentifiers array SmartRecruiters company slugs such as SmartRecruiters
companyUrls array SmartRecruiters career page URLs
limit integer Maximum jobs to save across all companies
includeDetails boolean Include descriptions and apply links when available
maxConcurrency integer Number of parallel detail requests

Reliability and limits

  • This Actor reads public SmartRecruiters company posting boards only. It does not require a login, collect applications, or use browser automation.
  • A missing company board fails clearly when every requested company is unavailable. A real but empty public board completes with zero job rows and a RUN_SUMMARY record.
  • Large exports save rows progressively. When the platform deadline approaches, the Actor stops admitting new requests and stores the remaining company and offset in PENDING_WORK.
  • Job descriptions are optional. If one detail record is temporarily unavailable, the base list record is still exported with a run warning.

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.

Field Description
jobId SmartRecruiters job identifier
refNumber Employer reference / requisition number
title Job title
company Company name
department Department when available
function Job function when available
location Full location string
remote Remote-work flag when available
hybrid Hybrid-work flag when available
employmentType Employment type when available
experienceLevel Experience level when available
language Job ad language when available
postedDate Public posting date
applyUrl Apply link
jobUrl Public job page link
descriptionText Plain-text job description
descriptionHtml HTML job description
sourceCompanySlug Company slug used for the scrape
scrapedAt Timestamp 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.

Common questions

Questions and answers reused from the canonical actor README.

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.

Does it include apply links?

Yes, when available from the public posting data.