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

🔍 Glassdoor Jobs Scraper extracts structured job listings, salaries, company ratings & reviews from Glassdoor at scale. ⚙️ Filter by role, location, or remote; schedule runs; export CSV/JSON. 🚀 Ideal for recruitment, market research & competitive intelligence.

- **URL**: https://apify.com/scrapier/glassdoor-jobs-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (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 $5.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

The Glassdoor Jobs Scraper extracts structured job listings and company insights from regional Glassdoor sites at scale — a fast, reliable way to scrape Glassdoor job listings for recruiters, analysts, and growth teams. It solves the manual copy‑paste problem by returning clean, typed fields so you can build dashboards, enrich pipelines, or export datasets for analysis. This Glassdoor job postings scraper doubles as a Glassdoor jobs API alternative, built in Python, and designed for automated Glassdoor job search scraping at scale.

### What data / output can you get?

Below are examples of structured fields the scraper saves to the Apify dataset (exportable to JSON or CSV). Each row represents one job, with both job and employer details.

| Data field | Description | Example value |
| --- | --- | --- |
| job_title | Visible title of the job | “Software Engineer” |
| job_id | Unique listing ID parsed from the job link | “1234567890” |
| job_url | Absolute URL to the job details | “https://www.glassdoor.com/job-listing/…” |
| job_location.city | Parsed city when available | “san francisco” |
| job_location.country | ISO-like country code when available | “us” |
| job_posted_date | ISO date derived from discoverDate or ageInDays | “2026-04-20” |
| job_remote | Remote/WFH flag inferred from attributes | true |
| job_salary.pay_period | Pay period text (normalized lower-case) | “year” |
| job_salary.currency | ISO currency code if present | “USD” |
| job_benefits_tags | Extracted benefits tags from attributes/highlights | [“health insurance”, “401(k)”] |
| job_job_types | Job type(s) inferred from Indeed codes or header | [“fulltime”] |
| company_name | Employer name from overview/header | “Acme Corp” |
| company_url | Employer overview page URL | “https://www.glassdoor.com/Overview/Working-at-Acme…” |
| company_sizes_str | Company size string from overview | “1001 to 5000 Employees” |
| job_description | Clean, plain‑text description | “We are looking for a Software Engineer who…” |
| all | Raw job payload enriched with employer awards | { …full JSON… } |

Bonus: You also get fields like job_description_html, job_sponsored, job_industry, job_language, company_logo, company_headquarters_location, company_revenue, company_website, company_industries, and company_uri_providers. Results are saved to the Apify dataset, ready to download as JSON or CSV.

### Key features

- 🚀 Robust BFF + employer enrichment
  Queries Glassdoor’s job-search BFF endpoint and enriches results with employer overview data, so you capture both listings and deeper company context.

- 🎯 Powerful filtering
  Apply filters for salary range, listing freshness, company substring, industry, domain, employer size, job type, seniority, remote‑only, radius, and minimum employer rating — all from a single run.

- 🌍 Regional site support
  Choose from multiple Glassdoor country sites (e.g., us, gb, de, fr, es, in, jp, kr, and more) to focus your search where it matters.

- 🧭 No login required
  Works on public job listings without cookies or authentication.

- 🔄 Live dataset push
  Each job row is pushed as soon as it’s built, so you can start reviewing and exporting immediately.

- 🧠 Reliability via smart connection ladder
  Automatic escalation from direct → Apify DATACENTER → Apify RESIDENTIAL, with sticky residential after the first residential success for stable throughput.

- 🧪 Developer‑friendly, Python-powered
  Built with Apify’s Python runtime and AsyncSession for performance. Access your data programmatically via Apify’s API, or wire it into your data pipelines as a Glassdoor jobs scraper Python workflow.

### 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 the Apify platform.
3. In the input form, set your core search:
   - keyword: the role or skills you’re targeting (e.g., “Software Engineer”).
   - country: pick the regional Glassdoor site (e.g., us, gb, de).
4. Optional — refine your search:
   - location, salary range (minSalary, maxSalary), fromAge, jobType, radius, industryType, domainType, employerSizes, applicationType, remoteWorkType, seniorityType, minRating.
5. Optional — proxyConfiguration:
   - Leave off for direct connection, or configure Apify Proxy for added reliability.
6. Click Start to run the scraper. Watch logs for live progress as jobs are discovered and saved.
7. When finished, go to the Dataset tab to view results. Export your data as JSON or CSV for analysis or downstream workflows.

Pro Tip: Use the Apify API to schedule runs, fetch datasets programmatically, and integrate this Glassdoor job board scraper into your data pipelines as a Glassdoor jobs API alternative.

### Use cases

| Use case | Description |
| --- | --- |
| Recruitment pipeline enrichment | Aggregate current openings by title, location, employer size, and benefits to prioritize outreach and fill roles faster. |
| Market and competitor research | Track hiring signals by domain and industry to map where competitors are investing and expanding geographically. |
| Salary range benchmarking | Filter to listings with pay data and analyze job_salary fields to benchmark compensation by location and seniority. |
| Remote hiring analysis | Apply the remote-only filter to measure distributed hiring trends across roles and countries. |
| Data analytics & dashboards | Export CSV/JSON to BI tools and create time-series dashboards on job volumes, industries, and rating thresholds. |
| Academic & labor studies | Collect structured data for longitudinal studies on job markets, domains, and employer characteristics. |
| API pipelines & automation | Use Apify’s API to trigger runs and pull datasets into ETL workflows as a Glassdoor jobs crawler component. |

### Why choose Glassdoor Jobs Scraper?

Purpose‑built for precision, scale, and reliability, this Glassdoor jobs scraper delivers clean, structured outputs with production‑ready robustness.

- ✅ Structured accuracy: Normalized fields for locations, salary meta, benefits, job types, and employer info.
- 🌍 Global coverage: Target multiple regional Glassdoor sites with one tool.
- 📈 Scalable filtering: Fine‑tune salary, age, remote, industry, and more for high‑signal datasets.
- 🧰 Developer access: Drive runs and consume results via the Apify API in your Python workflows.
- 🛡️ Built‑in resilience: Smart proxy ladder (direct → DATACENTER → RESIDENTIAL) and sticky residential for consistent results.
- 💸 Cost‑effective automation: Export datasets to CSV/JSON and avoid fragile browser extensions or one‑off scripts.
- 🔌 Workflow‑ready: Designed for hands‑off data extraction to power recruitment, research, and analytics pipelines.

Bottom line: a reliable Glassdoor jobs scraper tool that outperforms ad‑hoc scripts and unstable alternatives.

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

Yes — when used responsibly. This actor collects publicly available job listings and employer information. You should:

- Scrape only public data and respect Glassdoor’s terms of use.
- Comply with applicable regulations (e.g., GDPR, CCPA) when storing or processing data.
- Avoid collecting or using private, authenticated, or personal data beyond what’s publicly available.
- Consult your legal team for edge cases or jurisdiction‑specific requirements.

### Input parameters & output format

Example JSON input
```json
{
  "keyword": "Software Engineer",
  "maxItems": 200,
  "country": "us",
  "location": "San Francisco, CA",
  "includeNoSalaryJob": false,
  "companyName": "Acme",
  "minSalary": 100000,
  "maxSalary": 180000,
  "fromAge": "7",
  "jobType": "fulltime",
  "radius": "18",
  "industryType": "INFORMATION_TECHNOLOGIE",
  "domainType": "ENGENERING",
  "employerSizes": "MEDIUM",
  "applicationType": "EASY_APPLY_INCLUDED",
  "remoteWorkType": "REMOTE_ONLY",
  "seniorityType": "entrylevel",
  "minRating": "3",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Input fields

| Field | Type | Description | Default | Required |
| --- | --- | --- | --- | --- |
| keyword | string | Role, skills, or title for the search (used with country). | — | No |
| maxItems | integer | Maximum number of jobs to collect per run (1–500). | 200 | No |
| country | string | Regional Glassdoor site to target (e.g., us, gb, de, fr, es, in, jp, kr, etc.). | "us" | No |
| location | string | Optional city/region text to focus results (resolved via Glassdoor location AJAX). | "" | No |
| includeNoSalaryJob | boolean | Include listings without pay information when true. | false | No |
| companyName | string | Filter by employer name substring. | "" | No |
| minSalary | integer | Minimum salary filter in the site’s local currency. | 0 | No |
| maxSalary | integer (nullable) | Maximum salary filter in the site’s local currency; set 0 or omit for no cap. | — | No |
| fromAge | string (enum) | Listing freshness: ANY, 1, 3, 7, 14, 30 (days). | "ANY" | No |
| jobType | string (enum) | Contract/work style: all, fulltime, parttime, contract, temporary, temp-to-hire, internship, entrylevel, apprenticeship. | "all" | No |
| radius | string (enum) | Search radius in km around location: "0","6","12","18","31","62","124". | "18" | No |
| industryType | string (enum) | Industry sector filter, or ALL for everything. | "ALL" | No |
| domainType | string (enum) | Job family/domain filter, or ALL for everything. | "ALL" | No |
| employerSizes | string (enum) | Employer size filter: ALL, TINY, SMALL, MEDIUM, LARGE, HUGE. | "ALL" | No |
| applicationType | string (enum) | Application flow: ALL, EASY\_APPLY\_INCLUDED, EASY\_APPLY\_ONLY. | "ALL" | No |
| remoteWorkType | string (enum) | Remote filter: ANY or REMOTE\_ONLY. | "ANY" | No |
| seniorityType | string (enum) | Seniority stage: all, internship, entrylevel, midseniorlevel, director, executive. | "all" | No |
| minRating | string (enum) | Minimum employer rating: "0"–"5". | "0" | No |
| proxyConfiguration | object | Optional Apify Proxy settings for reliability and georouting. | { "useApifyProxy": false } | No |

Example JSON output

```json
{
  "job_title": "Software Engineer",
  "job_id": "1234567890",
  "job_normalized_title": "software engineer",
  "job_url": "https://www.glassdoor.com/job-listing/software-engineer-JV_IC1147401_KO0,17.htm?jobListingId=1234567890",
  "job_location": {
    "unknown": "San Francisco, CA",
    "city": "san francisco",
    "country": "us",
    "zip": "94105"
  },
  "job_description": "We are looking for a Software Engineer who will build...",
  "job_description_html": "<p>We are looking for a Software Engineer...</p>",
  "job_posted_date": "2026-04-20",
  "job_remote": true,
  "job_salary": {
    "currency": "USD",
    "currency_symbol": "$",
    "pay_period": "year",
    "estimated": false
  },
  "job_candidate_numbers": null,
  "job_job_types": ["fulltime"],
  "job_levels": "entry level",
  "job_benefits_tags": ["health insurance", "401(k)"],
  "job_shifts_and_schedule_tags": ["day shift"],
  "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-Acme-EI_IE12345.htm"
    }
  ],
  "company_name": "Acme Corp",
  "company_short_name": "Acme",
  "company_logo": "https://media.glassdoor.com/sqll/12345/acme-squarelogo.png",
  "company_headquarters_location": {
    "city": "san francisco",
    "unknown": "San Francisco, CA"
  },
  "company_sizes_str": "1001 to 5000 Employees",
  "company_size": null,
  "company_website": "https://www.acme.com",
  "company_revenue": "$500 million to $1 billion (USD)",
  "company_url": "https://www.glassdoor.com/Overview/Working-at-Acme-EI_IE12345.htm",
  "company_description": "Acme Corp is a global technology company...",
  "company_tag_line": "Building the future.",
  "company_linkedin_follower_count": null,
  "company_industries": ["Information Technology"],
  "company_locations": null,
  "all": {
    "...": "Full enriched jobview payload with awards and employer details"
  }
}
```

Notes:

- Some fields may be null or “Unknown” when not present on the source page (e.g., job\_candidate\_numbers, company\_size, job\_description\_html).
- job\_location fields depend on what Glassdoor provides; when parsing is not possible, unknown retains the original location string.

### FAQ

#### Do I need to log in to use this Glassdoor Jobs Scraper?

No. The scraper works on publicly available listings and does not require authentication or cookies.

#### Can I filter by salary, remote, or employer rating?

Yes. You can set minSalary/maxSalary, choose REMOTE\_ONLY via remoteWorkType, and filter by minRating to focus on higher‑rated employers.

#### How many jobs can I collect per run?

You control this with maxItems, up to 500 per run. Each run stops after collecting up to the specified number of matching jobs.

#### Which Glassdoor regions are supported?

Multiple regional sites are supported via the country parameter (for example: us, gb, de, fr, es, in, jp, kr, and more).

#### What export formats are available?

Results are saved to the Apify dataset and can be downloaded in JSON or CSV.

#### What data points are included for each job?

You’ll receive job fields (title, id, URL, location, description, salary meta, job types, benefits, remote flag, posted date), company fields (name, URL, size, revenue, HQ, website, industries), and the all field with the enriched raw payload.

#### Is this a Glassdoor jobs API alternative?

Yes. It serves as a reliable Glassdoor job data extraction workflow that you can drive via Apify’s API, making it a practical API alternative for many use cases.

#### Is this tool built in Python?

Yes. The Glassdoor jobs scraper Python implementation runs on Apify’s Python runtime and uses asynchronous requests for performance.

### Closing thoughts

The Glassdoor Jobs Scraper is built for structured, scalable job data extraction from regional Glassdoor sites. With powerful filters, employer enrichment, and a resilient connection strategy, it helps recruiters, analysts, developers, and researchers turn job ads into actionable datasets. Export to JSON/CSV, automate via the Apify API, and integrate this Glassdoor careers scraper into your pipelines as a dependable Glassdoor jobs API alternative. Start extracting smarter job insights at scale 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("scrapier/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("scrapier/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 scrapier/glassdoor-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapier/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 extracts structured job listings, salaries, company ratings & reviews from Glassdoor at scale. ⚙️ Filter by role, location, or remote; schedule runs; export CSV/JSON. 🚀 Ideal for recruitment, market research & competitive intelligence.",
        "version": "1.0",
        "x-build-id": "NeHoiXuGz1chU2BGn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~glassdoor-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-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/scrapier~glassdoor-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
