{
  "openapi": "3.0.1",
  "info": {
    "title": "Monster Jobs Scraper - Jobs, Salaries, Companies & Contacts",
    "description": "Scrape Monster.com job listings from search and direct job URLs. Extract full descriptions, salaries, companies, locations, geo data, application details, classifications, compliance fields, and public email addresses.",
    "version": "1.0",
    "x-build-id": "r2fOFS0Qp8ttp9xjk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~monster-com/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-monster-com",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/abotapi~monster-com/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-monster-com",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/abotapi~monster-com/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-monster-com",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Choose structured search mode or URL mode.",
            "default": "search"
          },
          "query": {
            "title": "Keywords",
            "type": "string",
            "description": "Job title, skill, or keyword.",
            "default": "software engineer"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, ZIP code, or country.",
            "default": "New York, NY"
          },
          "address": {
            "title": "Address (alias of Location)",
            "type": "string",
            "description": "Alias of Location. When both are set, Address wins."
          },
          "radius": {
            "title": "Radius in miles",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Search radius around the selected location.",
            "default": 30
          },
          "workplace": {
            "title": "Workplace",
            "enum": [
              "all",
              "remote"
            ],
            "type": "string",
            "description": "Return all workplaces or remote jobs only.",
            "default": "all"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Monster search URLs (/jobs/search?q=&where=&page=&rad=, /jobs/q-<keyword>-jobs[-l-<location>]) or direct /job-openings/<slug>-<id> links. Left unedited, url mode scrapes one example of each shape.",
            "default": [
              "https://www.monster.com/jobs/search?q=software+engineer&where=New+York%2C+NY&page=1",
              "https://www.monster.com/jobs/search?q=nurse&where=Texas&page=2",
              "https://www.monster.com/jobs/search?q=nurse&where=remote&rad=20",
              "https://www.monster.com/jobs/q-software-engineer-jobs-l-new-york-ny",
              "https://www.monster.com/jobs/q-nurse-jobs",
              "https://www.monster.com/job-openings/outpatient-registered-nurse-rn-midland-tx--5ca46a5f-bcfd-479d-a338-0eacf53af779"
            ],
            "items": {
              "type": "string"
            }
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "all",
              "today",
              "2days",
              "week",
              "2weeks",
              "month"
            ],
            "type": "string",
            "description": "Limit results by posting recency.",
            "default": "all"
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Alias of Date posted by day count. Overrides Date posted when not 'Any'. 3 days uses the last-week window trimmed to 3 days.",
            "default": "any"
          },
          "country": {
            "title": "Country",
            "enum": [
              "US"
            ],
            "type": "string",
            "description": "Monster serves the United States only.",
            "default": "US"
          },
          "employmentType": {
            "title": "Employment type",
            "enum": [
              "all",
              "FULL_TIME",
              "PART_TIME",
              "CONTRACTOR",
              "TEMPORARY",
              "INTERN"
            ],
            "type": "string",
            "description": "Limit results to one employment type.",
            "default": "all"
          },
          "company": {
            "title": "Company contains",
            "type": "string",
            "description": "Optional case-insensitive employer filter."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Sort results by relevance or newest posting date.",
            "default": "relevance"
          },
          "enrichEmails": {
            "title": "Extract public emails",
            "type": "boolean",
            "description": "Extract email addresses present in the returned job description and employer metadata.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum matching rows to save. Fewer may be returned when fewer live jobs match.",
            "default": 20
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 0,
            "type": "integer",
            "description": "Pages walked per source. 0 (default) means no page limit: the run still stops at Max items, when results end, or when a page repeats the previous one. Set a number to stop earlier.",
            "default": 0
          },
          "scrapeAllPages": {
            "title": "Scrape all pages",
            "type": "boolean",
            "description": "Ignore Max pages and page through every result page, still bounded by Max items.",
            "default": false
          },
          "startPage": {
            "title": "Start page",
            "minimum": 1,
            "type": "integer",
            "description": "First result page to fetch in search mode (pasted search URLs carry their own page).",
            "default": 1
          },
          "pageSize": {
            "title": "Page size",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Jobs requested per page (1-50).",
            "default": 20
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Choose the Apify Proxy group used for requests. The actor also handles its own connection routing automatically, so the group you pick is your cost and choice; Residential is pre-selected, and you can switch group or country if you prefer.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "incrementalMode": {
            "title": "Only report changes since the last run",
            "type": "boolean",
            "description": "Remember the jobs from earlier runs of the same search and return only what changed: NEW, UPDATED (title, company, location, salary, description, posting or expiry date and other listing content changed) or REAPPEARED jobs. Relative age labels (such as '2 days ago'), the scrape time and the raw source copy never count as a change. Jobs that are unchanged are skipped and not charged.",
            "default": false
          },
          "stateKey": {
            "title": "State name (optional)",
            "type": "string",
            "description": "Name that identifies the remembered baseline. Leave empty to derive it from the search settings, so each distinct search keeps its own baseline."
          },
          "emitUnchanged": {
            "title": "Also return unchanged jobs",
            "type": "boolean",
            "description": "Incremental mode only. Also write unchanged jobs to the dataset, marked UNCHANGED. They are never charged.",
            "default": false
          },
          "emitExpired": {
            "title": "Report jobs that are no longer listed",
            "type": "boolean",
            "description": "Incremental mode only. Write an EXPIRED row for baseline jobs missing from a run that walked the whole search. Skipped when the run was capped by Max items or Max pages, started mid-way, or used direct job links. EXPIRED rows are never charged.",
            "default": true
          },
          "resumeFromRunId": {
            "title": "Resume from run ID",
            "type": "string",
            "description": "Run ID of an earlier interrupted run of this actor. Jobs it already saved are skipped. A resumed run never reports EXPIRED jobs."
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Extra output field names (dotted paths allowed for nested fields, for example enrichments.skills) that must not trigger UPDATED. Always ignored: scrapedAt, raw, dateRecency, formattedDate. Posting and expiry dates are compared.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}