SimplyHired Jobs Scraper — 9 Fields, JSON Route, No Login avatar

SimplyHired Jobs Scraper — 9 Fields, JSON Route, No Login

Pricing

from $0.60 / 1,000 jobs

Go to Apify Store
SimplyHired Jobs Scraper — 9 Fields, JSON Route, No Login

SimplyHired Jobs Scraper — 9 Fields, JSON Route, No Login

Scrape live job listings from SimplyHired search results. Titles, companies, locations, salaries, job types, descriptions and apply URLs. No login, no anti-bot, pay per job. Use it as an MCP server in Claude, ChatGPT & AI agents.

Pricing

from $0.60 / 1,000 jobs

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

💼 SimplyHired Scraper: Jobs, Salaries & Descriptions

Overview

SimplyHired Scraper turns a job title and location into a clean, structured list of live US job postings from simplyhired.com: title, company, location, salary (when disclosed), job type, posted date, a description snippet, and the direct apply URL. No login, no API key, no anti bot fight. Give it a keyword like "data analyst" and a city like "Chicago" and it returns ready to use job records for your job board, recruiting feed, or market research pipeline.

It's a pay as you go alternative to building your own SimplyHired parser. You pay only for jobs actually returned. There is no free tier.

✅ No login required | ✅ No API key | ✅ Pay only for jobs returned | ✅ MCP ready for AI agents

Features

Keyword + location search. Any job title, any US city, state, or zip code. Real salary data. Pulls the salary range shown on the listing whenever the employer discloses it. Job type detection. Full time, part time, contract, and other employment types where shown. CRM/ATS ready export. Clean JSON, CSV, or Excel for pipelines, dashboards, and recruiting tools. Fast pagination. Follows SimplyHired's own result pages until your requested count is reached.

How it works

SimplyHired's search results pages are server rendered: the full list of job cards is embedded directly in the page's HTML as structured JSON, the same data React uses to hydrate the page in the browser. That means the actor reads the page with a single HTTP request, pulls that embedded JSON out, and returns clean fields straight from SimplyHired's own data, no HTML scraping, no headless browser, no login wall to fight.

When more jobs are requested than fit on one page, it follows SimplyHired's own pagination tokens to fetch additional pages until it hits your requested count or runs out of matching jobs.

🧾 Input configuration

{
"query": "data analyst",
"location": "Chicago",
"maxResults": 30
}
FieldDescription
queryJob title or keyword to search for. Required.
locationCity, state, or zip code to search in. Leave blank to search all locations.
maxResultsMaximum number of jobs to return. Default 30.

📤 Output format

{
"title": "Healthcare Data Analyst - Chicago",
"company": "Midwest Express Clinic",
"location": "Chicago, IL",
"salary": "$80,000 - $100,000 a year",
"job_type": "Full-time",
"posted_date": "2026-04-24T15:10:47.631Z",
"description_snippet": "Become an EMR super user supporting clinical teams. Support inventory and cost optimization. Partner directly with clinical, finance, and operations leaders.",
"apply_url": "https://www.simplyhired.com/job/-e97-pBJGmo8rtoCqrfruQ79gqBQJzkNJ1ybbFsgkMmnPpN0h16Tqw",
"scraped_at": "2026-07-14T11:30:00.000Z"
}

Every job record contains these fields:

FieldDescription
💼 titleJob title
🏢 companyHiring company name
📍 locationJob location
💰 salarySalary or salary range, when disclosed by the employer
🕒 job_typeEmployment type(s), e.g. Full time, Contract
📅 posted_dateISO timestamp of when the job was posted
📝 description_snippetShort snippet of the job description shown in search results
🔗 apply_urlDirect URL to the job's SimplyHired listing page
🧭 scraped_atISO timestamp of when this record was captured

💼 Use cases

Job board aggregation Pull fresh US listings for a niche job board or newsletter without building your own crawler. Combine with other job scrapers in this collection to cover multiple sources in one feed.

Recruiting and sourcing Track which companies are hiring for specific roles in specific cities right now. Feed live openings into a sourcing tool or outreach sequence.

Market and salary research Track posted salary ranges for a role across cities over time. Benchmark how many companies are hiring for a given title this month versus last.

Lead generation for B2B sales Companies posting a burst of job openings are a classic buying signal, hiring is spending. Turn active job posts into a list of companies to prospect.

🚀 Getting started

  1. Open the actor and enter a job title or keyword, e.g. "software engineer" or "data analyst".
  2. Add a location (city, state, or zip code) to narrow the search, or leave it blank for nationwide results.
  3. Set max results (default 30) to control volume and cost.
  4. Click Start and let the actor paginate through SimplyHired's search results automatically.
  5. Download the dataset as JSON, CSV, or Excel, or pull it via API/MCP.

FAQ

Does this scrape the full job description page? No. It returns the description snippet shown on the search results page, along with the direct apply URL so you can visit the full posting when needed. This keeps the actor fast and keeps cost per job low.

Does it require a login or API key? No. SimplyHired's search results are public and server rendered, no account, no cookies, no API key.

How much does it cost? Pay per event: $0.001 per job, with no free tier. You're charged only for jobs actually delivered, never for empty or blocked searches.

What happens if my search has no results? The actor returns a summary record showing zero jobs found and you are not charged anything for that run.

Can I use it inside an AI agent? Yes. It's exposed as an MCP tool. See below.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/simplyhired-scraper

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/simplyhired-scraper').call({
query: 'data analyst',
location: 'Chicago',
maxResults: 30,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

🛠️ Complete your hiring signal pipeline

Found the jobs. Now pair them with the rest of the suite:

Typical flow: simplyhired-scraper and ats-jobs surface who is hiring for what, B2B Leads Finder turns those companies into named contacts to reach out to.

Questions or need a custom field set? Reach out through the Apify profile.