{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs Scraper & API - Salary Data",
    "description": "Scrape Glassdoor jobs by keyword, free-text location, company page, or bulk URLs. Export salaries, ratings, posting age, Easy Apply, descriptions, and new-job monitoring data.",
    "version": "0.1",
    "x-build-id": "we3EWJzu1b0bgIihq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/newbs~Glassdoor-Job-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-newbs-Glassdoor-Job-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/newbs~Glassdoor-Job-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-newbs-Glassdoor-Job-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/newbs~Glassdoor-Job-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-newbs-Glassdoor-Job-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": {
          "job": {
            "title": "Job title, keyword, or company",
            "type": "string",
            "description": "Search for a role, skill, or hiring company. Ignored when the bulk searches field is used.",
            "default": "software engineer"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Country, city, state, or region. Known locations use verified IDs; other text is resolved with Glassdoor's public location lookup.",
            "default": "united-kingdom"
          },
          "countryCode": {
            "title": "Country code (optional)",
            "type": "string",
            "description": "Two-letter country code used to select the regional Glassdoor domain for a free-text location, for example GB, US, DE, FR, or AU.",
            "default": ""
          },
          "searchUrl": {
            "title": "Glassdoor search or company jobs URL",
            "type": "string",
            "description": "Optional public Glassdoor /Job/ search URL or /Jobs/ company page. It overrides the guided keyword and location fields.",
            "default": ""
          },
          "searches": {
            "title": "Bulk searches (optional)",
            "type": "array",
            "description": "Up to 10 searches. Each entry can contain job, location, countryCode, searchUrl, label, and sortBy. When supplied, these entries replace the single guided search.",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "title": "Search label",
                  "description": "Readable name shown in output provenance."
                },
                "job": {
                  "type": "string",
                  "title": "Job keyword",
                  "description": "Role, skill, or company keyword."
                },
                "location": {
                  "type": "string",
                  "title": "Location",
                  "description": "City, region, or country."
                },
                "countryCode": {
                  "type": "string",
                  "title": "Country code",
                  "description": "Optional two-letter regional code."
                },
                "searchUrl": {
                  "type": "string",
                  "title": "Glassdoor URL",
                  "description": "Optional /Job/ search or /Jobs/ company page URL."
                },
                "sortBy": {
                  "type": "string",
                  "title": "Sort order",
                  "description": "Result ordering for this search.",
                  "enum": [
                    "relevance",
                    "glassdoor",
                    "date",
                    "salary"
                  ]
                },
                "rankByKeyword": {
                  "type": "boolean",
                  "title": "Rank URL by keyword",
                  "description": "Re-rank a pasted URL using this entry's job keyword."
                }
              }
            },
            "default": []
          },
          "numberOfPages": {
            "title": "Search pages",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum Glassdoor result batches to load for each search when browser pagination is needed.",
            "default": 1
          },
          "maxItems": {
            "title": "Maximum unique results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Global maximum after filtering and job-ID deduplication across all searches.",
            "default": 10
          },
          "sortBy": {
            "title": "Sort results",
            "enum": [
              "relevance",
              "glassdoor",
              "date",
              "salary"
            ],
            "type": "string",
            "description": "Rank by keyword relevance, preserve Glassdoor order, show newest first, or prioritize the highest salary range.",
            "default": "relevance"
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep jobs no older than this many days. Use 0 for any age. Jobs without published age are excluded when this filter is active.",
            "default": 0
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep listings marked remote or work from home.",
            "default": false
          },
          "easyApplyOnly": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Keep only listings marked as Glassdoor Easy Apply.",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored jobs",
            "type": "boolean",
            "description": "Disable to remove listings marked as sponsored or promoted.",
            "default": true
          },
          "minCompanyRating": {
            "title": "Minimum company rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep companies with at least this Glassdoor rating. Use 0 to disable.",
            "default": 0
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "number",
            "description": "Keep salary ranges whose maximum reaches this amount. Currency and period are not converted.",
            "default": 0
          },
          "maxSalary": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "number",
            "description": "Keep salary ranges whose minimum does not exceed this amount. Currency and period are not converted.",
            "default": 0
          },
          "company": {
            "title": "Company name contains",
            "type": "string",
            "description": "Optional case-insensitive company-name filter.",
            "default": ""
          },
          "jobType": {
            "title": "Job type contains",
            "type": "string",
            "description": "Optional employment-type filter, for example full time, contract, or internship.",
            "default": ""
          },
          "includeDetails": {
            "title": "Try full descriptions",
            "type": "boolean",
            "description": "Try protected detail pages for complete descriptions and JobPosting data. Rich search metadata is preserved when detail pages are unavailable.",
            "default": true
          },
          "detailConcurrency": {
            "title": "Detail concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Number of detail pages processed in parallel when full descriptions are enabled.",
            "default": 3
          },
          "monitoringEnabled": {
            "title": "Track jobs between runs",
            "type": "boolean",
            "description": "Persist first-seen, last-seen, and seen-count metadata for scheduled monitoring.",
            "default": false
          },
          "onlyNewJobs": {
            "title": "Return only new jobs",
            "type": "boolean",
            "description": "Write and charge only job IDs not already recorded for this monitoring configuration. This also enables monitoring state.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key (optional)",
            "type": "string",
            "description": "Stable label for sharing state across schedules with otherwise equivalent inputs, for example uk-engineering-daily.",
            "default": ""
          },
          "monitoringRetentionDays": {
            "title": "Monitoring retention days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Forget job IDs not seen within this period.",
            "default": 90
          },
          "rankCustomUrlResults": {
            "title": "Re-rank custom URLs by keyword",
            "type": "boolean",
            "description": "Enable only when the job field intentionally matches a custom URL. Disabled by default so pasted URLs preserve Glassdoor order.",
            "default": false
          },
          "qualityChecks": {
            "title": "Quality checks (optional)",
            "type": "object",
            "description": "Optional JSON thresholds: minimumResults, minimumSuccessfulSearches, minimumCoreFieldCoverage, and minimumMetadataCoverage. The run fails before writing rows when a threshold is missed.",
            "default": {}
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "HTTP with browser TLS impersonation runs first. Automatic routing rotates proxy sessions, then uses Residential and Unblocker HTTP fallbacks only when earlier routes are blocked. Explicit groups and custom URLs are honored."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}