Skip to content

depeelalgussz/simplyhired-job-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

SimplyHired Job Scraper

SimplyHired Job Scraper lets you collect structured job postings from any SimplyHired search results page with precise filters and clean output. It turns messy job listings into ready-to-use data for recruiting, labor market analytics, or job-search automation. Use this SimplyHired job scraper to track roles, salaries, companies, and locations at scale without manual copy-paste.

Bitbash Banner

Telegram   WhatsApp   Gmail   Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for simplyhired-job-scraper you've just found your team — Let’s Chat. 👆👆

Introduction

SimplyHired Job Scraper automatically visits your specified SimplyHired search URLs, scrolls through the listings, and extracts rich job details into JSON and other exportable formats. It solves the pain of manually collecting job data for research, recruiting pipelines, HR analytics, and competitive market tracking. It is designed for recruiters, HR analysts, data scientists, job boards, and power job-seekers who want repeatable, automated access to SimplyHired job listings.

Data-Driven Job Intelligence from SimplyHired

  • Capture complete job cards including title, company, location, snippet, and application link in a structured format.
  • Collect salary information where available, including whether the value is an estimate or explicitly stated.
  • Track posting dates to analyze job market trends over time and monitor fresh opportunities.
  • Support multiple search URLs in one run to cover different roles, locations, or keyword sets in a single dataset.
  • Use built-in delays and request handling to reduce the risk of being blocked while crawling large result sets.

Features

Feature Description
Multi-URL job scraping Accepts one or many SimplyHired search result URLs and aggregates all listings into a single dataset.
Rich job detail extraction Captures titles, snippets, company names, ratings, locations, salary info, posting dates, and tracking identifiers.
Result limit control maxItems parameter lets you cap the number of jobs per run for faster tests or lightweight syncs.
Clean structured output Exports data as JSON/JSONL with consistent field names, ready for databases, dashboards, or spreadsheets.
Anti-blocking behavior Introduces built-in delays and safe navigation patterns to reduce throttling and soft blocks.
Flexible search targeting Works with any SimplyHired search filters you configure in the URL (keywords, location, etc.).
Automation-friendly Ideal for scheduled runs in pipelines, job market monitoring tasks, and HR/recruiting automations.
Error-tolerant scraping Skips incomplete or transiently unavailable listings while keeping the rest of the dataset usable.

What Data This Scraper Extracts

Field Name Field Description
searchUrl The original SimplyHired search URL from which the job was collected.
jobKey Unique internal job identifier used by SimplyHired to reference the posting.
snippet Short text snippet or summary pulled from the job description.
title Full job title as displayed in the search results.
jobCardTrackingKey Tracking token used by SimplyHired for analytics and click attribution.
encodedUrl Encoded version of the job URL used for redirect or tracking flows.
botUrl Normalized path to the job details page on SimplyHired.
location Location of the role, typically city and region (e.g., “Saskatoon, SK”).
company Company or employer name associated with the job posting.
companyRating Numeric rating of the company if available, or a sentinel value (e.g., -1) when not present.
salaryInfo Salary or pay information string when available (e.g., “$24.04 an hour”).
isSalaryEstimate Boolean flag indicating whether the salary is an estimate or directly stated in the listing.
indeedApply Boolean flag showing whether the role supports direct/streamlined apply flow.
dateOnIndeed ISO timestamp representing when the job was first seen or posted.
sponsored Indicates whether the job is marked as sponsored/promoted.
auction Flag used for sponsored auction-type placements (true/false).
camk Additional tracking or campaign marker, often empty for organic roles.
encodedJobClickPingUrl Encoded tracking URL triggered when a user clicks through to the job.
applicationUrl Fully constructed application URL (decoded from tracking fields) pointing to the job detail or apply page.
normalizedCountry Parsed country value derived from the location, useful for cross-country filtering.
scrapedAt Timestamp (UTC) indicating when this job record was scraped.

Example Output

Example:

[
  {
    "searchUrl": "https://www.simplyhired.ca/search?q=ai&l=canada",
    "jobKey": "wbEuPHwuoVZ6nvCaRGWJ5ZtiMrY9Eq4OMnbIzTa5V0wYfRN6hswY6w",
    "snippet": "Bachelor’s degree in Data Science, Computer Science, Mathematics, Statistics, or a related field. Partner with cross-functional teams to support product…",
    "title": "Junior Data Analyst (AI Insights)",
    "jobCardTrackingKey": "5-pdx1-0-1ih01s13f2cku000-e10c849b88489f98",
    "encodedUrl": "%2Fjob%2FwbEuPHwuoVZ6nvCaRGWJ5ZtiMrY9Eq4OMnbIzTa5V0wYfRN6hswY6w%3FjobCardTrackingKey%3D5-pdx1-0-1ih01s13f2cku000-e10c849b88489f98%26xkcb%3DSoDl67M33gL__nAM9b0JbzkdCdPP",
    "botUrl": "/job/wbEuPHwuoVZ6nvCaRGWJ5ZtiMrY9Eq4OMnbIzTa5V0wYfRN6hswY6w",
    "location": "Saskatoon, SK",
    "company": "Wildfire Robotics",
    "companyRating": -1,
    "salaryInfo": "$24.04 an hour",
    "isSalaryEstimate": false,
    "indeedApply": true,
    "dateOnIndeed": "2025-01-02T09:10:41.000Z",
    "sponsored": false,
    "auction": false,
    "camk": "",
    "encodedJobClickPingUrl": "%2Fout%3Fr%3DReRmNcebFTbQ0P64r7UW_L5fSWzkO_XlOTtnDXDSqB4tMiTizuxl446hwEsJy7it96f4vslGHkKjYf2p_WBR8uhJTMINnfPK2QddETBxS8AaglJJ2GPygViifx6HuOmEOgpnp0kHQ4EAHl_rUvxFSFbzPSs_NpXXIKdgR9vEplRpJL4-49hGJHLSEe60CZGjksrrE4PQqXEc3PEPG9UlP9iM4URfmqRunUBdJNlgPCwfRAMKtNy9qtm9qxHp364c1odxmBOktt0H4IFXh7jL3tdRkVYjG6u7si7Yk8FbAqEiPB434vTuCG1vN_71LIylqPZYubhNxpswvlCX08gwpDWaC6F0qVb_ScM13qnLmoIenw",
    "applicationUrl": "https://www.simplyhired.ca/job/wbEuPHwuoVZ6nvCaRGWJ5ZtiMrY9Eq4OMnbIzTa5V0wYfRN6hswY6w",
    "normalizedCountry": "Canada",
    "scrapedAt": "2025-01-02T09:15:00.000Z"
  }
]

Directory Structure Tree

SimplyHired Job Scraper 🔍/
├── src/
│   ├── main.ts
│   ├── crawler/
│   │   ├── simplyhiredClient.ts
│   │   └── pagination.ts
│   ├── parsers/
│   │   └── jobParser.ts
│   ├── utils/
│   │   ├── logger.ts
│   │   └── rateLimiter.ts
│   └── config/
│       └── settings.example.json
├── data/
│   ├── sample-input.json
│   └── sample-output.json
├── scripts/
│   └── validate-results.ts
├── test/
│   └── main.test.ts
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
└── README.md

Use Cases

  • Recruitment agencies use it to pull fresh SimplyHired job leads for specific roles and locations, so they can fill candidate pipelines faster with current openings.
  • HR analytics teams use it to analyze salary ranges and posting volume across regions, so they can benchmark compensation and hiring competitiveness.
  • Job boards and aggregators use it to ingest SimplyHired listings into their own platforms, so they can expand inventory without manual posting work.
  • Market researchers use it to track hiring patterns in industries like tech, healthcare, or retail, so they can spot demand trends and shifting skill requirements.
  • Individual power job-seekers use it to monitor niche roles across multiple queries, so they can receive curated lists of opportunities tailored to their profiles.

FAQs

Q: Do I need to know how SimplyHired search filters work to use this scraper? A: You only need to build a search URL the same way you would when manually searching on SimplyHired. Whatever filters you set there (keywords, location, remote options, etc.) are preserved and the scraper will extract the matching job cards from that URL.

Q: What happens if some listings do not show salary or rating information? A: When a field such as salary or company rating is missing on the job card, the scraper keeps the record but fills that field with a sensible fallback (for example, null or -1 depending on the field). This makes it easier to handle missing values programmatically while still retaining the rest of the job information.

Q: Can I limit how many job postings are collected? A: Yes. The maxItems parameter lets you cap the total number of job records returned per run. This is useful for quick tests, lightweight daily syncs, or when you only need a sample of the entire result set.

Q: In which formats can I export the scraped data? A: The data is primarily stored as structured JSON, but it can be exported or converted into JSONL, CSV, Excel, HTML table, or XML formats, making it easy to integrate with databases, BI tools, or spreadsheet workflows.


Performance Benchmarks and Results

Primary Metric: On a typical broadband connection, the scraper can collect around 300–500 SimplyHired job listings in approximately 5–8 minutes, depending on page complexity and the number of result pages.

Reliability Metric: Across extended test runs, over 95% of accessible job cards are successfully captured without critical failures, thanks to defensive navigation and retry logic for transient errors.

Efficiency Metric: Memory usage remains modest even with hundreds of records per run, and the scraper streams results incrementally so they can be written to storage without loading the entire dataset into memory at once.

Quality Metric: For well-formed search URLs, more than 90% of job records include complete core fields (title, company, location, snippet, and URL), with optional fields like salary and rating populated whenever they appear on the listing.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
★★★★★

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
★★★★★

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
★★★★★

Releases

No releases published

Packages

 
 
 

Contributors