Glassdoor Job Scraper
Pricing
from $2.00 / 1,000 results
Glassdoor Job Scraper
Extract structured job listings from Glassdoor across 21 markets with salary data, filters, compact mode, and built-in change tracking.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Black Falcon Data
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 hours ago
Last modified
Categories
Share
🔍 What is Glassdoor Job Scraper?
Glassdoor Job Scraper extracts structured job listings from glassdoor.com — with company metadata. The input is built around keyword search, location filters, and controllable result limits, so you can rerun the same search universe consistently over time.
glassdoor.com is a public source platform, but it does not provide the kind of structured export most teams need for recurring data workflows. This actor bridges that gap by turning the source into clean JSON with company metadata, with repeatable source access and a schema that is easier to reuse in dashboards, enrichment pipelines, and agent workflows.
🎯 What you can do with this actor
- Build richer employer datasets with company profiles, ratings, social links, and career-page signals where the source exposes them.
- Feed compact listing data into AI agents, MCP tools, and ranking workflows without carrying full raw payloads every time.
- Start with lightweight search runs, then enable detail enrichment only when you need deeper company or listing context.
✨ Why choose this actor?
| Feature | This actor | Typical alternatives |
|---|---|---|
| Enrichment depth | Structured seller / company signals where the source exposes them | Often limited to title, price, and URL |
| Collection strategy | Can stay lightweight or add enrichment only when needed | Often fixed to one scraping mode |
| AI-agent usability | Compact output mode for smaller, more controllable payloads | Often full payload only |
| Schema quality | Keeps company metadata in a consistent output shape | Often inconsistent across runs |
🚀 Quick start
Basic search:
{"query": "software engineer","country": "US","maxResults": 50,"maxPages": 5,"sort": "relevance","includeDetails": true,"includeCompanyProfile": false,"compactMode": false,"descriptionMaxLength": 0,"incrementalMode": false,"emitUnchanged": false,"emitExpired": false}
With enrichment:
{"query": "software engineer","country": "US","maxResults": 50,"maxPages": 5,"sort": "relevance","includeDetails": true,"includeCompanyProfile": true,"compactMode": false,"descriptionMaxLength": 0,"incrementalMode": false,"emitUnchanged": false,"emitExpired": false}
Incremental monitoring:
{"query": "software engineer","country": "US","maxResults": 50,"maxPages": 5,"sort": "relevance","includeDetails": true,"includeCompanyProfile": false,"compactMode": false,"descriptionMaxLength": 0,"incrementalMode": true,"emitUnchanged": false,"emitExpired": false,"stateKey": "daily-monitor"}
📊 Sample output
{"title": "Example title","company": "Example company","location": "Example location","url": "https://glassdoor.com"}
⚙️ Input reference
| Parameter | Type | Default | Description |
|---|---|---|---|
| Search | |||
query | string | — | Job search keywords. Use JSON array for multi-query. |
country | enum | "US" | Which Glassdoor domain to search (21 markets). |
location | string | — | City, state, or region. Use JSON array for multi-location. |
startUrls | array | — | Direct Glassdoor search or job detail URLs. |
maxResults | integer | 50 | Maximum total job listings to return. |
maxPages | integer | 5 | Maximum SERP pages to scrape per search source. |
| Filters | |||
postedDays | integer | — | Only return jobs posted within this many days. Snapped to nearest valid: 1, 3, 7, or 14. |
jobType | enum | — | Filter by employment type. |
remoteFilter | enum | — | Filter by remote work arrangement. |
radius | integer | — | Radius around the location in miles/km (5, 10, 15, 25, 35, 50, or 100). Snapped to nearest valid value. |
sort | enum | "relevance" | Sort results by relevance or posting date. |
| Enrichment | |||
includeDetails | boolean | true | Fetch each job's detail page for full description, salary data, and company info. |
includeCompanyProfile | boolean | false | Fetch company overview pages for industry, headcount, and more. |
| Output Format | |||
compactMode | boolean | false | Output only 12 core fields (jobId, title, company, location, salary, dates, URL). Ideal for AI agents and MCP workflows to reduce token usage. |
descriptionMaxLength | integer | 0 | Truncate job descriptions to this many characters. Set to 0 for full descriptions. Useful for reducing output size in AI/LLM pipelines. |
| Incremental Tracking | |||
incrementalMode | boolean | false | Compare against previous run state. Requires stateKey. |
stateKey | string | — | Stable identifier for the tracked search universe (e.g. "us-software-nyc"). |
emitUnchanged | boolean | false | When incremental, also emit records that haven't changed. |
emitExpired | boolean | false | When incremental, also emit records no longer found. |
📦 Output fields
Each result can include company metadata, depending on listing content and the enrichment options enabled for the run.
This actor returns structured dataset items through the default Apify dataset output. See the sample output above for the practical field shape.
⚠️ Known limitations
- Contact information is only returned when the source exposes it directly; many listings will still rely on apply URLs rather than named contacts.
- Field population rates always depend on the source site itself, so null values are normal for data points the source does not publish on every listing.
💰 How much does it cost to scrape glassdoor job scraper?
This actor uses pay-per-event pricing, so you pay a small run-start fee and then only for results that are actually emitted.
| Event | Price | When |
|---|---|---|
actor-start | $0.01 | Each run |
result | $0.002 | Per emitted record |
Example costs:
| Scenario | Results | Cost |
|---|---|---|
| Quick test | 10 | $0.03 |
| Daily monitor | 50 | $0.11 |
| Full scrape | 500 | $1.01 |
💡 Use cases
Recruiting and sourcing
Pull glassdoor.com job listings into dashboards, triage queues, or recruiter workflows without re-normalizing the source on every run.
Recurring monitoring
Track only newly posted or changed listings on scheduled runs, which is better suited to alerts and daily pipeline jobs than repeated full exports.
Outreach and hiring-intent research
Use employer, contact, and apply fields to support account research, outreach queues, or company watchlists when the source provides those details.
AI-agent and MCP workflows
Feed compact listing data into ranking, summarization, classification, or agent pipelines without burning unnecessary context on large descriptions.
🤖 AI-agent and MCP usage
This actor is suitable for AI-agent workflows because the output is structured and the input can intentionally reduce payload size for downstream tools.
descriptionMaxLengthlets you cap description size so larger batches stay practical in model context windows.
{"query": "software engineer","country": "US","maxResults": 10,"maxPages": 5,"sort": "relevance","includeDetails": true,"includeCompanyProfile": false,"compactMode": false,"descriptionMaxLength": 300,"incrementalMode": false,"emitUnchanged": false,"emitExpired": false}
🔄 Incremental mode
Incremental mode is intended for repeated monitoring runs where only new or changed listings should be emitted.
| Change type | Meaning |
|---|---|
NEW | First time seen in the monitored result set |
CHANGED | Previously seen listing with updated content |
UNCHANGED | Same listing and content as a prior run when unchanged emission is enabled |
EXPIRED | Listing disappeared from the monitored result set when expired emission is enabled |
📖 How to scrape glassdoor job scraper
- Open the actor in Apify Console and review the input schema.
- Enter your search query and location settings, then set
maxResultsfor the amount of data you need. - Enable optional enrichment fields only when you need richer output such as descriptions, contacts, or company data.
- Run the actor and export the dataset as JSON, CSV, or Excel for downstream analysis.
❓ FAQ
What data does this actor return from glassdoor.com?
It returns structured listing records with fields such as company metadata, plus the core identifiers and metadata defined in the dataset schema.
Can I fetch full descriptions and detail fields?
Yes. Enable the detail-related input options when you need richer fields such as descriptions, employer metadata, or contact details from the listing detail pages.
Does it support recurring monitoring?
Yes. Incremental mode is built for recurring runs where you only want newly seen or changed listings instead of a full repeat dataset every time.
Is it suitable for AI agents or MCP workflows?
Yes. Compact mode and output-size controls make it easier to use the actor in AI-agent workflows where predictable fields matter more than raw page size.
Why use this actor instead of scraping the site ad hoc?
Because it already handles repeatable source access, keeps a stable schema, and exposes filters and enrichment options in a form that is easier to automate repeatedly.
Is scraping glassdoor.com legal?
This actor is intended for publicly accessible data workflows. Always review the target site terms and your own legal requirements for the way you plan to use the data.
🔗 Related actors
- Arbeitsagentur Jobs Feed — German Federal Employment Agency — Alternative structured job-feed workflow
- Company Jobs Tracker — Alternative structured job-feed workflow
- Dice.com Job Scraper — Alternative structured job-feed workflow
- Duunitori Scraper — Alternative structured job-feed workflow
- Indeed Job Scraper — Alternative structured job-feed workflow