SmartRecruiters Jobs Scraper avatar

SmartRecruiters Jobs Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
SmartRecruiters Jobs Scraper

SmartRecruiters Jobs Scraper

Scrape every job posting from any SmartRecruiters-hosted employer board via SmartRecruiters' own public JSON API, no login or browser required. Filter by keyword, department id, city, or country, and add full HTML descriptions plus verified apply links on request.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share


🎯 What this scrapes

Thousands of companies run their careers page on SmartRecruiters, and every one of those boards is served by the same public JSON API (api.smartrecruiters.com/v1/companies/{companyId}/postings). This Actor talks to it directly: hand it one or more company IDs — the {companyId} in a jobs.smartrecruiters.com/{companyId} URL, e.g. Visa — and it paginates each employer's full posting list, optionally fetches every posting's detail for the full description, and normalizes it all into one row schema. One scraper, every SmartRecruiters employer.

🔥 Features

  • 🔑 Keyless public API — no OAuth, no token, no per-company setup; the same endpoint the careers page itself calls.
  • 🏢 Multi-company in one run — pass many company IDs; rows come back identically shaped, tagged with company_id / company_name.
  • 🎯 Server-side filters — narrow by free-text searchQuery, department, city, or country before a single row is billed.
  • 📝 Optional full descriptions — flip includeDescription on for the complete posting body (an extra detail fetch per job), or off for a fast titles-and-locations pull.
  • 🔁 Retries with backoff + fingerprint impersonationcurl-cffi presents a real browser handshake and retries transient 429/5xx so a large multi-employer batch finishes instead of dying midway.
  • 🧊 Clean, typed rows — Pydantic-validated, ISO-8601 timestamps, stable IDs. Export JSON / CSV / Excel straight from the Apify Console.

💡 Use cases

  • Recruiting & talent intelligence — track what a target employer is hiring for, where, and in which departments.
  • Job-board aggregation — add SmartRecruiters coverage next to Workday / Greenhouse / Lever / Ashby in one pipeline.
  • Labor-market research — sample hiring demand across an industry by role, function, or location.
  • Competitive hiring intel — watch a competitor's open reqs to infer team growth and direction.
  • ATS data pipelines — wire structured job rows into your CRM, dashboard, or n8n / Make workflow on a schedule.

⚙️ How to use it

  1. Click Try for free at the top of the Store listing.
  2. Add one or more Company IDs — the {companyId} from a jobs.smartrecruiters.com/{companyId} careers URL (e.g. Visa).
  3. Optionally set Search query, Department, City, Country, Max results per company, and toggle Include description.
  4. Click Start. Rows stream into the dataset as each company paginates.
  5. Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.

📥 Input

FieldTypeRequiredDefaultNotes
companyIdsarraySmartRecruiters company identifiers (the {companyId} in jobs.smartrecruiters.com/{companyId}, e.g. Visa).
searchQuerystringnonullFree-text keyword filter (server-side).
departmentstringnonullDepartment facet filter.
citystringnonullCity facet filter.
countrystringnonullCountry facet filter.
maxResultsPerCompanyintegernoCap on rows emitted per company.
includeDescriptionbooleannofalseFetch each posting's full description (one extra call per job).
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy configuration.

Example input

{
"companyIds": ["Visa"],
"maxResultsPerCompany": 25,
"includeDescription": true,
"proxyConfiguration": { "useApifyProxy": true }
}

📤 Output

One dataset item per job posting. description_html is populated only when includeDescription is on.

FieldTypeNotes
posting_idstringStable SmartRecruiters posting UUID.
titlestringJob title.
company_idstringCompany identifier you supplied.
company_namestringEmployer display name.
location_citystring | nullPosting city.
location_regionstring | nullRegion / state.
location_countrystring | nullCountry.
is_remotebooleanWhether the posting is flagged remote.
departmentstring | nullDepartment label.
functionstring | nullJob function label.
employment_typestring | nulle.g. Full-time.
industrystring | nullIndustry label.
ref_numberstring | nullEmployer reference number.
released_datestring | nullISO-8601 posting release date.
apply_urlstringCanonical jobs.smartrecruiters.com apply URL.
description_htmlstring | nullFull posting body (when includeDescription is on).
scraped_atstringUTC ISO-8601 fetch timestamp.

Example output

{
"posting_id": "743999...abc",
"title": "Sr. Manager, Data Platform",
"company_id": "Visa",
"company_name": "Visa",
"location_city": "Austin",
"location_region": "Texas",
"location_country": "US",
"is_remote": false,
"department": "Technology",
"function": "Information Technology",
"employment_type": "Full-time",
"industry": "Financial Services",
"ref_number": "REF12345",
"released_date": "2026-07-18T00:00:00Z",
"apply_url": "https://jobs.smartrecruiters.com/Visa/743999...abc",
"description_html": "Visa is looking for a Sr. Manager...",
"scraped_at": "2026-07-21T14:00:00Z"
}

💰 Pricing

Pay-Per-Event — you're charged only when these fire:

EventUSDWhat it covers
actor-start$0.005One-off warm-up per run
result$0.0015Per job posting written to the dataset

Example: 1 000 postings ≈ $1.51. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • Public postings only — the openly published careers boards, not authenticated internal/employee views.
  • Descriptions cost an extra fetchincludeDescription adds one detail request per posting; leave it off for the fastest pull.
  • Company IDs, not company names — you supply the SmartRecruiters {companyId} from the careers URL; a display name like "Bosch" may differ from its actual identifier.
  • Point-in-time snapshot — returns the board as it stands now; schedule recurring runs to track changes.

❓ FAQ

Do I need a SmartRecruiters account or API key?

No — every field comes from SmartRecruiters' own public postings API, the same one the careers page calls.

How do I find a company's ID?

It's in the careers URL: https://jobs.smartrecruiters.com/{companyId}. Paste that {companyId} (e.g. Visa).

Can one run cover several employers?

Yes — put multiple IDs in companyIds and every row comes back identically shaped, tagged with company_id / company_name.

Is this legal?

We fetch public, unauthenticated job-posting data that employers publish for candidates. No login, no private endpoints.

💬 Your feedback

Spotted a bug, hit a company that behaves differently, or need an extra field? Open an issue on the Actor's Issues tab in Apify Console — we ship fixes weekly and read every report.