Monster Job Scraper
Pricing
from $0.50 / 1,000 results
Monster Job Scraper
[💰 $0.5 / 1K] Extract Monster.com job postings at scale — title, company, salary range, location with verified geo-coordinates, apply links, and full job descriptions. Built for recruiters, market analysts, and ATS/CRM integrations.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull job postings from Monster.com at scale — titles, companies, salary ranges, street-level coordinates, apply links, and complete job descriptions. Built for recruiters, talent-market analysts, and ATS/CRM teams who need a clean, structured feed of live US job listings without babysitting a scraper.
This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Monster.com, Monster Worldwide, or their operators in any way. All trademarks belong to their respective owners.
Paste a Monster search URL — or just type a job title and a city — and get every matching posting as structured JSON, CSV, or Excel.
Why This Scraper?
- 32 structured fields per job, plus an
additionalAttributescatch-all carrying company size, founding date, employer photos, occupation codes, and EEO reporting flags. - Street-level coordinates on 98% of postings — latitude and longitude as real numbers. Jobs with no genuine address are left blank instead of being stamped with a country-centre placeholder, so you can map results without cleaning out fake pins first.
- Full job descriptions on every single record — delivered as both original HTML and ready-to-use plain text. No second request, no per-description surcharge.
- Employer-stated salary only —
salaryMin,salaryMax,salaryCurrencyandsalaryUnitas separate typed fields, plus a formatted$55 - $64 per hourstring. These are the figures the employer published, never an algorithmic estimate presented as fact. - Remote roles identified reliably — including the ones Monster's own data leaves unmarked. In a 150-job sample the site's raw remote flag caught 3 genuinely-remote postings; this actor catches 53.
- Canonical job titles and normalized company names — group "SDET", "Software Developer in Test" and "Software Design Engineer in Test" together, and reconcile employer name variants across postings.
- Direct apply links on 90% of jobs, each labelled with its route (
OFFSITEto the employer's own system, orONSITEfor Monster's own apply flow) so you know what a candidate will hit. - Complete location breakdown — city, state, ZIP (76% of postings) and country as separate
fields, plus a pre-joined
"Boston, MA"display string. - Nationwide US coverage — search any city, ZIP code, or the entire country, with a configurable radius, up to 550 jobs per search.
Use Cases
Recruitment & Talent Sourcing
- Track competitor job postings by company, title, and location in near real time
- Build candidate pipelines around roles hiring right now in a target metro
- Spot which employers are expanding into a new city before it becomes public knowledge
Compensation & Market Research
- Benchmark employer-published salary ranges by role, seniority, and region
- Track pay movement for a job family across quarters
- Compare hourly versus salaried compensation structures within an industry
Job Board & Aggregator Feeds
- Populate a niche job board with fresh, structured listings and working apply links
- Enrich an existing listing database with coordinates, ZIPs, and normalized titles
- Deduplicate reposted listings using stable job IDs and canonical titles
Labour Market Analytics
- Map hiring density geographically using per-posting coordinates
- Measure remote versus on-site hiring mix by industry and region
- Monitor posting volume and freshness as a demand indicator
CRM & ATS Integration
- Sync live openings into Salesforce, HubSpot, or an internal ATS
- Trigger alerts when a tracked company posts a role matching your criteria
- Feed structured listings into internal matching or recommendation systems
Getting Started
Simplest run — type a title and a city:
{"keyword": "registered nurse","location": "Dallas, TX"}
Paste a search URL straight from your browser:
{"searchUrls": ["https://www.monster.com/jobs/search?q=software+developer&where=Boston%2C+MA&rad=30"],"maxResults": 200}
Widen the radius around a metro:
{"keyword": "warehouse associate","location": "Atlanta, GA","radiusMiles": 75,"maxResults": 300}
Several searches at once, collecting everything each one offers:
{"searchUrls": ["https://www.monster.com/jobs/search?q=data+analyst&where=Chicago%2C+IL","https://www.monster.com/jobs/search?q=data+analyst&where=Austin%2C+TX","https://www.monster.com/jobs/search?q=data+analyst&where=Denver%2C+CO"],"maxResults": 0}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | — | Monster.com search URLs copied from your address bar. Each is run as a separate search. |
keyword | string | — | Job title or search term, e.g. python developer. Use instead of a URL if you prefer. |
location | string | — | City and state, ZIP code, or United States for a nationwide search. |
radiusMiles | integer | 30 | How far from the location to search. Ignored for nationwide searches. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum jobs per search. Set to 0 for everything the search returns, up to 550. |
proxyConfiguration | object | Apify Proxy | Proxy settings. The default works for virtually every run. |
Output
Every job is one row. Example record (description shortened for readability):
{"jobId": "13274d11-b37e-4ae0-8464-3d2370bbc353","url": "https://www.monster.com/job-openings/software-developer-in-test-sdet-boston-ma--13274d11-b37e-4ae0-8464-3d2370bbc353","title": "Software Developer in Test (SDET)","normalizedTitle": "SDET (Software Design Engineer in Test)","company": "Kforce Inc.","normalizedCompany": "Kforce Inc.","companyLogo": "https://media.newjobs.com/clu/xkfo/xkfocx/branding/81354/Kforce-logo.png","industry": "Financial Services","location": "Boston, MA","city": "Boston","region": "MA","postalCode": "02210","country": "US","latitude": 42.34656,"longitude": -71.034458,"remote": false,"salaryMin": 55.0,"salaryMax": 64.0,"salaryCurrency": "USD","salaryUnit": "hourly","salaryText": "$55 - $64 per hour","employmentType": "Full-time","descriptionText": "Kforce has a client that is seeking a Software Developer in Test (SDET) in Boston, MA...","applyType": "OFFSITE","applyUrl": "http://www.kforce.com/Jobs/3196~AQG~2181902T1~99/ApplyOnline/","datePosted": "2026-07-13T20:24:25.539Z","dateRecency": "13 days ago","status": "ACTIVE","promoted": true,"scrapedAt": "2026-07-26T15:02:11.480Z","additionalAttributes": {"companySize": "1,000 to 1,499 employees","foundingDate": "1962","occupationCodes": ["1500137001001"],"provider": "kforceftpin"}}
Core Fields
| Field | Type | Description |
|---|---|---|
jobId | string | Stable unique identifier. Use this to deduplicate across runs. |
url | string | Canonical Monster.com listing URL. |
title | string | Job title exactly as posted. |
normalizedTitle | string | Canonical title for grouping equivalent roles. |
status | string | Listing status, e.g. ACTIVE. |
promoted | boolean | Whether the employer paid to promote this listing. |
scrapedAt | string | ISO timestamp of extraction. |
Company
| Field | Type | Description |
|---|---|---|
company | string | Hiring company name as posted. |
normalizedCompany | string | Reconciled company name for grouping across postings. |
companyLogo | string | Employer logo image URL. |
companyDescription | string | Employer profile text, plain text. |
industry | string | Industry classification, e.g. Financial Services. |
Location
| Field | Type | Description |
|---|---|---|
location | string | Pre-joined display string, e.g. Boston, MA. |
city | string | City name. |
region | string | State or region code. |
postalCode | string | ZIP code. |
country | string | Country code. |
latitude | number | Latitude. Blank when the posting has no genuine address. |
longitude | number | Longitude. Blank when the posting has no genuine address. |
remote | boolean | Whether the role is remote. |
Compensation & Terms
| Field | Type | Description |
|---|---|---|
salaryMin | number | Lower bound of the published range. |
salaryMax | number | Upper bound of the published range. |
salaryCurrency | string | Currency code, e.g. USD. |
salaryUnit | string | Pay period, e.g. hourly, yearly. |
salaryText | string | Formatted display string, e.g. $55 - $64 per hour. |
employmentType | string | e.g. Full-time, Contractor, when the employer states it. |
Description & Application
| Field | Type | Description |
|---|---|---|
description | string | Full job description as original HTML. |
descriptionText | string | Same description flattened to readable plain text. |
applyType | string | OFFSITE (employer's own system) or ONSITE (Monster's apply flow). |
applyUrl | string | Direct application link. Blank for ONSITE listings. |
datePosted | string | ISO 8601 posting timestamp. |
dateRecency | string | Human-readable age, e.g. 13 days ago. |
additionalAttributes | object | Long-tail extras: company size, founding date, employer photos and videos, occupation codes, provider, street address, EEO reporting flags. |
Tips for Best Results
- Monster pages through 550 results per search — split by city to get past it. A search
matching 250,000 jobs still yields 550. Splitting by location is the fix, and it is clean: six
metro areas searched at a 30-mile radius returned 300 jobs with zero duplicates between any
pair of cities. Add one entry per city to
searchUrlsand run them together. Keep city centres at least twice your radius apart so the circles do not touch. - Set
maxResultsto0only on narrow searches. On a broad one you will pay for 550 rows and still be told it was truncated. Narrow first, then uncap. - Use ZIP codes for tight geographic targeting. A ZIP plus a small
radiusMilesis far more precise than a city name, which Monster expands to the whole metro area. - Deduplicate on
jobIdwhen running overlapping searches. Staffing agencies repost the same role across several cities, and Monster's relevance ordering repeats listings between pages. Within a single run this is handled for you; across runs, key onjobId. - Salary is present on roughly 20–35% of postings, and that is the honest ceiling. Most US employers simply do not publish pay on Monster. This actor reports only what the employer actually stated, so a blank means "not disclosed" rather than "we guessed".
normalizedTitlebeatstitlefor analysis. Raw titles carry employer-specific noise ("Sr. SW Developer | Investment Management | Hybrid"); the normalized field collapses them into comparable roles.- For monitoring, re-run on a schedule and diff on
jobId.datePostedanddateRecencymake it easy to filter to genuinely new listings rather than reprocessing the whole result set.
Pricing
$0.50 per 1,000 results.
| Results | Cost |
|---|---|
| 100 | $0.05 |
| 1,000 | $0.50 |
| 10,000 | $5.00 |
| 100,000 | $50.00 |
A "result" is any job row in the output dataset. Platform fees (compute, storage) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This scraper collects publicly available job listings. You are responsible for using the data in compliance with Monster.com's Terms of Service, applicable data protection law (including GDPR and CCPA where relevant), and employment and fair-hiring regulations in your jurisdiction.
Job postings may contain personal data such as recruiter contact details. Handle any personal data lawfully: collect only what you need, store it securely, and honour deletion requests. Do not use this data for discriminatory screening or for unsolicited bulk contact where that is restricted by law.
This is an unofficial scraper and is not affiliated with, endorsed by, or connected to Monster.com or Monster Worldwide. All trademarks and content belong to their respective owners.