{
  "openapi": "3.0.1",
  "info": {
    "title": "Monster Jobs Scraper — Search, Company Jobs & Job Details",
    "description": "Scrape Monster.com job postings with salary ranges, skills, exact posting dates, apply links and the employer's size, HQ address and founding year. Search by keyword and location, list every open job at up to 10 employers, or refresh up to 20 job ids per call.",
    "version": "1.0",
    "x-build-id": "mDkZiEvBG7hShlYoL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~monster-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-monster-jobs-scraper",
        "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/sian.agency~monster-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-monster-jobs-scraper",
        "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/sian.agency~monster-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-monster-jobs-scraper",
        "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",
        "properties": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "companyJobs",
              "jobDetails"
            ],
            "type": "string",
            "description": "Pick one operation per run. Search Jobs finds postings by keyword and place. Company Jobs lists every open role at up to 10 employers, named exactly as the employerName field spells them. Job Details re-fetches up to 20 known job ids per call. A search row already carries the full posting, so use Job Details only to refresh ids you stored earlier.",
            "default": "search"
          },
          "query": {
            "title": "🔑 Search keyword",
            "type": "string",
            "description": "Job title, skill or free-text phrase, as you would type it into Monster's own search box, for example \"registered nurse\" or \"warehouse associate\". Required by Search Jobs. Optional for Company Jobs, where it narrows the employer's list to matching roles; leave it empty there to get every open job."
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "Free-text city or region, for example \"Austin, TX\", \"New York, NY\" or \"London\". Leave it empty to search the whole country, which returns far more jobs than any one city. Needed if you set a radius."
          },
          "country": {
            "title": "🌍 Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "ie",
              "fr",
              "be",
              "nl",
              "es",
              "se",
              "ch",
              "at",
              "it",
              "lu"
            ],
            "type": "string",
            "description": "Which Monster market to search. Each market's own site carries 1.35x to 6.9x more jobs than searching it from the US site, so pick the country the jobs are in. Only markets where Monster actually lists jobs are offered: Germany, Australia and India, for example, return nothing on Monster at all.",
            "default": "us"
          },
          "radiusKm": {
            "title": "📏 Radius (km)",
            "minimum": 1,
            "maximum": 160,
            "type": "integer",
            "description": "Search radius around the Location, in kilometres. Needs a Location: Monster ignores a radius on a country-wide search, so the pair is rejected rather than silently dropped. Monster returns nothing past 160 km."
          },
          "datePosted": {
            "title": "🗓️ Date posted",
            "enum": [
              "all",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Only jobs posted or refreshed within this window. Applied by Monster, so it costs nothing extra. Monster filters on its own refresh date, which means a returned job's original posting date can be older than the window.",
            "default": "all"
          },
          "employmentTypes": {
            "title": "💼 Employment types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only these employment types. Pick any combination; a job matching any of them is returned. Leave empty for every type. Applied by Monster itself.",
            "items": {
              "type": "string",
              "enum": [
                "FULLTIME",
                "PARTTIME",
                "CONTRACTOR",
                "INTERN"
              ],
              "enumTitles": [
                "🕐 Full-time",
                "🕑 Part-time",
                "📝 Contract",
                "🎓 Internship"
              ]
            }
          },
          "remoteOnly": {
            "title": "🏠 Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs Monster marks as remote. On its own it is a real Monster filter. Combined with Employment types it is applied after fetching instead, because Monster would otherwise return \"full-time OR remote\"; that combination returns fewer jobs and takes longer. Company Jobs ignores it.",
            "default": false
          },
          "companies": {
            "title": "🏢 Employer names",
            "maxItems": 10,
            "type": "array",
            "description": "Used by Company Jobs. Up to 10 employer names, spelled exactly as the employerName field of any Search Jobs row spells them, for example \"Amazon.com Inc\" or \"Qualcomm\". Monster publishes no company id, so run a search first and copy employerName. Matching is by substring: a misspelling returns nothing, and a short name can also match longer names containing it.",
            "items": {
              "type": "string"
            }
          },
          "jobIds": {
            "title": "📋 Job IDs or URLs",
            "type": "array",
            "description": "Used by Job Details. Up to 20 per call, any mix of: the jobId from a search row, Monster's own jobUid (a UUID), the jobSeoId, or a full monster.com/job-openings/... URL. Duplicates are collapsed first. A closed or unknown posting is simply absent from the results, and you are not charged for it.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Date sorts the jobs inside each page of results newest-first. It cannot re-rank Monster's whole result set, because Monster ignores its own sort order. Pair it with Date posted for a genuinely fresh list. Company Jobs keeps Monster's order.",
            "default": "relevance"
          },
          "maxResults": {
            "title": "🔢 Max jobs",
            "minimum": 1,
            "maximum": 510,
            "type": "integer",
            "description": "Upper bound on jobs returned by Search Jobs and Company Jobs. Monster serves 10 per page and stops at 510 postings per query, however broad. Job Details ignores it and returns one row per job id you supply.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}