Glassdoor Jobs Scraper
Pricing
from $3.20 / 1,000 results
Glassdoor Jobs Scraper
Scrape Glassdoor job listings by keyword, country, location, remote, job type, and recency with structured roles, salaries, company data, and ratings.
Pricing
from $3.20 / 1,000 results
Rating
5.0
(2)
Developer
AgentX
Maintained by CommunityActor stats
7
Bookmarked
352
Total users
102
Monthly active users
4 hours ago
Last modified
Categories
Share
Glassdoor Jobs Scraper - Jobs, Salaries & Employer Data API for 23 Markets
Glassdoor Jobs Scraper exports up to 10,000 structured job listings per run across 23 supported markets. Search by keyword and country, optionally narrow by location, distance, posting age, or employment type, and receive a consistent 41-field dataset covering job details, salary, employer profiles, ratings, application signals, and public contacts when available.
TL;DR: Enter a keyword, choose a country, set the result limit, and add only the optional filters you need. The Actor searches public Glassdoor job pages without requesting Glassdoor credentials and stores normalized results in the default dataset.
Why Choose This API
Glassdoor job and employer data with a stable contract
๐ 23 supported markets
Search Argentina, Australia, Austria, Belgium, Brazil, Canada, France, Germany, Hong Kong, India, Ireland, Italy, Mexico, Netherlands, New Zealand, Portugal, Singapore, South Africa, Spain, Sweden, Switzerland, United Kingdom, or United States.
๐ฏ Flexible optional filters
Use location, distance, posting-age, and employment-type controls. Each optional filter is applied only when supplied.
๐ 41 normalized fields
Every result uses the same field names for source URLs, job attributes, salary, employer data, ratings, application signals, and public contacts. Source-dependent values remain null when unavailable.
๐ฐ Compensation and employer research
Collect disclosed or estimated salary ranges, employer ratings, company profile details, and job descriptions when Glassdoor exposes them. The optional currency field converts available salary values after collection.
๐ Honest remote semantics
Collected listings can identify remote or hybrid language when present, but the Actor does not offer a dedicated Remote Only search control.
Quick Start Guide
Export Glassdoor jobs in 3 steps
Step 1: Configure the search
Enter keyword, choose country, and set max_results. Add only the optional filters you want to apply.
Step 2: Run the Actor
Click Start. Leave location empty for a country-level search, or enter a city or region and optionally set distance.
Step 3: Use the dataset
Preview the default dataset or export it in JSON, CSV, Excel, XML, RSS, or another format supported by Apify.
Input Parameters
Configuration fields
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
keyword | string | Yes | Job title, skill, or company name | Data Scientist |
country | select | Yes | One of 23 supported Glassdoor markets | Sweden |
max_results | integer | Yes | Maximum jobs to return, from 1 to 10,000 | 500 |
distance | integer | No | Search radius in miles, from 50 to 10,000 | 50 |
location | string | No | City or region; country-level search is used when omitted | Stockholm |
posted_since | date | No | Limit results to a relative or absolute posting window | 2 days |
job_type | select | No | fulltime, parttime, contract, or internship | contract |
currency | select | No | Target currency for converting available salary values | EUR |
Filter behavior
locationis resolved within the selected country when supplied.distanceis applied only when explicitly supplied.posted_sinceis rounded up to the next whole day.job_typesupports full-time, part-time, contract, or internship roles.currencyis a post-collection salary conversion, not a Glassdoor search filter.- There is no
remote_onlyinput; remote or hybrid signals may still appear in collected records.
Example input
{"keyword": "Data Scientist","country": "Sweden","max_results": 500,"location": "Stockholm","distance": 50,"posted_since": "2 days","job_type": "contract","currency": "EUR"}
Output Data Schema
Complete 41-field job record
Every dataset item uses the fields below. Nullable fields make missing source data explicit.
Run and source fields
| Field | Type | Description |
|---|---|---|
processor | string or null | Apify Actor URL that processed the record |
processed_at | string or null | UTC processing timestamp |
platform | string or null | Source platform, normally Glassdoor |
platform_url | string or null | Glassdoor job listing URL |
official_url | string or null | Employer's original listing URL when available |
Core job fields
| Field | Type | Description |
|---|---|---|
title | string or null | Job title |
posted_date | string or null | Posting date or age |
valid_through | string or null | Closing or expiration date when available |
location | object or null | Structured location with raw and standardized values |
applicant_count | integer or null | Applicant count when available |
is_remote | boolean or null | Remote or hybrid signal identified in the listing |
description | string or null | Job description and requirements |
Classification fields
| Field | Type | Description |
|---|---|---|
job_type | string or null | Employment type |
job_level | string or null | Seniority level |
job_function | string or null | Department or job function |
listing_type | string or null | Listing classification when available |
skills | string or null | Skills and attributes identified for the role |
work_from_home | string or null | Remote or hybrid arrangement |
vacancy_count | integer or null | Number of openings when available |
experience_range | string or null | Experience requirement when available |
easy_apply | boolean or null | Whether direct application is available |
Salary fields
| Field | Type | Description |
|---|---|---|
salary_period | string or null | Pay period, such as yearly or hourly |
salary_minimum | number or null | Minimum disclosed or estimated salary |
salary_maximum | number or null | Maximum disclosed or estimated salary |
salary_currency | string or null | ISO currency code |
Employer fields
| Field | Type | Description |
|---|---|---|
company_name | string or null | Hiring company name |
company_type | string or null | Company ownership type when available |
company_founded | integer or null | Founding year when available |
company_industry | string or null | Industry or sector |
company_url | string or null | Glassdoor company profile URL |
company_website | string or null | Official company website |
company_logo | string or null | Company logo URL |
company_addresses | string or null | Company address text |
company_revenue | string or null | Revenue range when available |
company_description | string or null | Company overview |
company_rating | number or null | Glassdoor employer rating when available |
employee_count | string or null | Employee range when available |
review_count | integer or null | Review count when available |
Public contact fields
| Field | Type | Description |
|---|---|---|
emails | array or null | Public company or hiring emails when discoverable |
phones | array or null | Public company or hiring phone numbers when discoverable |
social_links | object or null | Public company social URLs grouped by platform |
Integration Examples & Options
The verified Actor ID is jSqkPD04NCwMZO4Uk.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("jSqkPD04NCwMZO4Uk").call(run_input={"keyword": "Data Scientist","country": "United States","max_results": 100,})items = client.dataset(run["defaultDatasetId"]).list_items().items
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('jSqkPD04NCwMZO4Uk').call({keyword: 'Data Scientist',country: 'United States',max_results: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Direct API request
curl -X POST "https://api.apify.com/v2/acts/jSqkPD04NCwMZO4Uk/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"Data Scientist","country":"United States","max_results":100}'
Make and n8n
Use the Apify integration in Make or n8n, select Actor ID jSqkPD04NCwMZO4Uk, pass the same input object, wait for the run to finish, and read the default dataset items.
- Open the Actor's API tab for generated requests in other supported languages.
- Connect completed runs to webhooks or another Apify integration.
- Read the default dataset directly or export it in an Apify-supported format.
JSON-LD Metadata
{"@context": "https://schema.org","@graph": [{"@type": "SoftwareApplication","@id": "https://apify.com/agentx/glassdoor-jobs-scraper#software","name": "Glassdoor Jobs Scraper","description": "Scrape Glassdoor job listings across 23 markets and export 41 structured job, salary, employer, rating, application, and public contact fields when available.","applicationCategory": "BusinessApplication","applicationSubCategory": "Job Scraping API","operatingSystem": "Web, Cloud","url": "https://apify.com/agentx/glassdoor-jobs-scraper","dateModified": "2026-07-19","featureList": ["Searches 23 supported Glassdoor markets","Returns a consistent 41-field dataset","Supports optional location, distance, posting-age, job-type, and salary-currency controls","Exports results through Apify datasets and integrations"],"author": { "@id": "https://apify.com/agentx#organization" },"publisher": { "@id": "https://apify.com#organization" }},{"@type": "Organization","@id": "https://apify.com/agentx#organization","name": "AgentX","url": "https://apify.com/agentx","sameAs": ["https://apify.com/agentx", "https://t.me/AiAgentApi"]},{"@type": "FAQPage","mainEntity": [{"@type": "Question","name": "How many Glassdoor markets can I select?","acceptedAnswer": { "@type": "Answer", "text": "The input offers 23 supported Glassdoor markets." }},{"@type": "Question","name": "Can I filter for remote jobs only?","acceptedAnswer": { "@type": "Answer", "text": "No. The Actor can identify remote or hybrid language in collected jobs, but it does not expose a Remote Only search input." }},{"@type": "Question","name": "How does posting age work?","acceptedAnswer": { "@type": "Answer", "text": "The supplied window is rounded up to the next whole day before the Glassdoor search is performed." }},{"@type": "Question","name": "How much does 1,000 results cost?","acceptedAnswer": { "@type": "Answer", "text": "At the FREE tier, 1,000 results cost $3.20 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.88 plus the Actor start event." }}]},{"@type": "HowTo","name": "How to export Glassdoor jobs with Glassdoor Jobs Scraper","step": [{ "@type": "HowToStep", "position": 1, "name": "Configure the search", "text": "Enter a keyword, choose a country, set the maximum results, and add only the optional filters you need." },{ "@type": "HowToStep", "position": 2, "name": "Run the Actor", "text": "Click Start. Leave Location empty for a country-level search or provide a city or region for a local search." },{ "@type": "HowToStep", "position": 3, "name": "Use the dataset", "text": "Preview or export the default dataset, or connect the completed run to an Apify integration." }]},{"@type": "BreadcrumbList","itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Apify", "item": "https://apify.com" },{ "@type": "ListItem", "position": 2, "name": "AgentX", "item": "https://apify.com/agentx" },{ "@type": "ListItem", "position": 3, "name": "Glassdoor Jobs Scraper", "item": "https://apify.com/agentx/glassdoor-jobs-scraper" }]}]}
Pricing & Cost Calculator
Pay-per-event pricing
| Event or tier | Price | Billing unit |
|---|---|---|
| Actor start | $0.01 | Run start event; the count depends on Actor memory, with a minimum of one |
| FREE result | $0.00320 | One default dataset result |
| BRONZE result | $0.00309 | One default dataset result |
| SILVER result | $0.00299 | One default dataset result |
| GOLD result | $0.00288 | One default dataset result |
| PLATINUM result | $0.00288 | One default dataset result |
| DIAMOND result | $0.00288 | One default dataset result |
Example costs at the default memory setting
| Plan | Results | Result cost | Actor start | Estimated total |
|---|---|---|---|---|
| FREE | 500 | $1.60 | $0.01 | $1.61 |
| FREE | 1,000 | $3.20 | $0.01 | $3.21 |
| FREE | 5,000 | $16.00 | $0.01 | $16.01 |
| GOLD or higher | 1,000 | $2.88 | $0.01 | $2.89 |
Actual cost depends on the number of results produced, the user's plan, and the number of Actor start events charged for the selected memory.
Use Cases & Applications
Compensation and employer research
- Compare disclosed or estimated salary ranges by role and market.
- Analyze employer ratings, company size, industry, and revenue signals when available.
- Normalize available salary values into a selected currency.
Recruiting and talent intelligence
- Track open roles by title, skill, employer, country, or city.
- Monitor competitor hiring activity with scheduled runs.
- Analyze job type, seniority, skills, posting age, and remote signals.
Job products and automation
- Populate a niche job board or internal opportunity feed.
- Schedule recurring labor-market snapshots.
- Send normalized datasets to a CRM, warehouse, dashboard, webhook, or automation platform.
FAQ
Which countries can I select?
Argentina, Australia, Austria, Belgium, Brazil, Canada, France, Germany, Hong Kong, India, Ireland, Italy, Mexico, Netherlands, New Zealand, Portugal, Singapore, South Africa, Spain, Sweden, Switzerland, United Kingdom, and United States.
Can I filter for remote jobs only?
No. The Actor can identify remote or hybrid language in collected jobs, but it does not offer a Remote Only filter.
How does posting age work?
The supplied window is rounded up to the next whole day before the search is performed.
Does currency filter jobs?
No. currency converts available salary values after collection and does not affect the Glassdoor search.
Does every result include salary, rating, and employer details?
No. Those values remain null when Glassdoor or the employer does not expose reliable data.
How much does 1,000 results cost?
At the FREE tier, 1,000 results cost $3.20 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.88 plus the Actor start event.
Trust & Data Responsibility
- Verified inputs: every public filter is supported and optional filters are applied only when supplied.
- Transparent billing: the Actor start event and every plan's result price are listed above.
- Explicit nullability: missing source values are not presented as verified facts.
- No Glassdoor credentials requested: the input schema does not ask for a Glassdoor username, password, cookie, or token.
Legal & Compliance
Glassdoor Jobs Scraper is intended for lawful collection and analysis of publicly accessible job-listing data. You are responsible for reviewing Glassdoor's terms, applicable privacy and database laws, employment-data rules, and the permitted use of contact information in each jurisdiction. This documentation is not legal advice.
Related Tools
- Indeed Jobs Scraper - Indeed job listings and company data
- LinkedIn Jobs Scraper - LinkedIn jobs and hiring signals
- ZipRecruiter Jobs Scraper - ZipRecruiter job listings
Enrich Your Workflow
- All Jobs Scraper - Multi-platform job data in one schema
- All Property Scraper - Property-market datasets
- All Video Scraper - Multi-platform video metadata and media workflows
Support & Community
- Community: @Apify_Actor
- Contact team: @AiAgentApi
Last Updated: 2026-07-19