# Glassdoor Jobs Scraper (`scraper-engine/glassdoor-jobs-scraper`) Actor

🔎 Glassdoor Jobs Scraper collects fresh job listings from Glassdoor — titles, companies, locations, salaries, ratings, descriptions & links. ⚙️ Fast, reliable, export to CSV/JSON. 🚀 Perfect for recruiters, HR analytics, labor market research & competitive intel.

- **URL**: https://apify.com/scraper-engine/glassdoor-jobs-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### Glassdoor Jobs Scraper

Glassdoor Jobs Scraper is a purpose-built Apify actor that collects fresh job listings from Glassdoor job search pages and returns clean, structured results — titles, companies, locations, salaries, ratings, descriptions, and links. It solves the manual copy‑paste problem by automating extraction from Glassdoor’s SERP and employer overview pages, making it a powerful Glassdoor jobs scraper and Glassdoor job listings scraper for recruiters, analysts, and developers. Whether you’re a marketer, data analyst, researcher, or building a Node.js/Python data pipeline, this Glassdoor job postings scraper enables large‑scale job intelligence and fast exports for downstream use.

### What data / output can you get?

Below are real output fields produced for each job. Results stream to the Apify dataset so you can export to CSV or JSON.

| Data type | Description | Example value |
| --- | --- | --- |
| job_title | Title of the job | "Software Engineer" |
| job_id | Unique Glassdoor listing ID | "1234567890" |
| job_url | Absolute job URL on the regional Glassdoor site | "https://www.glassdoor.com/Job/software-engineer-jobs-SRCH_KO0,16.htm?jobListingId=1234567890" |
| job_location | Object with raw and parsed location | {"unknown":"San Francisco, CA","city":"san francisco","country":"us","zip":"94107"} |
| job_salary | Object with salary metadata | {"currency":"USD","currency_symbol":"$","pay_period":"year","estimated":true} |
| job_description | Cleaned plain‑text description | "We are seeking a Software Engineer..." |
| job_description_html | Original HTML description (if available) | "<div>We are seeking a Software Engineer…</div>" |
| job_posted_date | ISO date (derived or provided) | "2026-04-20" |
| job_remote | Remote flag when identified | true |
| job_job_types | Job type tags (e.g., fulltime/parttime) | ["fulltime"] |
| job_levels | Seniority/level when available | "mid-level" |
| job_benefits_tags | Parsed benefits tags | ["health insurance","401(k)","paid time off"] |
| job_shifts_and_schedule_tags | Shift/schedule hints | ["day shift","flexible hours"] |
| company_name | Employer name | "Example Inc." |
| company_url | Employer overview URL on Glassdoor | "https://www.glassdoor.com/Overview/Working-at-Example-EI_IE12345.htm" |
| company_headquarters_location | HQ location object | {"city":"san francisco","unknown":"San Francisco, CA"} |
| company_sizes_str | Company size string | "1,001 to 5,000 Employees" |
| company_revenue | Revenue string if available | "$500 million to $1 billion (USD)" |
| company_logo | Square logo URL when present | "https://media.glassdoor.com/sqll/12345/logo.png" |
| job_industry | Primary industry | "Information Technology" |
| job_language | Language inferred from region | "en" |
| company_uri_providers | Provider/url pairs for company URIs | [{"provider":"glassdoor","url":"https://.../Overview/Working-at-..."}] |
| all | Full enriched raw payload for advanced use | {...} |

Note: You’ll also get additional metadata fields such as job_sponsored, company_short_name, company_tag_line, company_description, company_industries, and more. Export the dataset to CSV or JSON and plug it into your analytics or automation workflows.

### Key features

- 🚀 Bold scale & accuracy (BFF + overview)
  Uses Glassdoor’s job-search BFF endpoint plus employer overview pages to assemble rich, structured results. Ideal for Glassdoor job posting extraction with consistent schema.

- 📦 Bulk input from SERP URLs
  Feed multiple Glassdoor job search URLs in one run for true batch scraping & bulk automation. Perfect when you need a Glassdoor job board scraper to cover multiple queries.

- 🎛️ Advanced client-side filtering
  Apply salary bounds, listing age (1/3/7/14/30 days), company substring, industry, domain, employer size, job type, seniority, remote‑only, radius, and minimum rating — get exactly the jobs you want.

- 🔁 Resilient proxy ladder
  Automatic escalation: direct → Apify DATACENTER → Apify RESIDENTIAL (3 retries per step), then sticky residential for the rest of the run once a residential request succeeds. Reliable Glassdoor jobs API alternative.

- 📡 Live dataset streaming
  Each job is pushed to the dataset as it’s built, so you can start consuming or exporting immediately. Great for “Glassdoor jobs export to CSV” pipelines.

- 🌍 Regional coverage
  Target specific regional sites via the country selector (e.g., us, gb, de, fr, sg, jp, kr). A flexible Glassdoor job search scraper for international markets.

- 🧑‍💻 Developer-friendly workflow
  JSON outputs with stable field names, ideal for Python Glassdoor jobs scraper or Node.js Glassdoor jobs scraper pipelines, APIs, and data processing scripts.

### How to use Glassdoor Jobs Scraper - step by step

1. Create or log in to your Apify account.
2. Open the Glassdoor Jobs Scraper on Apify.
3. In the input, set your search:
   - Provide keyword and select the country (regional site).
   - Optionally add location, salary range, listing age, job type/seniority, radius, industry/domain, employer size, application type, remote filter, and minimum rating.
4. (Optional) Configure Apify Proxy in proxyConfiguration if you anticipate regional restrictions; the actor automatically escalates from direct to datacenter and residential proxies as needed.
5. Set maxItems to control how many jobs per search to collect (default 200, up to 500).
6. Click Start to run. The actor loads Glassdoor job listings, applies filters, enriches companies, and streams results to the dataset.
7. Export your results to CSV or JSON from the run’s Dataset tab and integrate with your workflows.

Pro Tip: For advanced bulk runs from Glassdoor job search URLs, you can pass an array under urls or startUrls in raw JSON input. These are read by the actor to run multiple SERP URLs in one job.

### Use cases

| Use case name | Description |
| --- | --- |
| Recruitment sourcing & outreach | Build a fresh lead list of roles to target, filtered by salary, seniority, and employer rating for higher response rates. |
| HR analytics & labor market research | Analyze demand by title, region, and industry using structured fields like job_language, job_industry, and job_job_types. |
| Competitive intelligence | Track hiring trends of competitors by company_name and job_title across regional Glassdoor sites. |
| Location strategy | Combine job_location and radius filters to evaluate hiring intensity in specific metros. |
| API/data pipeline ingestion | Feed the JSON output into Python/Node pipelines for alerts, dashboards, or CRM enrichment. |
| Academic & policy research | Study job posting dynamics (e.g., remote adoption, benefits prevalence) using benefits and schedule tags. |

### Why choose Glassdoor Jobs Scraper?

Glassdoor Jobs Scraper prioritizes precision, reliability, and structured results for automated job-market insights.

- 🎯 Accurate, structured extraction: Combines job SERP data with employer overview enrichment for richer, more reliable rows.
- 🧰 Fine-grained filters: Control salary, age, rating, remote, radius, industry/domain/employer size, job type, and seniority to hone in on relevant roles.
- 📦 Batch-friendly: Run multiple regional searches and export to CSV/JSON — a dependable Glassdoor jobs scraping tool at scale.
- 🔐 Production-ready resilience: Automatic connection escalation with sticky residential ensures continuity when the site is protective.
- 🧑‍💻 Built for developers: Stable JSON fields and live dataset streaming fit API-first, Python, and Node.js workflows.
- 🛡️ Safer than ad hoc tools: Avoid brittle browser extensions and unstable scripts with an Apify-powered Glassdoor jobs scraping script built for repeatability.

### Is it legal / ethical to use Glassdoor Jobs Scraper?

Yes — when used responsibly. This actor collects publicly available job listings and employer overview information. You should:
- Scrape only public data and respect Glassdoor’s terms of service.
- Comply with data protection laws (e.g., GDPR, CCPA) where applicable.
- Avoid misuse of data and verify your use case with your legal team if in doubt.
- Note that this tool does not access private profiles or authenticated pages.

### Input parameters & output format

Example JSON input
```json
{
  "keyword": "Software Engineer",
  "country": "us",
  "location": "San Francisco, CA",
  "maxItems": 200,
  "includeNoSalaryJob": false,
  "companyName": "",
  "minSalary": 0,
  "maxSalary": 0,
  "fromAge": "ANY",
  "jobType": "all",
  "radius": "18",
  "industryType": "ALL",
  "domainType": "ALL",
  "employerSizes": "ALL",
  "applicationType": "ALL",
  "remoteWorkType": "ANY",
  "seniorityType": "all",
  "minRating": "0",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Parameters

| Field | Type | Description | Default | Required |
| --- | --- | --- | --- | --- |
| keyword | string | Main search text (role, skills, or title). | "Software Engineer" (prefill) | No |
| maxItems | integer | Max jobs per search run (after filters). | 200 (min 1, max 500) | No |
| country | string | Regional Glassdoor site to use. | "us" | No |
| location | string | City or region text filter. | "" | No |
| includeNoSalaryJob | boolean | Include listings without pay data when true. | false | No |
| companyName | string | Employer name substring filter. | "" | No |
| minSalary | integer | Minimum salary (site’s local currency). | 0 | No |
| maxSalary | integer (nullable) | Maximum salary (site’s local currency). Use 0 or leave empty for no limit. | null/0 | No |
| fromAge | string | Listing freshness: ANY, 1, 3, 7, 14, or 30 (days). | "ANY" | No |
| jobType | string | Contract/work style: all, fulltime, parttime, contract, temporary, temp-to-hire, internship, entrylevel, apprenticeship. | "all" | No |
| radius | string | Search radius around location: 0, 6, 12, 18, 31, 62, 124 (km). | "18" | No |
| industryType | string | Industry focus: ALL or one of the listed sectors. | "ALL" | No |
| domainType | string | Job family/domain selection. | "ALL" | No |
| employerSizes | string | Employer size: ALL, TINY, SMALL, MEDIUM, LARGE, HUGE. | "ALL" | No |
| applicationType | string | Application flow filter: ALL, EASY\_APPLY\_INCLUDED, EASY\_APPLY\_ONLY. | "ALL" | No |
| remoteWorkType | string | Remote filter: ANY or REMOTE\_ONLY. | "ANY" | No |
| seniorityType | string | Career stage: all, internship, entrylevel, midseniorlevel, director, executive. | "all" | No |
| minRating | string | Minimum employer rating: 0–5. | "0" | No |
| proxyConfiguration | object | Optional Apify Proxy settings for reliability/region. | {"useApifyProxy": false} | No |

Note (advanced): You can also provide an array of Glassdoor job search URLs via urls or startUrls in raw JSON input to run multiple SERP queries in one job. When present, keyword/country are ignored for those runs.

Example JSON output (single item)

```json
{
  "job_title": "Software Engineer",
  "job_id": "1234567890",
  "job_normalized_title": "software engineer",
  "job_url": "https://www.glassdoor.com/Job/software-engineer-jobs-SRCH_KO0,16.htm?jobListingId=1234567890",
  "job_location": {
    "unknown": "San Francisco, CA",
    "city": "san francisco",
    "country": "us",
    "zip": "94107"
  },
  "job_description": "We are seeking a Software Engineer...",
  "job_description_html": "<div>We are seeking a Software Engineer…</div>",
  "job_posted_date": "2026-04-20",
  "job_remote": true,
  "job_salary": {
    "currency": "USD",
    "currency_symbol": "$",
    "pay_period": "year",
    "estimated": true
  },
  "job_candidate_numbers": null,
  "job_job_types": ["fulltime"],
  "job_levels": "mid-level",
  "job_benefits_tags": ["health insurance", "401(k)", "paid time off"],
  "job_shifts_and_schedule_tags": ["day shift", "flexible hours"],
  "job_sponsored": false,
  "job_industry": "Information Technology",
  "job_language": "en",
  "job_poster_first_name": null,
  "job_poster_last_name": null,
  "job_poster_linkedin_profile_url": null,
  "company_uri_providers": [
    {
      "provider": "glassdoor",
      "url": "https://www.glassdoor.com/Overview/Working-at-Example-EI_IE12345.htm"
    }
  ],
  "company_name": "Example Inc.",
  "company_short_name": "Example",
  "company_logo": "https://media.glassdoor.com/sqll/12345/logo.png",
  "company_headquarters_location": {
    "city": "san francisco",
    "unknown": "San Francisco, CA"
  },
  "company_sizes_str": "1,001 to 5,000 Employees",
  "company_size": null,
  "company_website": "https://example.com",
  "company_revenue": "$500 million to $1 billion (USD)",
  "company_url": "https://www.glassdoor.com/Overview/Working-at-Example-EI_IE12345.htm",
  "company_description": "We build software at scale...",
  "company_tag_line": "Mission-driven engineering",
  "company_linkedin_follower_count": null,
  "company_industries": ["Information Technology"],
  "company_locations": null,
  "all": {
    "...": "Full enriched raw payload for reference"
  }
}
```

Fields like zip, benefits, schedule tags, industry, and descriptions may be null or missing depending on availability in the original listing.

### FAQ

#### Do I need a Glassdoor account or login to use this?

No. The actor collects publicly available job search and employer overview data and does not authenticate to Glassdoor.

#### Can I run multiple Glassdoor searches in one job?

Yes. You can pass multiple Glassdoor job search SERP URLs via urls or startUrls in the raw JSON input to batch runs in a single execution.

#### What’s the maximum number of jobs I can collect per search?

You control this with maxItems. The default is 200 and you can set up to 500 per search run.

#### Which regional Glassdoor sites are supported?

The country parameter supports many regional sites, including us, gb, de, fr, sg, jp, kr, and more. Choose the regional site that matches your search.

#### Can I export results to CSV?

Yes. All results are pushed to the Apify dataset during the run. You can export the dataset to CSV or JSON from the run’s Dataset tab.

#### Does it support remote-only filtering and Easy Apply?

Yes. Use remoteWorkType to filter remote‑only roles and applicationType to include or focus on Easy Apply listings.

#### What data does each result include?

Each row includes job fields (title, id, url, location, salary, description, posted date, types, levels, benefits, schedule) and company fields (name, URL, logo, HQ, size, revenue, industries) plus a comprehensive all payload for advanced analysis.

#### How does it handle site protection or access issues?

The actor uses a proxy ladder: it starts direct, escalates to Apify DATACENTER, then to Apify RESIDENTIAL with retries. After a successful residential response, it uses sticky residential for the rest of the run.

### Closing CTA / Final thoughts

Glassdoor Jobs Scraper is built for reliable, large‑scale extraction of Glassdoor job postings with rich company context. With robust filtering, resilient connection handling, and structured JSON output, it helps recruiters, analysts, and researchers streamline job-market intelligence and “scrape Glassdoor jobs” efficiently. Export to CSV/JSON for immediate use, or integrate with your Python/Node pipelines as a Glassdoor jobs API alternative. Start extracting smarter job insights and automate your Glassdoor job posting extraction today.

# Actor input Schema

## `keyword` (type: `string`):

💼 Type the **role, skills, or title** you care about (e.g. *Software Engineer*, *Data Analyst*). This is your main search — make it sparkle! ✨ Leave *Optional bulk URLs* empty to use this mode.

## `maxItems` (type: `integer`):

🎁✨ Set your **sweet spot** — from a tiny taste 🧁 to a **big harvest** 🌾! Higher = more rows in your dataset — **max 500** for power users. 📈🚀

## `country` (type: `string`):

🗺️ Choose the **country / language** version of Glassdoor that matches your job hunt. Each option is a real regional site — pick where you want to search! 🌟

## `location` (type: `string`):

🌆🎯 Narrow the map: *London*, *Berlin*, *Bay Area*… or leave **blank** for a **worldwide vibe** 🌍✨ — your call!

## `includeNoSalaryJob` (type: `boolean`):

✅ **On** — you’ll also see posts where pay isn’t shown (still useful!). ❌ **Off** — focus only on listings that mention compensation. 💵

## `companyName` (type: `string`):

🎯 Type part of a **company name** to lean toward those employers — or leave empty to see everyone. ✨

## `minSalary` (type: `integer`):

🎯 Only show roles **at or above** this number (uses the **local currency** for the site you picked). Set **0** for *no minimum* — dream big! 🌈

## `maxSalary` (type: `integer`):

🎀 Cap the range if you want — or leave empty / use **0** for *no upper limit*. Same currency as the site you chose! 🌍

## `fromAge` (type: `string`):

🆕 Prefer **brand-new posts** or don’t mind older ones? Pick how many **days back** you’re happy with — great for staying on top of new openings! ⚡

## `jobType` (type: `string`):

🧩 **Full-time**, **part-time**, **contract**, **internship**… pick what fits your life stage. Choose **All** to keep every option on the table! 🎉

## `radius` (type: `string`):

🗺️ When you use a **place**, this is the **circle around it** — wider = more nearby cities; tighter = closer to home. 🏡

## `industryType` (type: `string`):

🎯 **All** = every industry 🌈 — or pick a **sector** to zoom in (finance 💰, consulting 📊, HR 👥, tech 💻…). Default: **All**. ✨

## `domainType` (type: `string`):

🗂️ **All** = open playing field 🌿 — or choose a **domain** (engineering ⚙️, legal ⚖️, sales 📣…). Default: **All**. 🎨

## `employerSizes` (type: `string`):

🐣🌆 From **tiny teams** to **huge enterprises** — pick your **company-size vibe** or stay **All** for everything! 💼✨

## `applicationType` (type: `string`):

🖱️ **All** = every style ✨ — **Easy Apply included** = mix of flows — **Easy Apply only** = one-click heaven! 🎯 Default: **All**.

## `remoteWorkType` (type: `string`):

🌍 **Any** = remote **and** on-site listings 🏢 — **Remote only** = lean into **WFH-friendly** roles! 🛋️✨ Default: **Any**.

## `seniorityType` (type: `string`):

🌱 Match your **career chapter**: intern 🎓, entry 🌿, mid–senior 📊, director 👔, executive ⭐ — or **All** to explore! 🚀

## `minRating` (type: `string`):

💖 Only show employers rated **at least** this high by the community — or **0** for *no bar*. Trust your gut! 🤝

## `proxyConfiguration` (type: `object`):

🛡️ **Optional.** Use Apify’s proxies for **extra reliability** or when browsing from certain regions — pick what feels right for you. ✨ **Default:** start without extra routing; you can always enable more here! 🚀💫

## Actor input object example

```json
{
  "keyword": "Software Engineer",
  "maxItems": 200,
  "country": "us",
  "location": "",
  "includeNoSalaryJob": false,
  "companyName": "",
  "minSalary": 0,
  "fromAge": "ANY",
  "jobType": "all",
  "radius": "18",
  "industryType": "ALL",
  "domainType": "ALL",
  "employerSizes": "ALL",
  "applicationType": "ALL",
  "remoteWorkType": "ANY",
  "seniorityType": "all",
  "minRating": "0",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "Software Engineer",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/glassdoor-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keyword": "Software Engineer",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/glassdoor-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "Software Engineer",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraper-engine/glassdoor-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraper-engine/glassdoor-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Glassdoor Jobs Scraper",
        "description": "🔎 Glassdoor Jobs Scraper collects fresh job listings from Glassdoor — titles, companies, locations, salaries, ratings, descriptions & links. ⚙️ Fast, reliable, export to CSV/JSON. 🚀 Perfect for recruiters, HR analytics, labor market research & competitive intel.",
        "version": "1.0",
        "x-build-id": "x64gpdit0hb9Jgvza"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraper-engine~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraper-engine-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/scraper-engine~glassdoor-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraper-engine-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/scraper-engine~glassdoor-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraper-engine-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": {
                    "keyword": {
                        "title": "🔎✨ What are you looking for?",
                        "type": "string",
                        "description": "💼 Type the **role, skills, or title** you care about (e.g. *Software Engineer*, *Data Analyst*). This is your main search — make it sparkle! ✨ Leave *Optional bulk URLs* empty to use this mode."
                    },
                    "maxItems": {
                        "title": "🔢📊 How many jobs should we gather?",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "🎁✨ Set your **sweet spot** — from a tiny taste 🧁 to a **big harvest** 🌾! Higher = more rows in your dataset — **max 500** for power users. 📈🚀",
                        "default": 200
                    },
                    "country": {
                        "title": "🌍🌐 Which Glassdoor 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": "🗺️ Choose the **country / language** version of Glassdoor that matches your job hunt. Each option is a real regional site — pick where you want to search! 🌟",
                        "default": "us"
                    },
                    "location": {
                        "title": "📍🏙️🗺️ City or region (optional)",
                        "type": "string",
                        "description": "🌆🎯 Narrow the map: *London*, *Berlin*, *Bay Area*… or leave **blank** for a **worldwide vibe** 🌍✨ — your call!",
                        "default": ""
                    },
                    "includeNoSalaryJob": {
                        "title": "💰📭 Include jobs without a listed salary?",
                        "type": "boolean",
                        "description": "✅ **On** — you’ll also see posts where pay isn’t shown (still useful!). ❌ **Off** — focus only on listings that mention compensation. 💵",
                        "default": false
                    },
                    "companyName": {
                        "title": "🏢💼 Dream employer? (optional)",
                        "type": "string",
                        "description": "🎯 Type part of a **company name** to lean toward those employers — or leave empty to see everyone. ✨",
                        "default": ""
                    },
                    "minSalary": {
                        "title": "💵⬆️ Minimum salary (floor)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "🎯 Only show roles **at or above** this number (uses the **local currency** for the site you picked). Set **0** for *no minimum* — dream big! 🌈",
                        "default": 0
                    },
                    "maxSalary": {
                        "title": "💵⬇️ Maximum salary (ceiling)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "🎀 Cap the range if you want — or leave empty / use **0** for *no upper limit*. Same currency as the site you chose! 🌍"
                    },
                    "fromAge": {
                        "title": "📅⏰ How fresh should listings be?",
                        "enum": [
                            "ANY",
                            "1",
                            "3",
                            "7",
                            "14",
                            "30"
                        ],
                        "type": "string",
                        "description": "🆕 Prefer **brand-new posts** or don’t mind older ones? Pick how many **days back** you’re happy with — great for staying on top of new openings! ⚡",
                        "default": "ANY"
                    },
                    "jobType": {
                        "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**… pick what fits your life stage. Choose **All** to keep every option on the table! 🎉",
                        "default": "all"
                    },
                    "radius": {
                        "title": "📍🚗 How wide should we search?",
                        "enum": [
                            "0",
                            "6",
                            "12",
                            "18",
                            "31",
                            "62",
                            "124"
                        ],
                        "type": "string",
                        "description": "🗺️ When you use a **place**, this is the **circle around it** — wider = more nearby cities; tighter = closer to home. 🏡",
                        "default": "18"
                    },
                    "industryType": {
                        "title": "🏭🧱 Industry — sector focus",
                        "enum": [
                            "ALL",
                            "FINANCIAL",
                            "MANAGEMENT_AND_CONSULTING",
                            "HUMAN_RESSOURCES_AND_RECRUITMENT",
                            "INFORMATION_TECHNOLOGIE"
                        ],
                        "type": "string",
                        "description": "🎯 **All** = every industry 🌈 — or pick a **sector** to zoom in (finance 💰, consulting 📊, HR 👥, tech 💻…). Default: **All**. ✨",
                        "default": "ALL"
                    },
                    "domainType": {
                        "title": "ℹ️🎓 Domain — job family",
                        "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": "🗂️ **All** = open playing field 🌿 — or choose a **domain** (engineering ⚙️, legal ⚖️, sales 📣…). Default: **All**. 🎨",
                        "default": "ALL"
                    },
                    "employerSizes": {
                        "title": "👥🏢 Employer size — team scale",
                        "enum": [
                            "ALL",
                            "TINY",
                            "SMALL",
                            "MEDIUM",
                            "LARGE",
                            "HUGE"
                        ],
                        "type": "string",
                        "description": "🐣🌆 From **tiny teams** to **huge enterprises** — pick your **company-size vibe** or stay **All** for everything! 💼✨",
                        "default": "ALL"
                    },
                    "applicationType": {
                        "title": "🔗📎 Application type — how to apply",
                        "enum": [
                            "ALL",
                            "EASY_APPLY_INCLUDED",
                            "EASY_APPLY_ONLY"
                        ],
                        "type": "string",
                        "description": "🖱️ **All** = every style ✨ — **Easy Apply included** = mix of flows — **Easy Apply only** = one-click heaven! 🎯 Default: **All**.",
                        "default": "ALL"
                    },
                    "remoteWorkType": {
                        "title": "🏡🌴 Remote work — WFH filter",
                        "enum": [
                            "ANY",
                            "REMOTE_ONLY"
                        ],
                        "type": "string",
                        "description": "🌍 **Any** = remote **and** on-site listings 🏢 — **Remote only** = lean into **WFH-friendly** roles! 🛋️✨ Default: **Any**.",
                        "default": "ANY"
                    },
                    "seniorityType": {
                        "title": "🙌📈 Seniority — career stage",
                        "enum": [
                            "all",
                            "internship",
                            "entrylevel",
                            "midseniorlevel",
                            "director",
                            "executive"
                        ],
                        "type": "string",
                        "description": "🌱 Match your **career chapter**: intern 🎓, entry 🌿, mid–senior 📊, director 👔, executive ⭐ — or **All** to explore! 🚀",
                        "default": "all"
                    },
                    "minRating": {
                        "title": "⭐🛡️ Minimum employer rating",
                        "enum": [
                            "0",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "💖 Only show employers rated **at least** this high by the community — or **0** for *no bar*. Trust your gut! 🤝",
                        "default": "0"
                    },
                    "proxyConfiguration": {
                        "title": "🌐🔒 Connection & privacy (Apify Proxy)",
                        "type": "object",
                        "description": "🛡️ **Optional.** Use Apify’s proxies for **extra reliability** or when browsing from certain regions — pick what feels right for you. ✨ **Default:** start without extra routing; you can always enable more here! 🚀💫"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
