SmartRecruiters Jobs & Salary Scraper
Pricing
from $6.15 / 1,000 results
SmartRecruiters Jobs & Salary Scraper
Scrape SmartRecruiters company job boards by company. Extract job title, location, department, industry, employment type, experience level, apply URL, full description and salary text. Export JSON, CSV or Excel. No login or API key.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
SmartRecruiters Jobs & Salary Scraper
Here is one real result, with every field the actor returns (long text fields and the customFields and videoUrls arrays are trimmed here with ... to keep the example readable; live records return them in full):
{"title": "Industrial Maintenance Tech (2nd Shift)","company": "Bosch Group","companyId": "BoschGroup","location": "West Memphis, AR, United States","city": "West Memphis","region": "AR","country": "US","postalCode": "72301","streetAddress": "2700 College Boulevard","latitude": 35.1741063,"longitude": -90.2266043,"remote": false,"hybrid": false,"department": null,"jobFunction": "Distribution","industry": "Warehousing","employmentType": "Full-time","experienceLevel": "Entry Level","url": "https://jobs.smartrecruiters.com/BoschGroup/744000142655939-industrial-maintenance-tech-2nd-shift-","jobId": "744000142655939","refNumber": "REF289682L","releasedDate": "2026-08-10T14:01:50.778Z","language": "English","customFields": [{ "label": "Contract type", "value": "Unlimited" },{ "label": "Global Salary Level", "value": "Junior/ Lower Tariff" },{ "label": "Legal Entity", "value": "Robert Bosch Tool Corporation" }],"applyUrl": "https://jobs.smartrecruiters.com/BoschGroup/744000142655939-industrial-maintenance-tech-2nd-shift-?oga=true","referralUrl": "https://jobs.smartrecruiters.com/external-referrals/company/BoschGroup/publication/fa7556de-17a1-4ef9-9fc2-69c5d067fad1?dcr_ci=BoschGroup","recruiter": null,"recruiterAvatarUrl": null,"videoUrls": ["https://www.youtube.com/watch?v=7xW4eguGuhc","https://www.youtube.com/watch?v=hAD6sl-MtjU"],"salaryText": "$26.94 - $32.96","companyDescription": "Welcome to Bosch Power Tools in West Memphis, AR, where innovation meets action in a high-volume, fast-moving warehousing operation...","jobDescription": "The Industrial Maintenance Technician supports a highly automated warehouse environment by maintaining, troubleshooting, and repairing material handling and automation equipment...","qualifications": "Qualifications & Education - High School Diploma/GED REQUIRED - Technical/Vocational training in industrial maintenance, electrical, or mechanical fields PREFERRED...","additionalInformation": "The U.S. base salary range for this full-time position is hourly $26.94 - $32.96 (plus shift differential)...","descriptionText": "The Industrial Maintenance Technician supports a highly automated warehouse environment...","observedAt": "2026-08-10T14:17:49.391Z","error": null}
The most complete SmartRecruiters jobs scraper available. It returns every field a company's SmartRecruiters job board exposes for each opening, plus a parsed salary range, geocoded location and structured custom fields, and gives you keyword, remote, employment type, experience level, department, country and date filters plus an optional contact enrichment add-on to target exactly the jobs you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads the public SmartRecruiters job boards of the companies you list, paginates through every open posting, and writes one normalized record per job to the run's dataset. With withDetails on (the default) each record includes the full job description, qualifications, company description, apply URL, custom fields and a salary range parsed from the free-text ad. Location is split into city, region, country, postal code, street address and latitude/longitude when the source provides them.
You pass company identifiers taken from each board's URL (for example BoschGroup from jobs.smartrecruiters.com/BoschGroup). Optional filters (keyword, remote only, employment type, experience level, department, country, released-after date) are applied after jobs are fetched. An optional paid contact enrichment add-on can look up a public business email and contact person for each result.
Quickstart
Open the actor, paste this into the input, and press Run. It collects up to 10 detailed jobs from the Bosch, Ubisoft and Equinox SmartRecruiters boards.
{"companies": ["BoschGroup", "Ubisoft2", "Equinox"],"maxJobs": 10,"withDetails": true,"remoteOnly": false}
companies is required. Use the identifier from a board's careers URL, or paste the full URL. Identifiers are case-sensitive.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companies | string[] | yes | (none) | Company identifiers whose SmartRecruiters boards to scrape, for example BoschGroup. Take the identifier from the careers URL jobs.smartrecruiters.com/<identifier>, or paste the full URL. Case-sensitive. |
maxJobs | integer | no | 10 | Maximum number of jobs to collect across all boards. Free Apify plans are capped at 10 per run. |
withDetails | boolean | no | true | When on, each job includes full description, qualifications, company description, apply URL, recruiter, custom fields and salary text. When off, only lightweight listing fields are collected. |
searchQuery | string | no | (empty) | Optional keyword filter applied after fetch. Matches title, department, location, function and description (case-insensitive). |
remoteOnly | boolean | no | false | When on, return only jobs flagged remote. |
employmentType | string | no | (empty) | Keep only jobs whose employment type contains this text (for example Full-time, Intern). Case-insensitive. |
experienceLevel | string | no | (empty) | Keep only jobs whose experience level contains this text (for example Entry, Senior). Case-insensitive. |
department | string | no | (empty) | Keep only jobs whose department contains this text (for example Engineering, Sales). Case-insensitive. |
country | string | no | (empty) | Keep only jobs whose country or location contains this text (for example US, Germany). Case-insensitive. |
releasedAfter | string | no | (empty) | Keep only jobs released on or after this date (YYYY-MM-DD). Jobs without a release date are excluded when set. |
enrichContacts | boolean | no | false | Optional paid add-on, off by default. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the add-on tries to enrich. Free Apify accounts are capped at 3. |
Output reference
One dataset item per job. Types: string, number, boolean, object[], string[], or null when the source value is absent. Detail and enriched* fields are populated only when withDetails / the enrichment add-on are enabled.
| Field | Type | Description |
|---|---|---|
title | string | Job title. |
company | string | Company display name. |
companyId | string | SmartRecruiters company identifier (from the board URL). |
location | string | Full location string as posted. |
city | string | City parsed from the location. |
region | string | State or region parsed from the location. |
country | string | Country code or name. |
postalCode | string | Postal code of the job location, or null. |
streetAddress | string | Street address of the job location, or null. |
latitude | number | Latitude of the job location, or null. |
longitude | number | Longitude of the job location, or null. |
remote | boolean | true when the job is flagged remote. |
hybrid | boolean | true when the job is flagged hybrid. |
department | string | Department, or null when not set. |
jobFunction | string | Job function category. |
industry | string | Industry category. |
employmentType | string | Employment type (for example Full-time). |
experienceLevel | string | Experience level (for example Entry Level). |
url | string | Public job posting URL. |
jobId | string | SmartRecruiters job identifier. |
refNumber | string | Employer reference number, or null. |
releasedDate | string | ISO 8601 date the job was released. |
language | string | Posting language. |
salaryText | string | Salary range parsed from the free-text ad, or null. |
applyUrl | string | Direct application URL. |
referralUrl | string | External referral URL, or null. |
recruiter | string | Recruiter name, or null. |
recruiterAvatarUrl | string | Recruiter avatar URL, or null. |
videoUrls | string[] | Video URLs embedded in the posting. Empty array when none. |
jobDescription | string | Full job description text (with withDetails). |
qualifications | string | Qualifications section text (with withDetails). |
companyDescription | string | Company description text (with withDetails). |
additionalInformation | string | Additional information section text (with withDetails). |
descriptionText | string | Combined plain-text description (with withDetails). |
customFields | object[] | Employer custom fields as {label, value} pairs. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
enrichedEmail | string | Public business contact email found by the add-on, or null. |
enrichedContactName | string | Contact person name found by the add-on, or null. |
enrichedJobTitle | string | Contact person job title found by the add-on, or null. |
enrichedEmailStatus | string | Verification status of the enriched email, or null. |
enrichedSource | string | Source URL the enriched contact was found on, or null. |
enrichedConfidence | string | Confidence label for the enriched contact, or null. |
Example output record
Real record from a live run (input {"companies":["BoschGroup","Ubisoft2","Equinox"],"maxJobs":10,"withDetails":true}). Long text fields and the customFields and videoUrls arrays are trimmed here with ...; live records return them in full:
{"title": "Industrial Maintenance Tech (2nd Shift)","company": "Bosch Group","companyId": "BoschGroup","location": "West Memphis, AR, United States","city": "West Memphis","region": "AR","country": "US","postalCode": "72301","streetAddress": "2700 College Boulevard","latitude": 35.1741063,"longitude": -90.2266043,"remote": false,"hybrid": false,"department": null,"jobFunction": "Distribution","industry": "Warehousing","employmentType": "Full-time","experienceLevel": "Entry Level","url": "https://jobs.smartrecruiters.com/BoschGroup/744000142655939-industrial-maintenance-tech-2nd-shift-","jobId": "744000142655939","refNumber": "REF289682L","releasedDate": "2026-08-10T14:01:50.778Z","language": "English","salaryText": "$26.94 - $32.96","applyUrl": "https://jobs.smartrecruiters.com/BoschGroup/744000142655939-industrial-maintenance-tech-2nd-shift-?oga=true","customFields": [{ "label": "Contract type", "value": "Unlimited" },{ "label": "Global Salary Level", "value": "Junior/ Lower Tariff" }],"jobDescription": "The Industrial Maintenance Technician supports a highly automated warehouse environment...","observedAt": "2026-08-10T14:17:49.391Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~smartrecruiters-jobs-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companies":["BoschGroup"],"maxJobs":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~smartrecruiters-jobs-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companies":["Ubisoft2"],"remoteOnly":true,"maxJobs":100}'
Apify CLI:
apify call scrapers_lat/smartrecruiters-jobs-scraper \--input '{"companies":["Equinox"],"searchQuery":"manager"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per job returned (
resultevent). See the pricing tab for the current per-result price. - Contact enrichment add-on. When
enrichContactsis on, each enrichment attempt is billed, plus an extra charge only when an email is found. Leave it off to pay only the per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 jobs per run, and the enrichment add-on is capped at 3 attempts. Upgrade for higher
maxJobs.
FAQ and troubleshooting
Where do I get the company identifier?
Open a company's SmartRecruiters careers page. The identifier is the path segment after the domain, for example BoschGroup in jobs.smartrecruiters.com/BoschGroup. You can paste either the identifier or the full URL.
Why is salaryText null?
SmartRecruiters exposes no structured salary field, so the actor parses pay from the free-text ad. When the ad states no pay, salaryText is null. Missing source values are never invented.
How do I get only remote jobs?
Set remoteOnly to true, or combine country and searchQuery filters.
Do I need withDetails?
Only if you want full descriptions, qualifications, apply URL, custom fields and salary text. Turn it off for a faster, lightweight listing (title, location, department, dates).
A run returned 0 records. Why? Either the company identifier is wrong or case-mismatched, or your filters excluded every job. Zero-result runs are not charged.
Is this an official SmartRecruiters tool? No. This actor is independent and has no affiliation with SmartRecruiters. It reads only publicly available job board data. Use the results in accordance with the source's terms.
Related scrapers
- Greenhouse Jobs Scraper: Jobs from Greenhouse-hosted career boards.
- Ashby Jobs Scraper: Jobs from Ashby-hosted career boards.
- BambooHR Jobs Scraper: Jobs from BambooHR career boards.
- Breezy HR Jobs Scraper: Jobs from Breezy HR career boards.
- Dice Jobs Scraper: US tech jobs from Dice.
- Himalayas Remote Jobs Scraper: Remote jobs from Himalayas.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with SmartRecruiters. Accesses only publicly available job board data. Use the results in accordance with the source's terms.
