Monster Jobs Scraper avatar

Monster Jobs Scraper

Pricing

from $5.00 / 1,000 job founds

Go to Apify Store
Monster Jobs Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

3

Monthly active users

3 days ago

Last modified

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.

FieldTypeDefaultNotes
searchQuerystringsoftware engineerMonster keyword or role name.
locationstring""City, state, area, or Remote.
maxResultsinteger50Maximum number of jobs returned in one run, from 1 to 1000.
enrichDetailsbooleantrueFetches each job's Monster detail page for the full description and extra fields.
startUrlsarrayemptyMonster search URLs or Monster job-detail URLs.
maxConcurrencyinteger8Parallel request count for run tuning, from 1 to 20.
debugDumpHtmlbooleanfalseSaves raw HTML for troubleshooting empty pages under DEBUG- keys.
proxyConfigurationobjectresidential by defaultProxy 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.

FieldTypeDescription
jobIdstring or nullMonster job identifier parsed from page data or the job URL.
titlestring or nullJob title shown on Monster.
companystring or nullHiring company or employer name.
companyUrlstring or nullCompany page or profile link when available.
locationstring or nullHuman-readable location text.
citystring or nullParsed city when Monster exposes structured location.
statestring or nullParsed state or region when available.
countrystring or nullCountry code or name when available.
isRemoteboolean or nullRemote indicator from the listing.
salaryTextstring or nullRaw salary text as shown on Monster.
salaryMinnumber or nullParsed lower salary bound when available.
salaryMaxnumber or nullParsed upper salary bound when available.
salaryCurrencystring or nullSalary currency code when available.
salaryPeriodstring or nullPay period such as year, hour, or month.
employmentTypestring or nullEmployment type such as Full-Time or Contract.
postedAtstring or nullPosting date in ISO 8601 when parseable.
postedAtTextstring or nullRaw posting recency text.
descriptionstring or nullPlain-text job description.
jobUrlstring or nullCanonical Monster.com URL for the job posting.
applyUrlstring or nullDirect apply URL when Monster exposes one, otherwise the job URL.
sourcestring or nullAlways monster.com.
scrapedAtstring or nullISO 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, and location identify each listing.
  • salaryText, salaryMin, salaryMax, salaryCurrency, and salaryPeriod support compensation review.
  • postedAt and postedAtText help with recency checks.
  • jobUrl and applyUrl provide source and action links.
  • description expands when Fetch job detail pages is enabled.

Provenance and scope:

  • Records come from Monster.com search or Monster job-detail pages.
  • source is always monster.com.
  • scrapedAt shows when each record was collected.
  • startUrls takes precedence over searchQuery and location when both are supplied.

Pagination and cost guidance:

  • Use maxResults to cap returned jobs and billed Job found events.
  • maxConcurrency adjusts request parallelism.
  • Keep enrichDetails on 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, or software engineer.
  • Add location when your workflow is geography-specific.
  • Use startUrls when you already have Monster search results or a specific job page to process.
  • Keep enrichDetails enabled 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 maxResults aligned 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.