Glassdoor Jobs Scraper — Hiring Data, Salaries & Ratings
Pricing
from $0.90 / 1,000 jobs
Glassdoor Jobs Scraper — Hiring Data, Salaries & Ratings
Collect Glassdoor job listings as clean JSON in real time. Keyword search, salary ranges, company ratings, Easy Apply, remote filters & full job descriptions. Up to 1,000 jobs per keyword. LLM-ready, webhook & API output. For recruiters, job boards, hiring intel & market research. Fast Apify actor.
Pricing
from $0.90 / 1,000 jobs
Rating
0.0
(0)
Developer
Chidubem Aneke
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Glassdoor Jobs Real-Time Data
The fastest way to collect Glassdoor job postings on Apify. Turn any job search into clean, structured JSON — ready for spreadsheets, dashboards, automations, and AI workflows. Results land in your dataset in real time, as each job is found.
Built for recruiters, talent teams, job boards, market researchers, and builders who need reliable hiring data at scale — without slow setups or messy exports.
Why this Actor
| Glassdoor Jobs Real-Time Data | Typical job data tool | |
|---|---|---|
| Speed | ~1–3 s per job | 5–15 s per job |
| Memory | 256–512 MB default | 2–4 GB+ |
| Setup | Run in seconds — no login | Often requires accounts & maintenance |
| Cost | Low compute, efficient runs | High |
| Output | Structured JSON, LLM-ready | Often messy HTML |
| Scale | Up to 1,000 jobs per keyword | Often capped lower |
| Filters | Full Glassdoor Jobs filters | Often keyword-only |
| Ratings & pay | Company ratings and salary signals when published | Often missing |
What you get — every job, fully structured
Each record is one job posting with featureType: "job" and scrapedAt so you can sort, filter, and join with your own data.
| Field | What it tells you |
|---|---|
title, company, location, isRemote | Role, employer, place, and remote status |
companyId, companyShortName, divisionEmployerName | Stable employer IDs, display names, and staffing/agency detection |
jobUrl, applyUrl, companyUrl, companyLogo | Direct links and company branding |
companyRating | Glassdoor employer rating when available |
descriptionText, descriptionHtml | Full job description (when detail fetch is on) |
salary, salarySource, payMin, payMax, payMedian | Compensation and whether pay is employer-reported or estimated |
jobTitleId, occupationCategory, occupationCategoryId | Normalized title and occupation taxonomy for analytics |
advertiserType, sponsorshipLevel, isSponsored | Organic vs promoted listing signals |
easyApply | Whether Glassdoor Easy Apply is available |
postedAt, postedTimeAgo, ageInDays | How fresh the listing is |
locationId | Glassdoor location ID for geo joins |
searchQuery, searchLocation, position | Which search produced this row and its rank |
Set includeRaw: true if you need the extended source payload for custom processing.
Search like Glassdoor Jobs — get data like a database
Use the same filters job seekers use on Glassdoor:
- Keywords — one search per keyword (e.g.
software engineer,product manager fintech) - Title — narrow to a specific role name
- Company — jobs at Google, Stripe, or any employer
- Location — United States, San Francisco, Remote, and more
- Job type — full-time, part-time, contract, temporary, internship
- Date posted — any time, past month, week, or 24 hours
- Easy Apply — only listings with one-click apply
- Remote only — remote roles only
- Company rating — filter by minimum employer rating (0–5)
- Company size — startup through enterprise buckets
- Sort — relevance or most recent
- Volume — up to 1,000 jobs per keyword
- Full details — toggle rich descriptions on or off
- Import from URL — optionally add Glassdoor search or job-listing URLs
Use cases — real outcomes
- Recruiting pipelines — build candidate-ready job lists by role, location, and company rating
- Job boards & aggregators — feed your product with fresh Glassdoor listings daily
- Salary & market research — track pay ranges, employer ratings, and hiring trends by skill and region
- Competitive intelligence — monitor competitor hiring by company and function
- Sales & BD — spot companies in hiring mode for timely outreach
- AI assistants & agents — summarize listings, score fit, draft outreach, or answer hiring questions
- Data warehouses & CRMs — push JSON into Snowflake, BigQuery, HubSpot, Airtable, or your stack via API
LLM & MCP integration
Output is structured JSON — ideal for ChatGPT, Claude, Gemini, LangChain, LlamaIndex, CrewAI, and custom agents. No cleanup step. No HTML stripping. Just records your model can read.
Recommended workflow
- Run the Actor with your keywords and filters.
- Pull dataset items via Apify API, webhook, or export JSON/CSV.
- Pass records to your LLM, vector store, or automation — one job per row.
Example: one job record for an LLM prompt
{"featureType": "job","title": "Senior Software Engineer","company": "Stripe","companyId": 12345,"companyShortName": "Stripe","divisionEmployerName": null,"location": "San Francisco, CA","locationId": 1147401,"isRemote": false,"companyRating": 4.1,"descriptionText": "We're looking for a senior engineer to...","salary": "USD 150000-200000 annual","salarySource": "EMPLOYER_PROVIDED","payMin": 150000,"payMax": 200000,"occupationCategory": "Software Engineer","jobTitleId": 98765,"advertiserType": "EMPLOYER","easyApply": true,"applyUrl": "https://www.glassdoor.com/job-listing/j?jl=1010062906489","postedAt": "2026-07-06","postedTimeAgo": "4 days ago","ageInDays": 4,"jobUrl": "https://www.glassdoor.com/job-listing/j?jl=1010062906489","searchQuery": "software engineer","scrapedAt": "2026-07-08T12:00:00.000Z"}
Apify MCP (Model Context Protocol)
Connect the Apify MCP server so AI assistants can:
- Run this Actor from natural-language instructions
- Read job results directly in the chat
- Chain with other Actors — enrich contacts, send alerts, update spreadsheets
Example MCP conversation:
User: "Find 50 remote data engineer jobs in the US posted this week with ratings above 4.0"→ MCP runs Glassdoor Jobs Real-Time Data with jobKeywords, jobLocation, remoteOnly, minRating→ MCP reads dataset items→ LLM summarizes hiring trends and top-rated employers
API quick start
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"jobKeywords": ["data engineer"],"jobLocation": "United States","remoteOnly": true,"minRating": 4.0,"jobDatePosted": "week","jobsPerQuery": 50,"fetchJobDetails": true}'
Fetch results: GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
Dataset views in Apify Console: Overview (core fields) · Full details (includes descriptions)
Export as JSON, CSV, Excel, RSS, or via API.
Input reference
| Input | Type | Default | Description |
|---|---|---|---|
jobKeywords | string[] | ["software engineer"] | Search keywords — one run per keyword |
jobTitle | string | — | Title filter |
jobCompany | string | — | Company filter |
jobLocation | string | "United States" | Location |
jobTypes | enum[] | all types | full_time, part_time, contract, temporary, internship |
jobDatePosted | enum | any | any, month, week, day |
jobSort | enum | relevant | relevance or date |
easyApply | boolean | false | Easy Apply listings only |
remoteOnly | boolean | false | Remote jobs only |
minRating | number | — | Minimum company rating (0–5) |
employerSizes | enum | any | Company size bucket |
jobsPerQuery | integer | 25 | Max jobs per keyword (1–1000) |
fetchJobDetails | boolean | true | Full description text and HTML |
excludeJobIds | string[] | [] | Skip known listing IDs (incremental runs) |
enableScrapeByUrl | boolean | false | Also import from Glassdoor URLs |
scrapeUrls | string[] | [] | Glassdoor search or job-listing URLs |
includeRaw | boolean | false | Attach extended source payload |
webhookUrl | string | — | Optional real-time POST URL — dataset is always written; webhook is additional |
webhookFormat | enum | json | json (full record) or slack (Slack message) |
proxyConfiguration | object | residential US | Connection settings (US residential recommended) |
Advanced options (countryId, maxPagesPerQuery, urlParams) are supported via API JSON but are not shown in the Console form.
Full schema: Input tab on Apify Console or .actor/input_schema.json in this repository.
Quick start examples
Remote software roles — full details
{"jobKeywords": ["software engineer", "backend developer"],"jobLocation": "United States","remoteOnly": true,"jobsPerQuery": 100,"fetchJobDetails": true}
Jobs at a specific company
{"jobKeywords": ["engineer"],"jobCompany": "Google","jobLocation": "United States","jobsPerQuery": 50}
Highly rated employers — fast summary mode
{"jobKeywords": ["product manager"],"jobLocation": "London","minRating": 4.0,"jobDatePosted": "week","jobSort": "date","jobsPerQuery": 75,"fetchJobDetails": false}
High-volume market scan
{"jobKeywords": ["machine learning", "AI engineer", "data scientist"],"jobLocation": "United States","jobsPerQuery": 500,"fetchJobDetails": true}
Import from a Glassdoor search URL
{"jobKeywords": [],"enableScrapeByUrl": true,"scrapeUrls": ["https://www.glassdoor.com/Job/software-engineer-jobs-SRCH_KO0,17.htm"],"jobsPerQuery": 100,"fetchJobDetails": true}
Search with Slack webhook
{"jobKeywords": ["product manager"],"jobLocation": "United States","jobsPerQuery": 50,"webhookUrl": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL","webhookFormat": "slack"}
Webhook delivery (optional)
Every record is always saved to the Apify dataset first. If you set webhookUrl in the Output section, each new record is also POSTed in real time to your endpoint — useful for CRMs, Slack, Zapier, Make, or custom pipelines.
| Input | Description |
|---|---|
webhookUrl | Your endpoint (https). Leave empty to use dataset only. |
webhookFormat | json — full job object. slack — compact Slack incoming-webhook message. |
Webhook delivery is best-effort: a failed webhook never stops the run or prevents dataset writes.
Performance & reliability
- Residential proxy (US recommended) — best results and consistent throughput.
- Minimum memory: 256 MB · Default: 512 MB — sufficient because results are not buffered in RAM.
- Streaming output — each job is mapped, enriched, and pushed to the dataset individually; long runs do not accumulate results in memory.
- Smart search expansion — automatically broadens coverage when you request large result sets.
Limitations & compliance
- This is an unofficial tool — not affiliated with Glassdoor.
- Use responsibly and comply with applicable laws and Glassdoor's Terms of Service.
- Some fields (e.g. salary, company rating) appear only when employers publish them.
- Listing availability can change; expired postings may return summary data only.
Contact & custom work
Need something beyond this Actor? I design and build custom data solutions and full-stack products for teams that want results — not experiments.
Email: dubem115@gmail.com
GitHub: github.com/DrunkCodes
Reach out for:
- Custom Apify Actors — any website, job board, or data source
- Glassdoor & hiring data projects — pipelines, alerts, and dashboards at scale
- LLM & MCP integrations — connect your data to ChatGPT, Claude, and agent workflows
- Web apps & automation — internal tools, SaaS products, and client-facing platforms
Whether you need a one-off data feed or a production system, I can help you ship it.
Glassdoor Jobs Real-Time Data · by DrunkCodes