{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs Scraper",
    "description": "Scrape Glassdoor job listings by keyword and location: title, company, location, salary range with median, job type, work mode, benefits, skills, company rating and link, in one clean format. Filters, wide search and new-job monitoring. From $0.95 per 1,000 jobs (back to $3 on 6 Dec 2026).",
    "version": "0.1",
    "x-build-id": "0dwJa9rLrF4JgLmXY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tacps126~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tacps126-glassdoor-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/tacps126~glassdoor-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tacps126-glassdoor-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/tacps126~glassdoor-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tacps126-glassdoor-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",
        "required": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "What to search for - job title, skill or company, one per line. Every query runs in every location.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City, state or country (e.g. `Chicago, IL`, `London`, `Germany`), one per line. Leave empty to search all of the US.",
            "items": {
              "type": "string"
            }
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "1",
              "3",
              "7",
              "14"
            ],
            "type": "string",
            "description": "Only jobs posted in this window."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "fulltime",
              "parttime",
              "contract",
              "temporary",
              "internship"
            ],
            "type": "string",
            "description": "Only this type of job."
          },
          "radius": {
            "title": "Radius",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Distance around each location in miles."
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order Indeed returns results in.",
            "default": "relevance"
          },
          "wideSearch": {
            "title": "Wide search",
            "type": "boolean",
            "description": "Run each search from several angles (most relevant and newest, last 1 and 3 days, full-time, contract and part-time) to collect many more different jobs per query and location. Takes a little longer.",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored jobs",
            "type": "boolean",
            "description": "Keep jobs that employers promote on Glassdoor. They're marked with `sponsored: true`.",
            "default": true
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of jobs to return in total.",
            "default": 200
          },
          "titleIncludes": {
            "title": "Title must include",
            "type": "array",
            "description": "Keep a job only if its title contains any of these words (case-insensitive), e.g. `engineer`, `developer`.",
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title must not include",
            "type": "array",
            "description": "Drop a job whose title contains any of these words (case-insensitive), e.g. `intern`, `manager`.",
            "items": {
              "type": "string"
            }
          },
          "locationIncludes": {
            "title": "Location must include",
            "type": "array",
            "description": "Keep a job only if its location contains any of these (case-insensitive), e.g. `Berlin`, `Remote`.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Only remote jobs (uses Indeed's remote filter).",
            "default": false
          },
          "workModes": {
            "title": "Work mode",
            "type": "array",
            "description": "Keep only these work arrangements. Jobs whose posting doesn't state it are dropped when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these employment types.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "contract",
                "internship",
                "temporary",
                "freelance"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Freelance"
              ]
            }
          },
          "seniorities": {
            "title": "Seniority",
            "type": "array",
            "description": "Keep only these seniority levels.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "junior",
                "mid",
                "senior",
                "lead",
                "principal",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Intern",
                "Junior",
                "Mid",
                "Senior",
                "Lead",
                "Principal / Staff",
                "Director",
                "Executive"
              ]
            }
          },
          "jobFunctions": {
            "title": "Job function",
            "type": "array",
            "description": "Keep only these job functions (engineering, data, sales, ...).",
            "items": {
              "type": "string",
              "enum": [
                "engineering",
                "data",
                "ai_training",
                "security",
                "research",
                "product",
                "design",
                "marketing",
                "sales",
                "customer_success",
                "finance",
                "people",
                "legal",
                "operations",
                "healthcare",
                "education"
              ],
              "enumTitles": [
                "Engineering",
                "Data",
                "AI Training",
                "Security",
                "Research",
                "Product",
                "Design",
                "Marketing",
                "Sales",
                "Customer Success",
                "Finance",
                "People",
                "Legal",
                "Operations",
                "Healthcare",
                "Education"
              ]
            }
          },
          "descriptionIncludes": {
            "title": "Description or skills mention",
            "type": "array",
            "description": "Keep a job only if its summary or skills mention any of these.",
            "items": {
              "type": "string"
            }
          },
          "companyExcludes": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Drop jobs from companies whose name contains any of these, e.g. staffing agencies.",
            "items": {
              "type": "string"
            }
          },
          "minAnnualSalary": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep jobs paying at least this per year (hourly and monthly pay are converted), in the posting's currency. Jobs that don't publish pay are kept unless \"Only jobs with salary\" is on."
          },
          "onlyWithSalary": {
            "title": "Only jobs with salary",
            "type": "boolean",
            "description": "Keep only jobs that publish their pay.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new jobs",
            "type": "boolean",
            "description": "Return only jobs that no earlier run with the same input has delivered. Schedule the Actor and you pay only for new jobs.",
            "default": false
          },
          "changesOnly": {
            "title": "Changes only",
            "type": "boolean",
            "description": "Return only jobs that are new or changed since the last run with the same input (or monitor name): changed jobs carry `changeType: \"changed\"` and `changes` with the old and new salary, location or title. Search results are partial, so jobs that drop out aren't reported as closed. The first run returns everything as new.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for the 'only new' history. Runs sharing a name share one history; leave empty to derive it from the sources."
          },
          "delivery": {
            "title": "Send results to Slack, Discord, a webhook or Google Sheets",
            "type": "object",
            "description": "Webhook: {\"webhookUrl\": \"https://...\", \"format\": \"json\" | \"slack\" | \"discord\", \"onlyWhenResults\": true, \"includeItems\": 10}. Google Sheets: {\"spreadsheetId\": \"<id from the sheet URL>\", \"sheetName\": \"Sheet1\"} plus the service account key below; share the sheet with the service account's e-mail first. Leave empty to only save results in the dataset."
          },
          "googleServiceAccountJson": {
            "title": "Google service account key (for Sheets)",
            "type": "string",
            "description": "Only for Google Sheets delivery: paste the service account's JSON key. Stored encrypted; the account sees only sheets you share with it."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy settings. The default is chosen per location and usually needs no change.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "tenantId": {
            "title": "Tenant ID",
            "type": "string",
            "description": "Optional label used to keep separate histories for different clients or teams."
          },
          "debug": {
            "title": "Debug",
            "type": "boolean",
            "description": "Save extra diagnostics with the run.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}