Overview
Glassdoor is a job search and company review platform known for salary transparency and employee reviews. JobSpy JS scrapes Glassdoor using its GraphQL API, providing access to job listings with rich company metadata.Scraping Method
GraphQL API athttps://{country-domain}/graph
- Queries the public Glassdoor GraphQL endpoint
- Requires CSRF token extraction from page HTML
- Supports cursor-based pagination
- Returns job listings with estimated salary ranges, company ratings, and logos
- Limited to 900 results per search (30 pages × 30 jobs/page)
Glassdoor requires a valid CSRF token for all API requests. JobSpy automatically extracts and manages this token.
Country Support
Glassdoor supports multiple country domains. Thecountry_indeed parameter is reused for Glassdoor since they share country configuration.
Supported countries
| Country | Code | Domain |
|---|---|---|
| United States | usa | glassdoor.com |
| United Kingdom | uk | glassdoor.co.uk |
| Canada | canada | glassdoor.ca |
| Germany | germany | glassdoor.de |
| France | france | glassdoor.fr |
| India | india | glassdoor.co.in |
| Australia | australia | glassdoor.com.au |
Example Usage
Basic search
Filter by job type and recency
Remote jobs search
Easy Apply jobs only
Fetch full details for a single job
Jobs with salary information
Supported Filters
| Filter | Support | Notes |
|---|---|---|
search_term | ✅ | Job title or keywords |
location | ✅ | City or state |
is_remote | ✅ | Remote-only filter |
job_type | ✅ | fulltime, parttime, contract, internship |
hours_old | ✅ | Filter by days old (converted from hours) |
easy_apply | ✅ | Glassdoor Easy Apply jobs only |
country_indeed | ✅ | Country domain (default: usa) |
Glassdoor’s
distance filter is not supported. Use broader location searches instead.Returned Fields
Core fields
id,title,company_name,company_url,location,date_posted,job_url
Compensation
compensation.interval(annual, monthly, hourly)compensation.min_amount,compensation.max_amount(10th-90th percentile estimates)compensation.currency
Job metadata
description(full job description in markdown/HTML/plain)is_remote(boolean)company_logo(URL)listing_type(e.g., “sponsored”, “organic”)emails(extracted from description)
Rate Limits & Best Practices
CSRF token management
Glassdoor requires a valid CSRF token for all API requests. JobSpy automatically:- Fetches the homepage with browser headers
- Extracts the embedded CSRF token from HTML
- Includes the token in all subsequent requests
Pagination limits
Glassdoor limits search results to 30 pages × 30 jobs = 900 jobs maximum.Use proxies for reliability
Location lookup
Glassdoor requires location IDs. JobSpy automatically:- Queries Glassdoor’s location autocomplete API
- Maps your
locationstring to a Glassdoor location ID and type (city/state/country) - Uses the location ID in the search query
Troubleshooting
”location not parsed” error
Symptom: Search returns 0 results with “location not parsed” Cause: Glassdoor couldn’t find a matching location ID Solutions:- Use a more common location name (e.g., “New York” instead of “NYC”)
- Use state names instead of cities for broader searches
- Try
is_remote: trueto search without a location filter
CSRF token errors
Symptom: API requests fail with 403 or authentication errors Cause: CSRF token is invalid or expired Solutions:- JobSpy automatically retries with a fresh token
- If errors persist, use a proxy or different IP
- Wait a few minutes before retrying
Missing job descriptions
Symptom:description field is empty for some jobs
Cause: Glassdoor returns descriptions via a separate API call. JobSpy automatically fetches them, but some may fail.
Solution: This is expected behavior. Most jobs will have descriptions, but a few may not due to API rate limits.
Salary data inconsistencies
Symptom: Salary ranges seem too wide or inaccurate Note: Glassdoor salaries are community-reported estimates, not employer-stated figures. They represent the 10th-90th percentile range based on historical data.CLI Examples
Source Code
- Implementation:
~/workspace/source/src/scrapers/glassdoor/index.ts - Key:
glassdoor - Site enum:
Site.GLASSDOOR
