{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs Scraper: Questions & Difficulty Ratings",
    "description": "💼 Glassdoor Jobs Scraper extracts Glassdoor job postings at scale: titles, companies, locations, salary ranges, employer ratings, descriptions & URLs. 📊 Export-ready data for HR, recruiters & analysts to build pipelines, track pay trends and monitor competitors. 🚀",
    "version": "0.1",
    "x-build-id": "bvmmFVP9FdIaYazUv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-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/api-empire~glassdoor-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-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/api-empire~glassdoor-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-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",
        "properties": {
          "jobTitleOrSkills": {
            "title": "🔎 Job title or skills",
            "type": "string",
            "description": "Role, skill, or title to search for (e.g. 'Software Engineer', 'Data Analyst'). Leave empty when using 'Bulk Glassdoor search URLs' instead. (Same value as the base actor's 'keyword' input — either key works.)"
          },
          "maxJobListings": {
            "title": "🔢 Max job listings to collect",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Upper bound on job rows returned by this run (max 10000). Same meaning as the base actor's 'maxItems'."
          },
          "glassdoorRegion": {
            "title": "🌍 Glassdoor regional site",
            "enum": [
              "us",
              "ar",
              "au",
              "be_nl",
              "be_fr",
              "br",
              "ca_en",
              "ca_fr",
              "de",
              "es",
              "fr",
              "hk",
              "in",
              "ie",
              "it",
              "mx",
              "nl",
              "nz",
              "at",
              "ch_de",
              "ch_fr",
              "sg",
              "gb",
              "jp",
              "kr"
            ],
            "type": "string",
            "description": "Which country/language edition of Glassdoor to search. Same meaning as the base actor's 'country'."
          },
          "cityOrRegion": {
            "title": "📍 City or region (optional)",
            "type": "string",
            "description": "Narrow results to a place (e.g. 'London', 'Bay Area'), or leave blank to search the whole region. Same meaning as the base actor's 'location'."
          },
          "includeInterviewInsights": {
            "title": "🎤 Fetch interview questions & difficulty ratings (new)",
            "type": "boolean",
            "description": "When ON, this Actor additionally fetches each matched employer's real interview questions, difficulty rating, and reported experience outcome from Glassdoor's Interview pages, and computes a local difficulty index + positive/neutral/negative experience breakdown per employer. Interview rows are saved as separate child rows (type='interview') linked to their employer.",
            "default": true
          },
          "maxInterviewsPerEmployer": {
            "title": "🗂️ Max interview reports per employer",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many of an employer's most recent interview reports to pull (each becomes one child row with its own question text, difficulty, and outcome). Higher = a more reliable difficulty index and experience breakdown, at the cost of more requests. Default 10.",
            "default": 10
          },
          "salaryFloor": {
            "title": "💵 Minimum salary (floor)",
            "minimum": 0,
            "type": "integer",
            "description": "Only show roles at or above this number, in the local currency of the chosen Glassdoor site. 0 = no minimum. Same meaning as the base actor's 'minSalary'."
          },
          "salaryCeiling": {
            "title": "💵 Maximum salary (ceiling)",
            "minimum": 0,
            "type": "integer",
            "description": "Cap the salary range, or leave 0 for no upper limit. Same meaning as the base actor's 'maxSalary'."
          },
          "includeUnlistedSalaryJobs": {
            "title": "📭 Include jobs with no listed salary?",
            "type": "boolean",
            "description": "ON = also include postings that don't mention pay. OFF = only listings that mention compensation. Same meaning as the base actor's 'includeNoSalaryJob'."
          },
          "postedWithin": {
            "title": "📅 Posted within",
            "enum": [
              "ANY",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "How fresh listings should be. Same meaning as the base actor's 'fromAge'."
          },
          "employmentType": {
            "title": "📄 Contract & work style",
            "enum": [
              "all",
              "fulltime",
              "parttime",
              "contract",
              "temporary",
              "temp-to-hire",
              "internship",
              "entrylevel",
              "apprenticeship"
            ],
            "type": "string",
            "description": "Full-time, part-time, contract, internship, etc. Same meaning as the base actor's 'jobType'."
          },
          "searchRadiusKm": {
            "title": "📍 Search radius around the chosen place",
            "enum": [
              "0",
              "6",
              "12",
              "18",
              "31",
              "62",
              "124"
            ],
            "type": "string",
            "description": "Circle size (in km) around 'City or region'. Same meaning as the base actor's 'radius'."
          },
          "industryFocus": {
            "title": "🏭 Industry focus",
            "enum": [
              "ALL",
              "FINANCIAL",
              "MANAGEMENT_AND_CONSULTING",
              "HUMAN_RESSOURCES_AND_RECRUITMENT",
              "INFORMATION_TECHNOLOGIE"
            ],
            "type": "string",
            "description": "Restrict to one sector, or 'All'. Same meaning as the base actor's 'industryType'."
          },
          "jobFamily": {
            "title": "🗂️ Job family / domain",
            "enum": [
              "ALL",
              "ADMINISTATION",
              "AFFAIRS",
              "CONSEIL",
              "FORMATION",
              "ENGENERING",
              "FINANCE",
              "HUMAN_RESSOURCES_AND_RECRUITMENTS",
              "INFORMATION_TECHNOLOGIE",
              "LEGAL",
              "MEDIA_AND_COMMUNICATION",
              "PRODUCT_PROJECT_MANAGEMENT",
              "SCIENCE_RESEARCH",
              "SELL_AREA"
            ],
            "type": "string",
            "description": "Restrict to one job family, or 'All'. Same meaning as the base actor's 'domainType'."
          },
          "companyScale": {
            "title": "👥 Employer size",
            "enum": [
              "ALL",
              "TINY",
              "SMALL",
              "MEDIUM",
              "LARGE",
              "HUGE"
            ],
            "type": "string",
            "description": "Restrict to a company-size band, or 'All'. Same meaning as the base actor's 'employerSizes'."
          },
          "applyMethod": {
            "title": "🔗 Application method",
            "enum": [
              "ALL",
              "EASY_APPLY_INCLUDED",
              "EASY_APPLY_ONLY"
            ],
            "type": "string",
            "description": "All styles, or Easy Apply only/included. Same meaning as the base actor's 'applicationType'."
          },
          "workLocationMode": {
            "title": "🏡 Work location mode",
            "enum": [
              "ANY",
              "REMOTE_ONLY"
            ],
            "type": "string",
            "description": "Any (remote + on-site), or remote/WFH only. Same meaning as the base actor's 'remoteWorkType'."
          },
          "careerLevel": {
            "title": "📈 Career / seniority level",
            "enum": [
              "all",
              "internship",
              "entrylevel",
              "midseniorlevel",
              "director",
              "executive"
            ],
            "type": "string",
            "description": "Match a career stage, or 'All'. Same meaning as the base actor's 'seniorityType'."
          },
          "targetEmployerName": {
            "title": "🏢 Target employer (optional)",
            "type": "string",
            "description": "Lean toward listings from a specific company, or leave empty for everyone. Same meaning as the base actor's 'companyName'."
          },
          "minEmployerRating": {
            "title": "⭐ Minimum employer rating",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Only show employers rated at least this high, or 0 for no bar. Same meaning as the base actor's 'minRating'."
          },
          "bulkSearchUrls": {
            "title": "🔗 Bulk Glassdoor search URLs (optional)",
            "type": "array",
            "description": "One or more full Glassdoor job-search URLs (e.g. https://www.glassdoor.com/Job/software-engineer-jobs-SRCH_KO0,16.htm) to run instead of 'Job title or skills'. Same meaning as the base actor's 'urls'/'startUrls'.",
            "items": {
              "type": "string"
            }
          },
          "requestPaceMs": {
            "title": "⏱️ Delay between search pages (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional pause between job-search page requests, in milliseconds. Same meaning as the base actor's 'requestDelayMs'."
          },
          "connectionMode": {
            "title": "🌐 Connection & privacy (Apify Proxy)",
            "type": "object",
            "description": "Optional Apify Proxy configuration, used for job search, company pages, AND the new interview-page fetch. Same meaning as the base actor's 'proxyConfiguration'."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}