{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs Scraper ⭐ (employer rating on every job)",
    "description": "Glassdoor job listings as JSON, with the hiring company's own Glassdoor star rating on every row, so you can ask for jobs at companies rated 4.0 and up in one pass. Title, company, rating, location, pay range, Easy Apply, posted date, skills and the apply link. No login, no API key.",
    "version": "0.1",
    "x-build-id": "y1wuoXIjMjL1sjwN4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tagadanar~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tagadanar-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/tagadanar~glassdoor-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tagadanar-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/tagadanar~glassdoor-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tagadanar-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": {
          "keywords": {
            "title": "What (job titles or skills)",
            "type": "array",
            "description": "One entry per search, exactly what you would type in Glassdoor's job box: a job title, a skill, or a company name. Each entry runs as its own search and the results are merged and de-duplicated. Leave empty to browse a whole location.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Where",
            "type": "string",
            "description": "A city (<code>Austin, TX</code>), a state (<code>Texas</code>) or a country (<code>United States</code>). The name is resolved against Glassdoor's own location list, and a name it does not know is reported by name instead of quietly returning zero jobs."
          },
          "minEmployerRating": {
            "title": "Only companies rated at least",
            "enum": [
              "any",
              "2.0",
              "2.5",
              "3.0",
              "3.5",
              "4.0",
              "4.5"
            ],
            "type": "string",
            "description": "The headline filter. Every Glassdoor job carries the hiring company's own star rating, so you can ask for jobs at companies people actually rate well without a second scrape. Glassdoor's own filter is approximate (asking for 4.0 returns 3.9s and lets promoted listings through), so the exact bar is applied again on every row before you are charged for it.",
            "default": "any"
          },
          "includeUnratedEmployers": {
            "title": "Keep companies Glassdoor has not rated",
            "type": "boolean",
            "description": "About one job in six is posted by a company with no Glassdoor rating yet, often a small employer or a recruiter. Off, a minimum rating drops those rows. On, they are kept with an empty rating. Ignored when no minimum rating is set.",
            "default": false
          },
          "maxAgeDays": {
            "title": "Posted in the last",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Only listings posted recently. Set it to Today and schedule this actor daily to get a feed of brand-new postings and nothing else.",
            "default": "any"
          },
          "easyApplyOnly": {
            "title": "Easy Apply listings only",
            "type": "boolean",
            "description": "Keep only jobs you can apply to on Glassdoor itself, without being sent to the company's own application form.",
            "default": false
          },
          "remoteOnly": {
            "title": "Remote listings only",
            "type": "boolean",
            "description": "Keep only jobs Glassdoor labels as remote or work-from-home.",
            "default": false
          },
          "minSalary": {
            "title": "Paying at least (per year)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Lower end of the yearly pay in the location's currency, for example 120000. Glassdoor matches it against its own pay figure for the listing, which is an estimate on most ads."
          },
          "radiusMiles": {
            "title": "Within",
            "enum": [
              "0",
              "5",
              "10",
              "15",
              "25",
              "50",
              "100"
            ],
            "type": "string",
            "description": "How far around the location to look. Glassdoor's own default is 25 miles.",
            "default": "25"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Relevance is Glassdoor's default. Choose Newest first when you cap the results and want the most recent listings rather than the best-matching ones.",
            "default": "relevance"
          },
          "includeExpired": {
            "title": "Keep listings already marked closed",
            "type": "boolean",
            "description": "Glassdoor occasionally still returns a listing it has flagged as expired. Off, those rows are dropped and never billed. On, they are kept with an expiry flag.",
            "default": false
          },
          "searchUrls": {
            "title": "Or paste Glassdoor search links",
            "type": "array",
            "description": "Instead of a keyword and a location, paste the address bar from a Glassdoor search results page, for example <code>https://www.glassdoor.com/Job/austin-tx-software-engineer-jobs-SRCH_IL.0,9_IC1139761_KO10,27.htm</code>. The keyword and the location are read out of the link; the filters above still apply on top.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many jobs across all searches. You are only charged for jobs actually delivered. Glassdoor itself serves at most 900 results per search, so ask for more than that by splitting the search across several keywords or cities.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}