{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs & Reviews Scraper",
    "description": "Scrape Glassdoor jobs, company reviews, salaries, interviews and company profiles from 23 country sites. Research employers, track hiring and benchmark pay with full job descriptions in JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "88d9mR3LUCpc56TLh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cliqtomedia~glassdoor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cliqtomedia-glassdoor-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/cliqtomedia~glassdoor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cliqtomedia-glassdoor-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/cliqtomedia~glassdoor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cliqtomedia-glassdoor-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": {
          "mode": {
            "title": "Data to collect",
            "enum": [
              "jobs",
              "company",
              "reviews",
              "salaries",
              "interviews",
              "benefits",
              "locations",
              "culture",
              "photos",
              "companySearch",
              "salarySearch",
              "salaryReports"
            ],
            "type": "string",
            "description": "Choose jobs, companies, reviews, salaries, interviews, benefits, offices, culture ratings, photos, company search, salary market search, or anonymous salary reports.",
            "default": "jobs"
          },
          "query": {
            "title": "Job or company name",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Search for a job title, skill, or company. In company mode, finds one company by name. Job search URLs take priority over Query."
          },
          "location": {
            "title": "Job location",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "City, state, or country. For example London. An unknown location returns no results with LOCATION_NOT_FOUND."
          },
          "country": {
            "title": "Country site",
            "enum": [
              "UK",
              "US",
              "CA",
              "DE",
              "FR",
              "AU",
              "AR",
              "AT",
              "BR",
              "HK",
              "IE",
              "IN",
              "IT",
              "MX",
              "NL",
              "NZ",
              "SG",
              "ES",
              "BE",
              "CH",
              "BE_FR",
              "CH_FR",
              "CA_FR"
            ],
            "type": "string",
            "description": "Choose the Glassdoor website for search and source links. Company salary and benefit countries have separate fields. Public API text is returned in its available language.",
            "default": "UK"
          },
          "maxItems": {
            "title": "Result limit",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Stop after this many primary results. Jobs and profiles use a total for the run. Reviews and salary titles use this limit for each company. Source coverage, your budget and your run timeout can give fewer results."
          },
          "companyUrls": {
            "title": "Company URLs",
            "type": "array",
            "description": "Public Glassdoor company links, including overview, review and salary tabs or a custom company page. Each company ID is collected once.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            },
            "default": []
          },
          "companyNames": {
            "title": "Company names",
            "type": "array",
            "description": "Find companies by name. Each completed name lookup costs extra, including no-match searches. Check company IDs because the source uses its best match.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            },
            "default": []
          },
          "searchUrls": {
            "title": "Job search URLs",
            "type": "array",
            "description": "Glassdoor job search URLs. They take priority over Query. Input filters take priority over URL filters. Use several narrower searches to cover more jobs.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            },
            "default": []
          },
          "includeDetails": {
            "title": "Full job details",
            "type": "boolean",
            "description": "Include full available job descriptions and employer details. On by default. Turn off to collect search results only.",
            "default": true
          },
          "includeSalaries": {
            "title": "Company salary table",
            "type": "boolean",
            "description": "In Company profiles mode, also save salary-title rows in the dataset. Salary rows have a separate price. Collection continues across public pages.",
            "default": false
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "flat",
              "nested"
            ],
            "type": "string",
            "description": "Flat is easy to export to Sheets. Nested keeps location, salary and company objects. Salary tables are JSON text in Flat output.",
            "default": "flat"
          },
          "daysOld": {
            "title": "Maximum job age",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Keep jobs posted within this many days, from 1 to 365. Omit to use the source default."
          },
          "easyApply": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Return only jobs marked Easy Apply by Glassdoor.",
            "default": false
          },
          "remoteWorkType": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Ask Glassdoor for remote jobs. The source can include hybrid work; check Remote type in the output.",
            "default": false
          },
          "minRating": {
            "title": "Minimum company rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Request employers with a rating at least this high, from 0 to 5. Missing source ratings stay null."
          },
          "employerSizes": {
            "title": "Company size",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Filter by Glassdoor company size group. Omit to include all sizes."
          },
          "radius": {
            "title": "Search distance",
            "enum": [
              "0",
              "5",
              "10",
              "15",
              "25",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Distance around the selected location, in miles. Glassdoor may adjust this by market."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevant_desc",
              "date_desc"
            ],
            "type": "string",
            "description": "Choose most relevant or most recent jobs.",
            "default": "relevant_desc"
          },
          "excludeJobIds": {
            "title": "Skip job IDs",
            "type": "array",
            "description": "Do not return or charge for these job IDs. Add up to 1000 numeric IDs.",
            "items": {
              "type": "string",
              "pattern": "^\\d{1,16}$"
            },
            "default": []
          },
          "urlParam": {
            "title": "Extra search filters",
            "maxItems": 10,
            "type": "array",
            "description": "Optional source filters: industryNId, jobType, seniorityType, minSalary, maxSalary, sgocId, includeNoSalaryJob, employerId. Unsupported names are rejected.",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "enum": [
                    "industryNId",
                    "jobType",
                    "seniorityType",
                    "minSalary",
                    "maxSalary",
                    "sgocId",
                    "includeNoSalaryJob",
                    "employerId",
                    "companyId"
                  ],
                  "title": "Key",
                  "description": "Key."
                },
                "value": {
                  "type": "string",
                  "maxLength": 100,
                  "pattern": "^[\\w,.-]+$",
                  "title": "Value",
                  "description": "Value."
                }
              },
              "required": [
                "key",
                "value"
              ],
              "additionalProperties": false
            },
            "default": []
          },
          "monitor": {
            "title": "Track job history",
            "type": "boolean",
            "description": "Compare jobs with a private rolling history. Older closed jobs are removed first when history is full. Use one writer for each State name.",
            "default": false
          },
          "onlyNew": {
            "title": "New jobs only",
            "type": "boolean",
            "description": "Return only IDs not yet saved in this history. Enables tracking. Unchanged jobs are free, but the run has a platform start charge.",
            "default": false
          },
          "checkClosed": {
            "title": "Check missing jobs for closure",
            "type": "boolean",
            "description": "Check saved jobs missing from the current search. Closed requires explicit expiry from Glassdoor; absence or 404 is not enough. Ignored with New jobs only. Uses your run time and result budget.",
            "default": false
          },
          "stateName": {
            "title": "State name",
            "pattern": "^[a-z][a-z0-9-]{1,39}[a-z0-9]$",
            "type": "string",
            "description": "A unique name for one search history: 3–41 lowercase letters, digits or hyphens, starting with a letter and not ending with a hyphen. Use the same search settings on later runs."
          },
          "keywords": {
            "title": "Job title alias",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Optional alias for query. Query takes priority when both are set."
          },
          "limit": {
            "title": "Result limit alias",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Optional alias for maxItems. MaxItems takes priority when both are set."
          },
          "includeReviews": {
            "title": "Add company reviews",
            "type": "boolean",
            "description": "In Company profiles mode, also save public review rows and review insights. Review rows and successful Unblocker pages have separate prices.",
            "default": false
          },
          "maxReviews": {
            "title": "Reviews per company",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum reviews to collect for each company when Add company reviews is on. Review mode uses Maximum results instead.",
            "default": 20000
          },
          "maxSalaryTitles": {
            "title": "Salary titles per company",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum salary titles for each company when Add salary titles is on. Salary titles mode uses Maximum results instead.",
            "default": 20000
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "DATE",
              "RELEVANCE_V2",
              "RATING",
              "RATING_ASC"
            ],
            "type": "string",
            "description": "Choose the review order used by Glassdoor. Monthly averages and repeated phrases cover the reviews collected in this run.",
            "default": "DATE"
          },
          "reviewLanguage": {
            "title": "Review language",
            "pattern": "^[a-z]{3}$",
            "type": "string",
            "description": "Three-letter Glassdoor language code, for example eng, fra or deu. Reviews stay in their source language.",
            "default": "eng"
          },
          "proxyMode": {
            "title": "Connection route",
            "enum": [
              "auto",
              "direct",
              "datacenter",
              "unblocker"
            ],
            "type": "string",
            "description": "Auto starts with direct HTTP and tries proxy routes if blocked. Successful Apify Unblocker pages cost extra, on top of saved results. Forced routes are useful for checks.",
            "default": "auto"
          },
          "queries": {
            "title": "Queries",
            "type": "array",
            "description": "Job titles or salary searches. Results share Max items. Search URLs take priority in jobs mode.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Search each city, state, or country. Results share Max items. Leave empty to use Location.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "maxResultsPerSearch": {
            "title": "Max Results Per Search",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Stop each keyword and location search after this many saved results. Max items is the total limit."
          },
          "jobIds": {
            "title": "Job Ids",
            "type": "array",
            "description": "Fetch these Glassdoor job IDs directly, without a keyword search. Duplicate and excluded IDs are skipped.",
            "items": {
              "type": "string",
              "pattern": "^\\d{1,16}$"
            },
            "default": []
          },
          "matchTitle": {
            "title": "Match Title",
            "enum": [
              "off",
              "loose",
              "strict"
            ],
            "type": "string",
            "description": "Keep jobs whose titles contain any search word (loose) or every word (strict). Off keeps the source search ranking.",
            "default": "off"
          },
          "companyName": {
            "title": "Company Name",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "In jobs mode, find this company and search only its jobs. No default job title is added."
          },
          "excludeCompanies": {
            "title": "Exclude Companies",
            "type": "array",
            "description": "Exclude employers matching any of these phrases. Matches use word boundaries.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "includeKeywords": {
            "title": "Include Keywords",
            "type": "array",
            "description": "Keep jobs containing at least one phrase in the title or full description.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "excludeKeywords": {
            "title": "Exclude Keywords",
            "type": "array",
            "description": "Exclude jobs containing any phrase in the title or full description.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "employmentType": {
            "title": "Employment Type",
            "type": "array",
            "description": "Search these employment types. Several types are separate searches with duplicate jobs removed.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Apprenticeship",
                "Entry level",
                "Permanent",
                "Fixed Term Contract"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Apprenticeship",
                "Entry level",
                "Permanent",
                "Fixed Term Contract"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Use the source seniority filter.",
            "items": {
              "type": "string",
              "enum": [
                "Internship",
                "Entry level",
                "Mid-senior",
                "Director",
                "Executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Mid-senior",
                "Director",
                "Executive"
              ]
            },
            "default": []
          },
          "industry": {
            "title": "Industry",
            "type": "array",
            "description": "Filter by the source industry categories.",
            "items": {
              "type": "string",
              "enum": [
                "Arts, Entertainment & Recreation",
                "Construction, Repair & Maintenance Services",
                "Personal Consumer Services",
                "Real Estate",
                "Restaurants & Food Service",
                "Retail & Wholesale",
                "Hotels & Travel Accommodation",
                "Aerospace & Defense",
                "Energy, Mining & Utilities",
                "Financial Services",
                "Education",
                "Pharmaceutical & Biotechnology",
                "Healthcare",
                "Human Resources & Staffing",
                "Information Technology",
                "Insurance",
                "Management & Consulting",
                "Manufacturing",
                "Media & Communication",
                "Transportation & Logistics"
              ],
              "enumTitles": [
                "Arts, Entertainment & Recreation",
                "Construction, Repair & Maintenance Services",
                "Personal Consumer Services",
                "Real Estate",
                "Restaurants & Food Service",
                "Retail & Wholesale",
                "Hotels & Travel Accommodation",
                "Aerospace & Defense",
                "Energy, Mining & Utilities",
                "Financial Services",
                "Education",
                "Pharmaceutical & Biotechnology",
                "Healthcare",
                "Human Resources & Staffing",
                "Information Technology",
                "Insurance",
                "Management & Consulting",
                "Manufacturing",
                "Media & Communication",
                "Transportation & Logistics"
              ]
            },
            "default": []
          },
          "jobFunction": {
            "title": "Job Function",
            "type": "array",
            "description": "Filter by job function.",
            "items": {
              "type": "string",
              "enum": [
                "Administrative",
                "Arts & Design",
                "Business",
                "Consulting",
                "Customer Services & Support",
                "Education",
                "Engineering",
                "Finance & Accounting",
                "Healthcare",
                "Human Resources",
                "Information Technology",
                "Legal",
                "Marketing",
                "Media & Communications",
                "Military & Protective Services",
                "Operations",
                "Other",
                "Product & Project Management",
                "Research & Science",
                "Retail & Food Services",
                "Sales",
                "Skilled Labor & Manufacturing",
                "Transportation"
              ],
              "enumTitles": [
                "Administrative",
                "Arts & Design",
                "Business",
                "Consulting",
                "Customer Services & Support",
                "Education",
                "Engineering",
                "Finance & Accounting",
                "Healthcare",
                "Human Resources",
                "Information Technology",
                "Legal",
                "Marketing",
                "Media & Communications",
                "Military & Protective Services",
                "Operations",
                "Other",
                "Product & Project Management",
                "Research & Science",
                "Retail & Food Services",
                "Sales",
                "Skilled Labor & Manufacturing",
                "Transportation"
              ]
            },
            "default": []
          },
          "workplaceType": {
            "title": "Workplace Type",
            "enum": [
              "any",
              "remote",
              "hybrid",
              "onsite"
            ],
            "type": "string",
            "description": "Remote, hybrid, or on site. Only jobs with a matching source label are kept; missing labels are not guessed.",
            "default": "any"
          },
          "minSalary": {
            "title": "Min Salary",
            "minimum": 0,
            "type": "number",
            "description": "Minimum annual salary in the source market currency. No currency conversion."
          },
          "maxSalary": {
            "title": "Max Salary",
            "minimum": 0,
            "type": "number",
            "description": "Maximum annual salary in the source market currency. No currency conversion."
          },
          "includeJobsWithoutSalary": {
            "title": "Include Jobs Without Salary",
            "type": "boolean",
            "description": "Allow jobs with no public salary. Turn off to request salary-bearing jobs only.",
            "default": true
          },
          "radiusKm": {
            "title": "Radius Km",
            "enum": [
              "0",
              "10",
              "20",
              "30",
              "50",
              "100",
              "200"
            ],
            "type": "string",
            "description": "Search radius in kilometres, converted to miles for Glassdoor."
          },
          "postedAfter": {
            "title": "Posted After",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep jobs with a source-derived posting day on or after YYYY-MM-DD. Posting days are estimates from listing age."
          },
          "resumeKeywords": {
            "title": "Resume Keywords",
            "type": "array",
            "description": "Skills to score, with optional aliases. Adds matched and missing skills and a score; does not remove jobs.",
            "items": {
              "type": "object",
              "properties": {
                "keyword": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300,
                  "title": "Keyword",
                  "description": "Keyword."
                },
                "aliases": {
                  "default": [],
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "title": "Aliases",
                  "description": "Aliases."
                }
              },
              "required": [
                "keyword",
                "aliases"
              ],
              "additionalProperties": false
            },
            "default": []
          },
          "deepSearch": {
            "title": "Deep Search",
            "type": "boolean",
            "description": "Also search Expand keywords and related titles returned by Glassdoor, with duplicate removal. Advanced processing also uses the Source work price event.",
            "default": false
          },
          "expandKeywords": {
            "title": "Expand Keywords",
            "type": "array",
            "description": "Extra job titles for Deep search.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "includeCompanyDetails": {
            "title": "Include Company Details",
            "type": "boolean",
            "description": "Fetch and cache the full public company profile for each employer. Adds mission, CEO, counts, links, and available awards. Uses the Source work price event for extra processing.",
            "default": false
          },
          "salaryBenchmark": {
            "title": "Salary Benchmark",
            "type": "boolean",
            "description": "Add public salary percentiles for the job title and location. The output records the actual source geography and confidence. Uses the Source work price event for extra processing.",
            "default": false
          },
          "reviewsStartDate": {
            "title": "Reviews Start Date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep reviews dated on or after YYYY-MM-DD. Date sorting can stop when older reviews are reached."
          },
          "interviewsStartDate": {
            "title": "Interviews Start Date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep interviews dated on or after YYYY-MM-DD."
          },
          "benefitsStartDate": {
            "title": "Benefits Start Date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep benefit reviews dated on or after YYYY-MM-DD. Source dates have day precision."
          },
          "reviewIncludes": {
            "title": "Review Includes",
            "type": "array",
            "description": "Keep reviews containing at least one phrase in Review search field. Advanced processing also uses the Source work price event.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "reviewExcludes": {
            "title": "Review Excludes",
            "type": "array",
            "description": "Exclude reviews containing any phrase in Review search field. Advanced processing also uses the Source work price event.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "onlyCurrentEmployees": {
            "title": "Only Current Employees",
            "type": "boolean",
            "description": "Keep reviews explicitly marked as written by current employees.",
            "default": false
          },
          "includeAllReviews": {
            "title": "Include All Reviews",
            "type": "boolean",
            "description": "Collect all seven languages offered by the public review language filter. Uses one shared limit and removes duplicate reviews. Advanced processing also uses the Source work price event.",
            "default": false
          },
          "reviewLanguages": {
            "title": "Review Languages",
            "type": "array",
            "description": "Collect these three-letter language codes, for example eng, deu, fra. Empty uses Review language. Date sorting merges languages by date. Advanced processing also uses the Source work price event.",
            "items": {
              "type": "string",
              "pattern": "^[a-z]{3}$"
            },
            "default": []
          },
          "painPointAnalysis": {
            "title": "Pain Point Analysis",
            "type": "boolean",
            "description": "Create a rule-based report with complaint themes, strengths, possible attrition signals, actions, and supporting review IDs. This is not an LLM report or a prediction.",
            "default": false
          },
          "includeInterviews": {
            "title": "Include Interviews",
            "type": "boolean",
            "description": "Also collect public interviews in company mode.",
            "default": false
          },
          "maxInterviews": {
            "title": "Max Interviews",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum interviews per company.",
            "default": 20000
          },
          "includeBenefits": {
            "title": "Include Benefits",
            "type": "boolean",
            "description": "Also collect public benefit reviews in company mode.",
            "default": false
          },
          "maxBenefits": {
            "title": "Max Benefits",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum benefit reviews per company.",
            "default": 20000
          },
          "interviewSort": {
            "title": "Interview Sort",
            "enum": [
              "DATE",
              "RELEVANCE",
              "DIFFICULTY",
              "DIFFICULTY_ASC"
            ],
            "type": "string",
            "description": "Sort interviews using the source controls.",
            "default": "DATE"
          },
          "interviewJobTitle": {
            "title": "Interview Job Title",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Keep interviews for this job title."
          },
          "interviewOutcome": {
            "title": "Interview Outcome",
            "type": "array",
            "description": "Keep these interview outcomes.",
            "items": {
              "type": "string",
              "enum": [
                "ACCEPT_OFFER",
                "DECLINE_OFFER",
                "NO_OFFER"
              ],
              "enumTitles": [
                "Accepted offer",
                "Declined offer",
                "No offer"
              ]
            },
            "default": []
          },
          "interviewExperience": {
            "title": "Interview Experience",
            "type": "array",
            "description": "Keep these interview experiences.",
            "items": {
              "type": "string",
              "enum": [
                "POSITIVE",
                "NEUTRAL",
                "NEGATIVE"
              ],
              "enumTitles": [
                "Positive",
                "Neutral",
                "Negative"
              ]
            },
            "default": []
          },
          "includeDemographicRatings": {
            "title": "Include Demographic Ratings",
            "type": "boolean",
            "description": "Add public aggregate demographic ratings to company profiles. No individual demographic data.",
            "default": false
          },
          "minCompanyRating": {
            "title": "Min Company Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Minimum company rating in Company rating type."
          },
          "minReviewCount": {
            "title": "Min Review Count",
            "minimum": 0,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Minimum number of public company reviews.",
            "default": 0
          },
          "companyRatingType": {
            "title": "Company Rating Type",
            "enum": [
              "overallRating",
              "careerOpportunitiesRating",
              "compensationAndBenefitsRating",
              "cultureAndValuesRating",
              "diversityAndInclusionRating",
              "seniorManagementRating",
              "workLifeBalanceRating"
            ],
            "type": "string",
            "description": "Rating dimension to use for company search and company filters.",
            "default": "overallRating"
          },
          "companyHeadquarters": {
            "title": "Company Headquarters",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Keep company profiles whose headquarters contain this text. Advanced processing also uses the Source work price event."
          },
          "reviewSearchField": {
            "title": "Review Search Field",
            "enum": [
              "cons",
              "pros",
              "title",
              "all"
            ],
            "type": "string",
            "description": "Choose which review text to search. All includes title, pros, cons, and advice.",
            "default": "cons"
          },
          "includePhotos": {
            "title": "Include Photos",
            "type": "boolean",
            "description": "Also collect public photo metadata and image links in company mode. Images are not downloaded.",
            "default": false
          },
          "includeLocations": {
            "title": "Include Locations",
            "type": "boolean",
            "description": "Also collect public office addresses in company mode.",
            "default": false
          },
          "maxPhotos": {
            "title": "Max Photos",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum photo records per company.",
            "default": 20000
          },
          "maxLocations": {
            "title": "Max Locations",
            "minimum": 1,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum office records per company.",
            "default": 20000
          },
          "enrichEmails": {
            "title": "Enrich Emails",
            "type": "boolean",
            "description": "Read the company website for public role addresses such as info@ or sales@. Personal email addresses are excluded. Best effort; up to five pages. Uses the Source work price event for extra processing.",
            "default": false
          },
          "qualifyByPayment": {
            "title": "Qualify By Payment",
            "type": "boolean",
            "description": "Look for public payment or ecommerce scripts on the company website. Returns processor names and evidence. Missing signals mean unknown. No payment keys are collected. Uses the Source work price event for extra processing.",
            "default": false
          },
          "includeCompanyExtras": {
            "title": "Include Company Extras",
            "type": "boolean",
            "description": "Include photos, review distributions, review locations, demographic ratings, employer content, and updates in company profiles. Applies to Company profiles and Company search. Turn off for a smaller profile.",
            "default": true
          },
          "maxProfilePhotos": {
            "title": "Max Profile Photos",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum photos included inside each company profile. Separate photo rows use Max photos instead.",
            "default": 100
          },
          "maxProfileUpdates": {
            "title": "Max Profile Updates",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum company updates included inside each profile.",
            "default": 400
          },
          "salaryCountryId": {
            "title": "Salary Country Id",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Country for company salary tables. Glassdoor country IDs: 1 United States, 2 United Kingdom, 3 Canada. Include all salaries visits every source country instead.",
            "default": 1
          },
          "benefitsCountryId": {
            "title": "Benefits Country Id",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Country for benefit reviews. Glassdoor country IDs: 1 United States, 2 United Kingdom, 3 Canada. The benefit statistics record lists source countries and IDs.",
            "default": 1
          },
          "includeAllSalaries": {
            "title": "Include All Salaries",
            "type": "boolean",
            "description": "Collect company salary tables for every country listed by Glassdoor, within Max items. Each row records its country. Partial coverage lists visited countries. Advanced processing also uses the Source work price event.",
            "default": false
          },
          "payPeriod": {
            "title": "Pay Period",
            "enum": [
              "ANNUAL",
              "MONTHLY",
              "HOURLY"
            ],
            "type": "string",
            "description": "Pay period for company salary tables. Glassdoor converts available estimates to this period.",
            "default": "ANNUAL"
          },
          "descriptionFormat": {
            "title": "Description Format",
            "enum": [
              "text",
              "html",
              "markdown"
            ],
            "type": "string",
            "description": "Write full job descriptions as plain text, source HTML, or Markdown.",
            "default": "text"
          },
          "includeDescriptionHtml": {
            "title": "Include Description Html",
            "type": "boolean",
            "description": "Also keep the original public description HTML alongside the chosen description format.",
            "default": false
          },
          "maxSourceRequests": {
            "title": "Max Source Requests",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Optional total request limit for this run. Leave empty to use the result limit, your charge cap, and the run timeout."
          },
          "sourceDataLimitMB": {
            "title": "Source Data Limit MB",
            "type": "number",
            "description": "Optional total size of downloaded source responses in decimal MB. Leave empty for no total data limit. Each response still has a safety size limit."
          },
          "salaryJobTitle": {
            "title": "Salary Job Title",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Job title for anonymous salary reports, for example Software Engineer. Advanced processing also uses the Source work price event."
          },
          "yearsOfExperience": {
            "title": "Years Of Experience",
            "enum": [
              "ALL",
              "LESS_THAN_ONE",
              "ONE_TO_THREE",
              "FOUR_TO_SIX",
              "SEVEN_TO_NINE",
              "TEN_TO_FOURTEEN",
              "FIFTEEN_PLUS"
            ],
            "type": "string",
            "description": "Experience filter for anonymous salary reports. Company salary aggregates remain for all years.",
            "default": "ALL"
          },
          "employerIds": {
            "title": "Employer Ids",
            "type": "array",
            "description": "Glassdoor employer IDs. Works for company sections and company job searches. Use numeric IDs, for example 1651.",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "default": []
          },
          "postedBefore": {
            "title": "Posted Before",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep jobs with an estimated posting day on or before YYYY-MM-DD. Jobs without a posting estimate are excluded."
          },
          "excludeSponsored": {
            "title": "Exclude Sponsored",
            "type": "boolean",
            "description": "Remove jobs explicitly marked as sponsored by Glassdoor. Unknown sponsorship is kept.",
            "default": false
          },
          "includeTitleKeywords": {
            "title": "Include Title Keywords",
            "type": "array",
            "description": "Keep jobs with at least one of these phrases in the title.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "excludeTitleKeywords": {
            "title": "Exclude Title Keywords",
            "type": "array",
            "description": "Remove jobs with any of these phrases in the title.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "locationIncludes": {
            "title": "Location Includes",
            "type": "array",
            "description": "Keep jobs whose source location contains at least one phrase.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "reviewsEndDate": {
            "title": "Reviews End Date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string",
            "description": "Keep reviews on or before YYYY-MM-DD."
          },
          "reviewMinRating": {
            "title": "Review Min Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with an overall rating at least this high."
          },
          "reviewMaxRating": {
            "title": "Review Max Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep reviews with an overall rating at most this high."
          },
          "reviewStars": {
            "title": "Review Stars",
            "type": "array",
            "description": "Keep reviews with one of these exact overall star ratings.",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            },
            "default": []
          },
          "reviewJobTitle": {
            "title": "Review Job Title",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Keep reviews whose job title contains this text."
          },
          "reviewLocation": {
            "title": "Review Location",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Keep reviews whose location contains this text."
          },
          "reviewEmploymentStatuses": {
            "title": "Review Employment Statuses",
            "type": "array",
            "description": "Keep these source employment status labels, for example REGULAR. Matches ignore letter case.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "default": []
          },
          "minReviewWords": {
            "title": "Min Review Words",
            "minimum": 0,
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Minimum number of words across the review title, pros, cons, and advice.",
            "default": 0
          },
          "interviewDifficulty": {
            "title": "Interview Difficulty",
            "type": "array",
            "description": "Keep these interview difficulty labels. Empty keeps all difficulties.",
            "items": {
              "type": "string",
              "enum": [
                "VERY_EASY",
                "EASY",
                "AVERAGE",
                "DIFFICULT",
                "VERY_DIFFICULT"
              ],
              "enumTitles": [
                "Very easy",
                "Easy",
                "Average",
                "Difficult",
                "Very difficult"
              ]
            },
            "default": []
          },
          "includeJobs": {
            "title": "Include Jobs",
            "type": "boolean",
            "description": "Also collect jobs for each company. Job rows use the Job price event.",
            "default": false
          },
          "maxJobs": {
            "title": "Max Jobs",
            "maximum": 9007199254740991,
            "type": "integer",
            "description": "Maximum jobs per company when Include jobs is on.",
            "default": 20000
          },
          "jobQuery": {
            "title": "Job Query",
            "minLength": 1,
            "maxLength": 300,
            "type": "string",
            "description": "Optional job title within each company when Include jobs is on. Empty searches all its jobs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}