> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Glassdoor job listings

> Searches Glassdoor for `keyword` and returns the job listings as JSON: `title`, `jobId`, `url`, `company` (+ `companyId`, `companyRating`, `companyLogo`), `location`, `ageInDays`, `salary` (p10/median/p90, payPeriod, currency, source), `snippet`, `skills`, `easyApply` and `sponsored`. Filter with `location`, `from_age`, `job_type`, `min_salary`, `experience` and `remote`, sort with `sort` (recency / relevance), and collect up to `max_results` across pages.



## OpenAPI

````yaml /api-reference/openapi.json post /jobs/glassdoor
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Three endpoints are
    documented here: page-source extraction, Google SERP scraping, and image
    fetch. All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /jobs/glassdoor:
    post:
      tags:
        - Plugins
      summary: Scrape Glassdoor job listings
      description: >-
        Searches Glassdoor for `keyword` and returns the job listings as JSON:
        `title`, `jobId`, `url`, `company` (+ `companyId`, `companyRating`,
        `companyLogo`), `location`, `ageInDays`, `salary` (p10/median/p90,
        payPeriod, currency, source), `snippet`, `skills`, `easyApply` and
        `sponsored`. Filter with `location`, `from_age`, `job_type`,
        `min_salary`, `experience` and `remote`, sort with `sort` (recency /
        relevance), and collect up to `max_results` across pages.
      operationId: glassdoor_jobs_search_jobs_glassdoor_post
      parameters:
        - name: keyword
          in: query
          required: true
          schema:
            type: string
            description: Job title / keywords to search, e.g. 'software engineer'.
            title: Keyword
          description: Job title / keywords to search, e.g. 'software engineer'.
        - name: location
          in: query
          required: false
          schema:
            type: string
            description: >-
              Location name to filter by, e.g. 'New York, NY'. Resolved to
              Glassdoor's location id automatically; pass loc_id to skip
              resolution.
            title: Location
          description: >-
            Location name to filter by, e.g. 'New York, NY'. Resolved to
            Glassdoor's location id automatically; pass loc_id to skip
            resolution.
        - name: loc_id
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Glassdoor numeric location id (overrides `location` resolution).
            title: Loc Id
          description: Glassdoor numeric location id (overrides `location` resolution).
        - name: loc_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: 'Location type for loc_id: C=city, S=state, N=nation, M=metro.'
            title: Loc Type
          description: 'Location type for loc_id: C=city, S=state, N=nation, M=metro.'
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: 'Ordering: recency, relevance.'
            default: recency
            title: Sort
          description: 'Ordering: recency, relevance.'
        - name: job_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Employment type: fulltime, parttime, contract, internship,
              temporary, apprenticeship. Omit for any.
            title: Job Type
          description: >-
            Employment type: fulltime, parttime, contract, internship,
            temporary, apprenticeship. Omit for any.
        - name: experience
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Experience level: internship, entrylevel, midseniorlevel,
              director, executive. Omit for any.
            title: Experience
          description: >-
            Experience level: internship, entrylevel, midseniorlevel, director,
            executive. Omit for any.
        - name: from_age
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Posted within N days (1, 3, 7, 14 or 30).
            title: From Age
          description: Posted within N days (1, 3, 7, 14 or 30).
        - name: min_salary
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                minimum: 0
              - type: 'null'
            description: Minimum annual salary.
            title: Min Salary
          description: Minimum annual salary.
        - name: remote
          in: query
          required: false
          schema:
            type: boolean
            description: Remote jobs only.
            default: false
            title: Remote
          description: Remote jobs only.
        - name: radius
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                minimum: 0
              - type: 'null'
            description: Search radius in miles around the location.
            title: Radius
          description: Search radius in miles around the location.
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            maximum: 900
            minimum: 1
            description: How many jobs to collect across pages (~30 per page).
            default: 30
            title: Max Results
          description: How many jobs to collect across pages (~30 per page).
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: 1-based results page to start from.
            default: 1
            title: Page
          description: 1-based results page to start from.
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Exit-IP country (ISO-2). Defaults to a US exit for Glassdoor.
            title: Proxy Country
          description: Exit-IP country (ISO-2). Defaults to a US exit for Glassdoor.
      responses:
        '200':
          description: JSON with a `jobs` array plus totals and the resolved query.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: Blocked by Glassdoor or no results island returned.
        '504':
          description: Fetch timed out.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````