SimplyHired Jobs Scraper — Titles, Salary, Company & Skills avatar

SimplyHired Jobs Scraper — Titles, Salary, Company & Skills

Pricing

from $1.75 / 1,000 results

Go to Apify Store
SimplyHired Jobs Scraper — Titles, Salary, Company & Skills

SimplyHired Jobs Scraper — Titles, Salary, Company & Skills

Scrape jobs from SimplyHired by keyword and location. Get title, company, company rating, salary, job type, skills, benefits, location and full description as clean JSON, CSV or Excel — for recruiting, salary benchmarking and labor-market research.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 hours ago

Last modified

Features

Limited permissions

Share

SimplyHired Jobs Scraper — Titles, Salary, Company, Skills & Full Descriptions

Apify Actor Maintenance Data Format Pagination Deduplication

Extract comprehensive job postings from SimplyHired into clean, structured data without coding or manual browser intervention. This SimplyHired scraper crawls jobs by keyword and geographic location, capturing vital employment intelligence: job title, employer name, employer star rating, published salary ranges, employment classifications, required skills array, benefit packages, application links, geographic coordinates, and full job descriptions.

Export structured datasets to JSON, CSV, Excel, or consume records programmatically via the Apify REST API.

Built for recruiters, talent intelligence analysts, HR technology platforms, compensation researchers, job aggregators, and corporate sourcing teams who require automated, large-scale US job market data extraction.


⚡ At a glance

FeatureSpecification
Target PlatformSimplyHired (United States Nationwide Employment Exchange)
Data TypesJob Postings, Employer Profiles, Salary Disclosures, Skill Arrays
Search FiltersMulti-keyword list, US city/state/ZIP code, nationwide scope
Pagination ModeContinuous cursor-based deep pagination (maxPagesPerSearch: 0 for auto/unlimited)
Throughput SpeedFast listing mode: ~200–500 jobs / min; Detail mode: ~60–120 jobs / min
Data EnrichmentStructured salary min/max, full sanitized description, skills, company rating
Output FormatsJSON, CSV, XML, Excel (XLSX), HTML Table
Default Concurrency5 concurrent detail enrichment workers (configurable up to 10)
Proxy CompatibilityDatacenter first with automatic US Residential fallback

🔎 Why scrape SimplyHired?

SimplyHired functions as one of North America's premier employment aggregators, consolidating millions of active openings directly from corporate career sites, direct employers, staffing agencies, and partner job boards. Each listing encapsulates valuable market signals: who is actively hiring, published wage distributions, required qualifications, and workplace arrangements (remote, hybrid, or on-site).

Extracting this data manually is hindered by 20-item pagination limits, unformatted compensation strings, and nested descriptions requiring individual page clicks. This SimplyHired data extractor automates the end-to-end workflow: sequentially resolving cursor tokens, harvesting multi-page search results, deduplicating records across queries, and returning standardized datasets ready for ATS pipelines and analytics databases.

Core enterprise use cases

  • Compensation & Salary Benchmarking: Aggregate salaryMin and salaryMax distributions segmented by metropolitan area and job title to establish competitive wage benchmarks.
  • Recruitment & Sourcing Pipelines: Stream fresh job opportunities and employer expansion signals into applicant tracking systems (ATS) and talent CRM databases.
  • Skill Demand & Tech Trend Analysis: Track rising technical skills (e.g., Python, Kubernetes, Salesforce) and qualification prerequisites across specific industries.
  • Competitive Hiring Intelligence: Observe competitor workforce expansion and regional talent acquisition velocity in real time.
  • Aggregated Job Feed Generation: Seed specialized niche job boards and regional candidate portals with structured, deduplicated vacancy feeds.

✨ Core capabilities

  • ✅ Multi-Keyword Search Execution: Crawl multiple job titles or roles simultaneously ("software engineer", "registered nurse", "accountant").
  • ✅ Geographic Precision: Filter by US metropolitan area, state code, 5-digit ZIP, or leave empty for nationwide aggregation.
  • ✅ Cursor-Based Deep Pagination: Unlocked pagination engine traverses consecutive pagination tokens without artificial item caps.
  • ✅ Comprehensive Listing Metadata: Captures job titles, employer names, company ratings, verbatim compensation text, job types, and remote flags directly from search pages.
  • ✅ Full Detail Page Enrichment: Optionally inspect dedicated job postings to capture full HTML-stripped descriptions, normalized canonical titles, structured salary objects, and application URLs.
  • ✅ Structured Salary Extraction: Parses compensation ranges into numeric salaryMin, salaryMax, and salaryPeriod properties (YEAR, HOUR, MONTH).
  • ✅ Native Deduplication: Ensures every vacancy is uniquely validated by SimplyHired jobKey, eliminating duplicate entries across overlapping search queries.
  • ✅ Enterprise Export Standards: Export clean data directly to CSV, JSON, Excel, or consume programmatically via webhooks.

📥 Input parameters

The scraper accommodates both high-speed search card discovery and deep detail page extraction. All fields are optional; running without input initiates a default software engineering exploration.

ParameterTypeDefaultDescription
searchQueriesArray of Strings["software engineer"]Job titles, role keywords, or skill names to search.
locationString"New York, NY"Target city, state, or ZIP code (leave blank for nationwide scope).
includeDetailsBooleanfalseWhen enabled, opens individual job pages to extract full descriptions, coordinates, and apply URLs.
maxPagesPerSearchInteger0Maximum result pages per keyword (20 jobs/page). Set to 0 for unlimited pagination.
maxItemsInteger50Maximum total job postings to retain across all keywords. Set to 0 for unlimited.
maxConcurrencyInteger5Concurrency for detail page enrichment (1–10).
proxyConfigurationObject{ "useApifyProxy": true }Proxy configuration (datacenter with automatic US residential fallback).

📋 Ready-to-use input examples

Example 1: High-speed listing discovery in Austin

{
"searchQueries": ["Data Analyst", "Data Engineer"],
"location": "Austin, TX",
"includeDetails": false,
"maxItems": 100,
"maxPagesPerSearch": 0
}

Example 2: Full-detail remote healthcare roles

{
"searchQueries": ["Telehealth Nurse", "Case Manager"],
"location": "Remote",
"includeDetails": true,
"maxItems": 150,
"maxConcurrency": 5
}

Example 3: Nationwide engineering sweep

{
"searchQueries": ["DevOps Engineer"],
"location": "",
"includeDetails": false,
"maxItems": 500,
"maxPagesPerSearch": 0
}

📤 Output dataset structure

Every vacancy produces a clean JSON record. Below is a representative output record with includeDetails: true:

{
"jobKey": "t4bWK0x5rDdzE6qEiBJ_67Y80jGO0E9j",
"title": "Senior Backend Software Engineer",
"normalizedTitle": "senior backend software engineer",
"company": "Steadily Insurance Agency",
"companyRating": 4.1,
"location": "Austin, TX",
"url": "https://www.simplyhired.com/job/t4bWK0x5rDdzE6qEiBJ_67Y80jGO0E9j",
"salaryText": "$150,000 - $185,000 a year",
"salaryMin": 150000,
"salaryMax": 185000,
"salaryPeriod": "YEAR",
"salaryCurrency": "USD",
"jobTypes": [
"Full-time"
],
"remoteAttributes": [],
"workSettings": [
"Hybrid"
],
"benefits": [
"Health insurance",
"401(k) matching",
"Dental insurance",
"Paid time off"
],
"requirements": [
"Mid-level",
"Python",
"4 years experience"
],
"skills": [
"Python",
"PostgreSQL",
"Docker",
"FastAPI",
"AWS"
],
"qualifications": [
"Python",
"Distributed systems",
"Production APIs"
],
"snippet": "We are seeking a Senior Backend Engineer to architect cloud microservices and scale core insurance platforms...",
"city": "Austin",
"state": "TX",
"latitude": 30.2715,
"longitude": -97.7419,
"description": "Full job description text cleanly normalized into readable paragraphs without extraneous HTML tags...",
"applyUrl": "https://www.simplyhired.com/out?r=...",
"companyLogo": "https://d3qscgr6xsioh.cloudfront.net/logos/steadily.png",
"companyPageUrl": "https://www.simplyhired.com/company/steadily-insurance",
"datePosted": "2026-11-04T08:30:00.000Z",
"sponsored": false,
"easyApply": true,
"expired": false,
"searchQuery": "backend engineer",
"searchLocation": "Austin, TX",
"detailScraped": true,
"scrapedAt": "2026-11-10T14:45:00.000Z"
}

📊 Field definitions & coverage

💼 Core job metadata

FieldTypeDescriptionCoverage
jobKeyStringUnique SimplyHired job identifier (deduplication key)🟢 High (100%)
titleStringOriginal job title as published🟢 High (100%)
normalizedTitleStringStandardized job taxonomy title (details on)🟢 High (98%)
urlStringCanonical URL to the SimplyHired job posting🟢 High (100%)
snippetStringShort excerpt displayed on search cards🟢 High (100%)
descriptionStringComplete plain text sanitized job specification (details on)🟢 High (99%)
datePostedStringISO 8601 publication timestamp🟢 High (100%)
easyApplyBooleanTrue if SimplyHired one-click application is supported🟢 High (100%)
sponsoredBooleanFlag indicating sponsored employer placement🟢 High (100%)
applyUrlStringDirect external application URL (details on)🟢 High (92%)

🏢 Employer details

FieldTypeDescriptionCoverage
companyStringLegal or operating employer name🟢 High (100%)
companyRatingNumberEmployer review star rating (1.0–5.0 scale)🟡 Conditional (70%)
companyLogoStringCDN URL to the corporate logo image (details on)🟡 Conditional (75%)
companyPageUrlStringSimplyHired corporate overview profile link (details on)🟡 Conditional (80%)

📍 Location & workplace arrangement

FieldTypeDescriptionCoverage
locationStringFormatted display location string🟢 High (100%)
cityStringMunicipality jurisdiction (details on)🟢 High (94%)
stateStringTwo-letter state postal abbreviation (details on)🟢 High (94%)
latitude / longitudeNumberGeocoded geographic coordinates (details on)🟢 High (90%)
workSettingsArrayWorkplace tags (Remote, Hybrid, In-Office)🟢 High (90%)

💰 Compensation & qualifications

FieldTypeDescriptionCoverage
salaryTextStringVerbatim compensation string as published🟡 Conditional (75%)
salaryMinNumberParsed minimum compensation numeric value (details on)🟡 Conditional (55%)
salaryMaxNumberParsed maximum compensation numeric value (details on)🟡 Conditional (55%)
salaryPeriodStringPay period frequency (YEAR, HOUR, MONTH) (details on)🟡 Conditional (55%)
salaryCurrencyStringCurrency standard (USD, CAD) (details on)🟡 Conditional (55%)
skillsArrayRequired or preferred technology and professional skills🟢 High (95%)
benefitsArrayDisclosed employee benefits (healthcare, 401k, PTO)🟢 High (85%)
qualificationsArrayExplicit prerequisites and experience thresholds🟢 High (80%)

💡 Search strategies & best practices

  1. High-Speed Aggregation First: When collecting broad talent market data, run with includeDetails: false. The listing view provides salary text, company ratings, and skill tags at high throughput (~500 records/minute).
  2. Selective Detail Enrichment: Identify high-priority job openings from the listing run, then re-execute specifically for those jobKey values with includeDetails: true to capture full descriptions and apply URLs.
  3. Multi-Query Keyword Sweeps: Group related titles together (e.g. ["Nurse Practitioner", "Family Nurse Practitioner", "ARNP"]) to capture total market inventory. The actor automatically discards duplicate postings.
  4. Scheduled Automated Ingestion: Set up an Apify Schedule (e.g. daily at 07:00 AM) to capture fresh vacancies published over the last 24 hours, feeding new records directly into your sourcing CRM.

⚙️ How to use

  1. Enter target job keywords in searchQueries (e.g. ["Product Manager"]) and define a location.
  2. Choose whether to enable includeDetails based on your project requirements.
  3. Set maxItems and keep maxPagesPerSearch: 0 for complete cursor-based pagination.
  4. Click Start in the Apify Console and monitor live event logs.
  5. Export your structured job dataset in JSON, CSV, or Excel formats.

💻 API & Integration examples

cURL

curl -X POST "https://api.apify.com/v2/acts/haketa~simplyhired-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["Data Scientist"],
"location": "Boston, MA",
"includeDetails": false,
"maxItems": 100,
"maxPagesPerSearch": 0
}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchQueries": ["DevOps Engineer"],
"location": "Seattle, WA",
"includeDetails": True,
"maxItems": 150
}
run = client.actor("haketa/simplyhired-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item.get('title')} at {item.get('company')} — Salary: {item.get('salaryText', 'Not Listed')}")

Node.js / JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const runInput = {
searchQueries: ['Software Engineer'],
location: 'New York, NY',
maxItems: 50,
includeDetails: false,
};
const run = await client.actor('haketa/simplyhired-scraper').call(runInput);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} SimplyHired job records.`);

Webhook & Workflow Automation

Connect this scraper directly to your workflow tools:

  • Make (Integromat): Create a scenario triggered by an Apify "Run Succeeded" webhook. Parse the resulting dataset and automatically append records to Google Sheets, Notion, or Airtable.
  • Zapier: Connect the Apify app, listen for dataset item creation, and send Slack notifications whenever a target company posts a new executive technology role.
  • AWS S3 / Google Cloud Storage: Use Apify Integrations to automatically sync every completed dataset to cloud storage buckets for enterprise data lakes.

❓ Frequently Asked Questions

How does deep pagination function on SimplyHired? SimplyHired delivers listings in ~20-job pages navigated via sequential cursor tokens. When maxPagesPerSearch is set to 0, the scraper automatically traverses every available cursor until maxItems is satisfied or all matching positions are retrieved.

Why are structured salary fields null on some records? Compensation disclosures on SimplyHired depend on employer transparency. When an employer publishes an explicit salary or hourly wage, the scraper captures the text and parses it into salaryMin and salaryMax. Postings without salary remain null for structured fields.

What proxy settings are recommended? The scraper features automated proxy routing that utilizes datacenter IPs first, automatically rotating to US residential proxies when necessary. Retaining the default { "useApifyProxy": true } is strongly recommended.

Can I run scheduled sweeps for fresh postings? Yes. You can configure an Apify Schedule (e.g., daily at 08:00 UTC) to build an automated pipeline capturing new vacancies every morning without duplicates.

What is the difference between listing summary and full detail mode? In listing summary mode (includeDetails: false), the scraper extracts metadata visible on search result cards (title, company, display location, salary text, skills snippet, posted date) at very high speeds (~500 items/minute). In full detail mode (includeDetails: true), the actor concurrently visits each posting's dedicated view to extract full HTML-stripped descriptions, normalized job titles, company profile links, and direct application URLs.

Can I export data directly to Excel or CSV? Yes. From the Apify Dataset tab, you can download all extracted fields in CSV, Excel (XLSX), JSON, XML, or HTML table formats with a single click.



📋 Changelog

v1.2 (2026-11)

  • Deep Cursor Pagination Unlock: Unlocked 1,000+ continuous result pagination with configurable maxPagesPerSearch (0 = auto/unlimited) and removal of legacy page bounds.
  • Fast Prefill Optimization: Streamlined default execution parameters ensuring sample test runs complete in under 30 seconds.
  • Schema Hardening: Standardized integer limits to minimum 0 and cleansed dataset schemas for strict specification compliance.
  • Deduplication Safeguards: Hardened jobKey verification preventing duplicate records across overlapping multi-keyword search queries.

v1.1 (2026-10)

  • Enhanced structured salary parser extracting annual and hourly compensation objects.
  • Added support for normalized canonical job titles in detail enrichment mode.

v1.0 (2026-09)

  • Initial production release supporting multi-keyword discovery, location filtering, and structured JSON/CSV exports.