Monster Jobs Scraper
Pricing
from $5.00 / 1,000 job founds
Monster Jobs Scraper
Scrape Monster.com jobs with salary, company, location, posted date, and apply URLs. HTTP-only, no login, MCP-ready. Charged $0.005 per returned job.
Pricing
from $5.00 / 1,000 job founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
Monster Jobs Scraper collects public Monster.com job listings and returns one record per job. It accepts a keyword search with an optional location, or pasted Monster search and job-detail URLs. Each record can include title, company, company URL, location details, salary text and parsed salary fields, employment type, posted date, description, job URL, apply URL, source, and scrape timestamp. This Apify Actor is HTTP-only, works without login, and is usable through Apify MCP.
Best fit and connected workflows
Use this Actor when your workflow starts with Monster.com job discovery and you need structured records for recruiting, salary research, talent mapping, or downstream automation.
Common workflow connections include:
- Recruiting pipelines that collect live Monster listings into a dataset for review or enrichment.
- Job-board aggregation workflows that combine Monster records with data from other boards.
- Market research and salary analysis processes that compare title, location, and compensation fields.
- Agent workflows through Apify MCP that need one tool for Monster search or pasted Monster URLs.
When your sourcing brief points to another board or region, these verified related Actors fit the same downstream pattern with their own source coverage:
- Use APEC Jobs Scraper when your search is centered on APEC-focused sourcing and the workflow needs that board's geography.
- Use Ashby Jobs Scraper when roles are published on Ashby-powered company pages and your pipeline follows those employer-hosted listings.
- Use Bayt Jobs Data Scraper for MENA Listings when your workflow targets Bayt.com sourcing in MENA markets and the board coverage matches that brief.
Practical scenario
Maya, a recruiter, starts with the search query registered nurse and the location Texas. The Actor returns records with title, company, location, salaryText, employmentType, postedAt, and applyUrl. Maya reviews the salary range and remote flag, then opens the applyUrl for the roles that match her hiring band and geography.
Input
Use searchQuery and location for keyword-based discovery, or provide Monster URLs in startUrls. When startUrls is set, the search query and location fields are ignored.
| Field | Type | Default | Notes |
|---|---|---|---|
searchQuery | string | software engineer | Monster keyword or role name. |
location | string | "" | City, state, area, or Remote. |
maxResults | integer | 50 | Maximum number of jobs returned in one run, from 1 to 1000. |
enrichDetails | boolean | true | Fetches each job's Monster detail page for the full description and extra fields. |
startUrls | array | empty | Monster search URLs or Monster job-detail URLs. |
maxConcurrency | integer | 8 | Parallel request count for run tuning, from 1 to 20. |
debugDumpHtml | boolean | false | Saves raw HTML for troubleshooting empty pages under DEBUG- keys. |
proxyConfiguration | object | residential by default | Proxy selection for fetching Monster pages. Residential proxies are enabled by default. |
Focused input example
{"searchQuery": "software engineer","location": "New York, NY","maxResults": 25,"enrichDetails": true,"startUrls": [{"url": "https://www.monster.com/jobs/search?q=software%20engineer&where=New%20York%2C%20NY"}],"maxConcurrency": 8,"debugDumpHtml": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Results are written to the default dataset, one record per Monster job. The key-value store also contains a RUN_SUMMARY record with run-level totals, warnings, cost counters, and input context.
| Field | Type | Description |
|---|---|---|
jobId | string or null | Monster job identifier parsed from page data or the job URL. |
title | string or null | Job title shown on Monster. |
company | string or null | Hiring company or employer name. |
companyUrl | string or null | Company page or profile link when available. |
location | string or null | Human-readable location text. |
city | string or null | Parsed city when Monster exposes structured location. |
state | string or null | Parsed state or region when available. |
country | string or null | Country code or name when available. |
isRemote | boolean or null | Remote indicator from the listing. |
salaryText | string or null | Raw salary text as shown on Monster. |
salaryMin | number or null | Parsed lower salary bound when available. |
salaryMax | number or null | Parsed upper salary bound when available. |
salaryCurrency | string or null | Salary currency code when available. |
salaryPeriod | string or null | Pay period such as year, hour, or month. |
employmentType | string or null | Employment type such as Full-Time or Contract. |
postedAt | string or null | Posting date in ISO 8601 when parseable. |
postedAtText | string or null | Raw posting recency text. |
description | string or null | Plain-text job description. |
jobUrl | string or null | Canonical Monster.com URL for the job posting. |
applyUrl | string or null | Direct apply URL when Monster exposes one, otherwise the job URL. |
source | string or null | Always monster.com. |
scrapedAt | string or null | ISO 8601 timestamp when the record was scraped. |
Illustrative output record
{"jobId": "a1b2c3d4-0000-0000-0000-000000000000","title": "Senior Software Engineer","company": "Acme Corp","companyUrl": "https://www.monster.com/company/acme-corp","location": "New York, NY","city": "New York","state": "NY","country": "US","isRemote": false,"salaryText": "$120,000 - $150,000 per year","salaryMin": 120000,"salaryMax": 150000,"salaryCurrency": "USD","salaryPeriod": "year","employmentType": "Full-Time","postedAt": "2026-06-10T00:00:00.000Z","postedAtText": "3 days ago","description": "We are hiring a senior engineer to ...","jobUrl": "https://www.monster.com/job-openings/senior-software-engineer-new-york-ny--a1b2c3d4","applyUrl": "https://www.monster.com/job-openings/senior-software-engineer-new-york-ny--a1b2c3d4/apply","source": "monster.com","scrapedAt": "2026-06-14T12:00:00.000Z"}
How it works
The Actor reads Monster.com search and job pages over HTTP and extracts structured job data from page payloads. It can start from a keyword search or from pasted Monster URLs. When detail enrichment is enabled, the Actor fetches each job detail page to add the full description and extra fields. It returns records to the dataset and a run summary to the key-value store.
Pricing
This Actor uses Apify pay per event pricing plus Apify platform usage. The primary billed event is Job found, which is charged per returned job. When Fetch job detail pages is enabled, enriched jobs also add the Job detail enriched event. There is also a small Actor start event.
The Actor is charged $0.005 per returned job, and the event-based model means your total scales with the number of records the Actor returns. For example, a run that returns fifty jobs bills fifty Job found events, and when detail enrichment is enabled it also bills the matching enrichment events for those records.
For current pricing and any usage-based platform charges, check the live Pricing tab on the Actor page in Apify Console.
Use with AI agents (MCP)
This Actor is exposed through Apify MCP as a tool for Monster job search and Monster job-detail retrieval. The exact Actor identity is khadinakbar/monster-jobs-scraper.
Tool description: retrieve structured Monster.com job listings from keyword searches or Monster URLs, with optional detail-page enrichment for fuller records.
Search Monster.com for "data analyst" roles in Chicago, return up to 10 records, and include salary, posted date, and apply URL so I can shortlist openings for review.
Output interpretation:
title,company, andlocationidentify each listing.salaryText,salaryMin,salaryMax,salaryCurrency, andsalaryPeriodsupport compensation review.postedAtandpostedAtTexthelp with recency checks.jobUrlandapplyUrlprovide source and action links.descriptionexpands whenFetch job detail pagesis enabled.
Provenance and scope:
- Records come from Monster.com search or Monster job-detail pages.
sourceis alwaysmonster.com.scrapedAtshows when each record was collected.startUrlstakes precedence oversearchQueryandlocationwhen both are supplied.
Pagination and cost guidance:
- Use
maxResultsto cap returned jobs and billedJob foundevents. maxConcurrencyadjusts request parallelism.- Keep
enrichDetailson when your workflow needs fuller records; turn it off when listing-level fields are enough for the task.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const actor = client.actor('khadinakbar/monster-jobs-scraper');const run = await actor.call({searchQuery: 'software engineer',location: 'New York, NY',maxResults: 5,enrichDetails: true,proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],},});const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems({ clean: true });console.log(items);
Best results and outcome guidance
- Start with a role or keyword that matches how Monster titles listings, such as
registered nurse,warehouse associate, orsoftware engineer. - Add
locationwhen your workflow is geography-specific. - Use
startUrlswhen you already have Monster search results or a specific job page to process. - Keep
enrichDetailsenabled when salary, description, or apply-link review is part of the workflow. - Use the default residential proxy setup for runs that need consistent access to Monster pages.
- When you want a quick list for screening, keep
maxResultsaligned with the number of jobs your team will review in one pass.
Design note
I found that the output contract separates results in the default dataset from summary in the key-value store, which makes job records and execution metadata easy to consume independently.
FAQ
When should I use searchQuery instead of startUrls?
Use searchQuery for fresh Monster discovery by role. Use startUrls when you already have a Monster search page or job page and want to scrape those URLs directly.
What fields are most useful for hiring workflows?
title, company, location, salaryText, employmentType, postedAt, and applyUrl are the core fields for shortlist review.
How can I get fuller descriptions?
Set enrichDetails to true. The Actor then fetches the Monster detail page for each job and adds the richer description field.
Which inputs work well for location targeting?
location accepts a city, state, area, or Remote, such as New York, NY, Texas, or Remote.
When does the Bayt related Actor fit a workflow?
Use Bayt Jobs Data Scraper for MENA Listings when the sourcing brief shifts to Bayt.com and MENA job coverage, while keeping the same downstream dataset review pattern.
How do the related Actors fit adjacent workflows?
Use the APEC and Ashby Actors when your sourcing workflow shifts to those boards or their covered regions, while keeping the same downstream dataset review pattern.
Responsible use
Use this Actor for publicly available Monster.com job information and handle the resulting data in line with applicable laws, data-protection requirements, and Monster's terms. Keep access patterns aligned with the source site, and review any downstream processing before sharing or storing personal data.