Scrape SimplyHired Job Listings Without a Public API

SimplyHired data scraping, SimplyHired job search, SimplyHired data extraction, SimplyHired automation, website scraping, web scraping, job data, labor market data, employment data, recruiting, staffing

SimplyHired Scraper
Solutions

How the Data Reaches You

Output is CSV, JSON, XLSX or a REST endpoint your systems poll. Files land where you already work - Amazon S3, Google Cloud Storage, SFTP or a private download link - and the schema is agreed before the first run, so nothing needs remapping later.

Scope is set by keyword and location lists, by named employers, or by the browse hubs for titles, cities, companies and salaries. A bulk backfill across the United States can run first, with a lighter recurring crawl on top: daily for a live recruiting feed, weekly or monthly for benchmarking. Each run ships the full snapshot plus a delta of new, changed and disappeared job keys, and country marketplaces on their own ccTLDs are normalised into one schema so a US row and a UK row line up.

What a SimplyHired Record Contains

A delivered row merges what the results card shows with what only the detail page carries. Native SimplyHired labels are kept, so the output maps back to what you see on screen.

  • Job key - the base64 string taken from the /job/ path, used as the primary key in every run and every delta file.
  • Job title, Company and Location (City, State), plus the Remote or Hybrid marker where a listing carries one.
  • Company rating - the star figure printed next to the employer name, which SimplyHired draws from Indeed reviews.
  • Salary - free text in mixed shapes such as "$70,000 - $146,000 a year" or "From $65,000 a year", alongside hourly rates. We parse minimum, maximum, period and currency, and flag the open-ended forms. A large share of listings show no pay at all, and that absence is recorded rather than guessed.
  • Job Type - Full-time, Contract, Temporary, Part-time or Internship - together with Shift and schedule strings such as "8 hour shift".
  • Date posted - cards show relative strings like "17h", "1d", "4d" or "13d", and many show nothing. We resolve these into absolute timestamps anchored to the capture moment and mark rows where the site supplied no date.
  • Job Details, Qualifications and Benefits - the structured blocks that sit above the description body.
  • Full Job Description - the complete employer text extracted in full, delivered as plain text or with the original markup preserved.
  • Quick Apply or the outbound apply destination, including Indeed Apply targets and third-party recruiting systems.
  • Sponsored - whether the placement was paid at the moment of capture.
  • Crawl metadata - the source query, the location value, the page index and the exact URL each row came from.

What a SimplyHired Record Contains
What Only a Scheduled Crawl Reveals

What Only a Scheduled Crawl Reveals

A single export tells you what SimplyHired displayed on one afternoon. The signals worth paying for appear when the same searches are walked again on a schedule.

Freshness has to be measured rather than read. The only sitemap declared in robots.txt is the viewjob sitemap index, and its child sitemaps carry a location element and nothing else - no lastmod, no changefreq, no priority. Nothing in those files says when a listing appeared or last changed, so first-seen and last-seen dates exist only if someone crawled and compared.

Disappearance carries meaning. When a job key stops resolving, or drops out of the searches that used to return it, the role was filled, paused or expired. The span between first-seen and last-seen is the closest available proxy for time to fill, and it is only available to whoever was watching.

Reposts are the other half of the picture. Employers relist the same vacancy and SimplyHired issues a fresh key, so the URL alone will never tell you it is the same job. We match on employer, title, location and description body to link repost chains, and keep both the original key and the chain identifier so you can count either way.

Salary edits, changes of job type, and the rotation of Sponsored placements all show up as diffs between runs. Every delivery can carry the full snapshot plus a change file of new, updated and vanished keys.

SimplyHired Seen From the Crawler Side

SimplyHired is a job aggregator operated by Recruit Holdings, the same group behind Indeed and Glassdoor. It republishes employer and partner listings on simplyhired.com and charges through a pay-per-contact job posting model, so inventory turns over constantly instead of sitting still.

Every listing lives at https://www.simplyhired.com/job/<key>. That key is a 54-character URL-safe base64 string which decodes to exactly 40 raw bytes. There is no numeric ID and no title slug anywhere in the path, so the key is the only stable handle for deduplication and for following a posting across runs.

Search runs at /search?q=<keywords>&l=<city,+state>. The location parameter accepts a city and state pair, a ZIP code, a state name, or the literal value Remote - a remote analyst query returned a header reading "1280 Remote data analyst jobs" on a recent crawl. A results page holds exactly 20 job cards. Paging is cursor-based: each next-page link carries a cursor parameter whose decoded header encodes the page size of 20, the page index and the row offset, followed by an opaque payload that grows with depth. Cursors cannot be constructed by hand, so pages must be walked in order from the first. Legacy page-number parameters are ignored - requesting pn=5 still returns page one with pagination starting at 1.

Listings and full descriptions are readable without an account. Job alerts are gated - the results page offers "Sign In or Sign Up to Create Alert" - and saved jobs, profile and Quick Apply run on the shared Recruit identity used across Indeed and Glassdoor.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Commercial Uses for SimplyHired Job Data

Recruiters and staffing firms use a SimplyHired job feed to see which employers are hiring in a metro before making a call, and which roles have stayed open long enough to justify a candidate submission. Because SimplyHired bills employers per contact rather than per posting, the mix of advertisers here differs from a direct-to-ATS board, and that difference is a signal in itself.

Competitor hiring intelligence is the second common brief. Pulling every posting attached to a named employer through the company hubs shows headcount direction, which functions are expanding, which cities are opening, and the seniority mix behind the growth. Sponsored placements mark where a rival is paying to fill a seat quickly.

Compensation teams benchmark offers by title, metro and job type using the parsed pay ranges, with the unpriced listings kept visible so the sample is not silently biased upward. Workforce researchers and economic development groups measure how much of a local market is advertised as remote or hybrid by running the same queries against the Remote location value.

Job board operators and recruiting software vendors take the feed as raw supply - to seed a niche vertical board, or to enrich thin listings with descriptions, qualifications and benefits.

Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

How Artificial Intelligence Is Used In Web Scraping

How Artificial Intelligence Is Used In Web Scraping

Leveraging advances in technology, the AI-powered web scraper has skyrocketed in demand and is helping to expand capabilities by automating tedious daily tasks and speeding up data collection from thousands of websites several times over.

What is Web Scraping and What is it Used For?

What is Web Scraping and What is it Used For?

Web scraping is a method of obtaining web data by extracting it from pages of web resources with the help of a program, that is, in automatic mode. It is used to syntactically convert web pages into more usable forms.

Web Scraping for Machine Learning

Web Scraping for Machine Learning

If you specialize in machine learning, you need to feed large amounts of data to the algorithms. Web scraping is the easiest and the most efficient method of collecting the data from all over the Internet.

scrapeit logo

Working With ScrapeIt

ScrapeIt is a managed scraping agency, not a tool you install. We write the crawler, run it on our own infrastructure, watch it when SimplyHired changes its markup or its paging, and repair it without you filing a ticket. Nobody on your side maintains a Python scraper or a proxy pool.

Job boards are a vertical we run continuously, so cursor chains, relative dates and free-text pay strings are already solved problems in our SimplyHired data extraction work. Send the titles, locations and employers you care about and we will scope the crawl.

FAQ

Does SimplyHired offer a public API for job postings?

No. SimplyHired closed its Partner Program, hosted Job Sites, Job Widgets, API and data feeds on 26 June 2016, around the Recruit Holdings acquisition, and has not reopened them. The old endpoint path /c/jobs-api/ now returns 404 and is disallowed in robots.txt. Anything sold today as a SimplyHired API is a scraper with an API in front of it, which is precisely what we build and operate on your behalf.

Why does SimplyHired return a 403 when I try to scrape it?

Two layers overlap. The site runs behind Cloudflare - responses carry Server: cloudflare, a CF-RAY header and a __cf_bm bot-management cookie scoped to simplyhired.com - and on top of that Indeed applies a regional block. Requests from restricted regions receive HTTP 403 with the plain-text body "Indeed does not provide services in your region.", so collecting the US market requires US egress. We do not defeat protection systems. We collect only publicly visible pages, run at a measured request rate from the correct region, and honour the robots.txt disallow list, which covers paths including /a/job-details/, /a/job-alerts/, /serp, /account/, /job-id/, /job-post/ and /c/jobs-api/.

How many jobs can one SimplyHired search actually return?

Fewer than the header implies. A results page holds exactly 20 cards, and although the header states a total for the query - a Dallas accountant search read "1526 accountant jobs in Dallas, TX" on a recent crawl - that full set is not addressable by URL. Paging is cursor-based, each cursor is an opaque blob that grows with depth and cannot be synthesised, and legacy page-number parameters are ignored. Coverage therefore comes from breadth: many query and location combinations, the Browse Jobs by Title, Browse Jobs by Cities, Browse Jobs by Companies and Browse Jobs by Salaries hubs, and the viewjob sitemap index, all deduplicated on the job key.

Can you collect SimplyHired salary estimates and company ratings as well?

Yes, as separate datasets keyed to the same titles and employers. Salary pages sit at /salaries/search and show an average figure carrying an explicit disclaimer that the numbers are "approximations based upon third party submissions" - estimates, not employer-reported pay, and we deliver them labelled that way. Employer hubs at /browse-jobs/companies/ plus the URL-encoded company name carry a rating labelled verbatim as an average of a stated number of reviews on Indeed, broken into Work-Life Balance, Pay and Benefits, Job Security and Advancement, Management and Culture, plus a Salary Satisfaction percentage.

In what format do I get the data, and can you cover simplyhired.ca or simplyhired.co.uk?

CSV, JSON, XLSX or an API endpoint, refreshed on the schedule your use case needs - daily for a live feed, weekly or monthly for benchmarking. On a recent crawl the homepage country switcher exposed 23 localised marketplaces on separate ccTLDs, among them simplyhired.ca, simplyhired.co.uk, simplyhired.co.in, simplyhired.com.au, simplyhired.de, simplyhired.fr and simplyhired.ie. They sit behind the same Cloudflare and regional-block setup, and language, date wording and salary formatting differ per market, so each country gets its own egress and its own normalisation rules before the rows merge into one schema. Pricing follows the number of queries, the depth per query and the refresh interval, so send the scope and we will quote it.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582