# Monster.com MCP Server (`axlymxp/monster-mcp`) Actor

MCP server for Monster.com jobs (US): an AI agent can search listings by keyword and city, fetch one job with its full description and autocomplete locations. Works from Claude, Cursor or any MCP client; also runs as a one-shot job scraper.

- **URL**: https://apify.com/axlymxp/monster-mcp.md
- **Developed by:** [axly](https://apify.com/axlymxp) (community)
- **Categories:** AI, Agents, Jobs
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 mcp tool calls

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Monster.com MCP Server

Connect an AI assistant to **Monster.com job listings**. This Model Context Protocol (MCP) server gives Claude, Cursor, n8n or your own agent three tools: search jobs by keyword and city, fetch one job with its full description, and autocomplete location names. The same Actor also runs as a normal one-shot job scraper that writes to a dataset.

No Monster login or API key is needed. Each call queries Monster when it is made. Monster's data source here covers **US listings only**.

### Tools

| Tool | What it returns |
| --- | --- |
| `search_monster_jobs(query, location, radius_mi, limit, country)` | Up to 100 jobs per call (relevance order, about 500 per search at most): title, company, city, state, GPS, salary when the employer lists one, remote flag, employment type, posting date, 500-character description excerpt, Monster page URL and apply URL. Empty `location` searches nationwide. |
| `get_monster_job(job_id)` | One job by Monster UUID with the full plain-text description, company profile text, logo and industry. Returns an error if the job has expired. |
| `suggest_monster_locations(prefix, limit, country)` | Location suggestions such as `Austin, TX` to use as the `location` of a search. |

A call that fails or finds nothing returns an `error` field (or an empty list) and is not charged. Only `country: "US"` is accepted.

### Connect it

Start the Actor in **Standby** mode. The server listens at

```
https://<your-username>--monster-mcp.apify.actor/mcp
```

Send your Apify API token as `Authorization: Bearer <token>`. In an MCP client that supports Streamable HTTP servers:

```json
{
    "mcpServers": {
        "monster-jobs": {
            "url": "https://<your-username>--monster-mcp.apify.actor/mcp",
            "headers": { "Authorization": "Bearer <your Apify token>" }
        }
    }
}
```

Then ask things like "find remote data analyst jobs posted this week in Texas and list the salary where given".

### Example tool output (`search_monster_jobs`)

```json
{
    "query": "welder",
    "location": "Austin, TX",
    "count": 1,
    "estimated_total": 61,
    "jobs": [
        {
            "jobId": "2c240561-3bc8-4ba4-85cc-207c0cfb4432",
            "title": "Orbital Welder - 2nd and 3rd Shift",
            "company": "Apparent Technologies Inc",
            "city": "Balcones",
            "state": "TX",
            "remote": false,
            "salaryMin": null,
            "datePosted": "2026-10-09T16:38:09.052Z",
            "dateRecency": "2 days ago",
            "applyType": "OFFSITE",
            "description": "Orbital Welder Second and Third Shift Openings ..."
        }
    ]
}
```

Salary fields are `null` when the employer lists none. Apply URLs are Monster's own redirect links, usually via a job-ad network.

### Classic run (no AI needed)

Press Start with a `query` and the Actor searches once and writes one row per job to the dataset (same fields as above plus `searchQuery` and `searchLocation`). Leave `query` empty and the run ends immediately with a note (the MCP server only runs in Standby mode).

```json
{
    "query": "registered nurse",
    "address": "Austin, TX",
    "radius": 30,
    "maxResults": 100
}
```

| Input | Default | Description |
| --- | --- | --- |
| `query` | empty | Job title or keywords |
| `address` | empty | `City, ST`; empty = nationwide |
| `radius` | 30 | Miles around the location |
| `maxResults` | 50 | Up to 501 jobs (Monster's cap per search) |

For many cities in one run, use the Monster.com Multi-City Job Scraper. Schedule this Actor or call it by API to track a search over time.

### Use cases

- Give a career or recruiting assistant live US job listings.
- Answer salary and demand questions for a role and city from inside a chat.
- Build job-alert workflows in n8n or Make with MCP tool nodes.

### FAQ

**Which markets work?** US only; Monster's app API returns no other country.

**Which clients work?** Any MCP client that supports Streamable HTTP and custom headers.

**Why are some salaries empty?** Monster only has a salary when the employer lists one.

**What if a call returns an error?** Monster occasionally rate-limits or refuses a request; the tool returns an `error` field and you are not charged. Retry in a moment.

**Is it legal?** It returns publicly visible listings. You are responsible for complying with Monster's terms and applicable law.

# Actor input Schema

## `query` (type: `string`):

Job title or keywords, e.g. 'registered nurse'. Set it to run a one-shot search into the dataset. Leave empty and the run does nothing (the MCP server runs in Standby mode instead).

## `address` (type: `string`):

'City, ST', e.g. 'Austin, TX'. Empty = nationwide.

## `radius` (type: `integer`):

Search radius around the location.

## `country` (type: `string`):

Monster's app data only returns US listings, so only US is accepted.

## `maxResults` (type: `integer`):

Maximum number of jobs in a classic run. Monster serves at most 501 results per search.

## Actor input object example

```json
{
  "query": "Software Engineer",
  "address": "New York, NY",
  "radius": 30,
  "country": "US",
  "maxResults": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "Software Engineer",
    "address": "New York, NY",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/monster-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "Software Engineer",
    "address": "New York, NY",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/monster-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "Software Engineer",
  "address": "New York, NY",
  "maxResults": 20
}' |
apify call axlymxp/monster-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,axlymxp/monster-mcp"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bqydJ7BAkQyq3bjV7/builds/R60896vVKCuSV3hpB/openapi.json
