🔥 Glassdoor jobs scraper
Pricing
$25.00/month + usage
🔥 Glassdoor jobs scraper
ℹ️ Elevate your job search with the sleek Glassdoor Scraper for Apify. Tailor-made for the modern job seeker, it's your secret weapon in the job market. Dive into a world of opportunities with custom searches, precise filtering. Fast, efficient, and incredibly user-friendly 🚀✨
Pricing
$25.00/month + usage
Rating
4.3
(7)
Developer
Bebity
Maintained by CommunityActor stats
61
Bookmarked
2.1K
Total users
25
Monthly active users
37 days
Issues response
2 hours ago
Last modified
Categories
Share

🚀 New in v3 — a complete rebuild
The biggest update yet. Rebuilt from scratch to be faster, more complete, and more reliable than any previous version.
- ⚡ Faster — a lean HTTP engine reads Glassdoor's own data endpoint directly. No slow browser, no page rendering.
- 🎚️ 13 working filters — industry (25 sectors), job function (18 roles), company size, salary range, seniority, remote, Easy Apply, company rating, posting date, radius, and more. Filters that silently did nothing in the old scraper now actually filter.
- 💰 Salary data, fixed — real annual/hourly salary ranges (min · median · max), corrected from the old scraper's inverted, mislabeled numbers.
- 🏢 Full company profiles — ratings, size, revenue, industry, HQ and 10 detailed sub-ratings, on every job.
- 🚫 Deduplicated — Glassdoor repeats ~10% of listings across pages; you are never sent, or billed for, the same job twice.
- 🤖 AI-agent ready — clean structured JSON, callable via MCP from Claude Code, Codex, OpenClaw and any agent.
- 🔁 100% backward compatible — every field the previous Glassdoor scraper produced is still here, so existing setups keep working with zero changes.
Glassdoor Jobs & Salaries Scraper extracts job listings, company ratings and salary ranges from Glassdoor — no official Glassdoor API required. Search by keyword, company, or pasted search URL, apply the same filters you'd use on the site, and export clean, structured data to JSON, CSV, Excel or the Apify API.
It's a no-code Glassdoor API alternative: type what you're looking for, click Start, and get a tidy dataset of jobs with the salary and company-rating context Glassdoor is known for.
🧭 What does the Glassdoor scraper do?
This Glassdoor scraper collects public job data at scale and returns it as a structured dataset. In one run you can:
- 🔎 Search jobs by keyword and location — e.g. "software engineer" in New York.
- 🏢 Track one company's openings — every job a specific employer is currently posting.
- 🔗 Reuse a Glassdoor search URL — build the search on Glassdoor, paste the result-page URL, and we read the filters straight from it.
- 🆔 Refresh known jobs — pass a list of job IDs or job URLs to re-scrape listings you already track.
- 🌍 Scrape 20 country sites — glassdoor.com, .co.uk, .ca, .fr, .de, .com.au, .co.in and more.
Every job comes back with the full description, the apply link, the company profile (rating, size, industry, revenue, HQ, website), the salary range and all 10 detailed ratings — all in the price of a job, no option to tick. Fetching the description costs one extra request per job, so Fetch full job descriptions (on by default) lets you turn it off for a run several times faster; the price is the same either way.
⭐ Why use this Glassdoor scraper?
Glassdoor has no public API for job data. This actor is the easiest way to get Glassdoor data without writing scraping code, rotating proxies, or fighting anti-bot challenges yourself.
On 8 September 2026 we ran this actor and the eight busiest Glassdoor scrapers on Apify Store against the same search — software engineer, New York — and compared what came back. Three results are worth knowing before you pick one:
- 🥇 The most complete rows we measured. 67 filled fields on every job by default, 103 with both add-ons on. The category leader returned 21. Nothing else in the test came close on a like-for-like row, and no other scraper returned a salary benchmark at all.
- 🚫 No duplicates, and you never pay for one. Glassdoor repeats about 10% of its listings across pages. We drop them before billing: our 1,008-row run held 1,008 distinct jobs. The leader billed 1,000 rows that held only 874 — 126 of them were jobs you had already been sent.
- 📍 The jobs are actually where you asked. 89% of our rows were in the searched city, against 62% for the leader and 4% for one rival whose location filter is simply broken.
Business use cases:
- 📊 Salary benchmarking — compare pay ranges across roles, cities, and companies.
- 🧑💼 Talent & recruiting intelligence — see who's hiring, for what, and how they're rated.
- 🔭 Competitor hiring monitoring — schedule a daily run on a competitor and watch their openings.
- 🧲 Lead generation — build lists of companies actively hiring in a sector or region.
- 📈 Labor-market research — measure demand for skills and roles over time.
Powered by the Apify platform, the scraper also gives you: 🔄 automatic residential proxy rotation, ⏰ scheduling for daily/weekly runs, 🔌 API access and webhooks, 📤 integrations (Make, Zapier, Google Sheets, Airbyte, Slack…), and 📦 export to JSON, CSV, Excel and XML.
📋 What data can you extract from Glassdoor?
| Field | Description |
|---|---|
| 🧾 Job title | The role's title as listed |
| 🏢 Company name | Employer posting the job |
| ⭐ Company rating | Overall Glassdoor star rating (0–5) |
| 📍 Location | City / state / country of the role, with a scope flag, the resolved country name, the state or region, and coordinates |
| 🧭 Occupation | Glassdoor's normalised occupation and its stable id — the same role groups across country sites, whatever the listing's language |
| 💵 Salary range | Min · median · max, with currency and pay period (yearly/hourly) |
| 🗓️ Posted date | How recently the job was posted |
| 🔗 Apply URL | Direct link to apply |
| 🔗 Readable job link | The clean, shareable listing URL Glassdoor itself links to |
| 🏠 Remote | Flagged when the role is work-from-home |
| 🏢 Company profile URL | Link to the employer’s Glassdoor page |
| 📝 Description preview | ~160-character opening excerpt, on every job — plain text and HTML |
| 📝 Job description | Full HTML + plain-text description (on by default — included in the price) |
| 👥 Company size | Employee-count bracket |
| 🏭 Industry & sector | Glassdoor's industry classification |
| 💰 Revenue | Company revenue band |
| 📅 Year founded | Company founding year |
| 🏛️ Headquarters | Company HQ location |
| 🌐 Website | Company website |
| 📊 10 detailed ratings | Work-life balance, compensation, culture, career, management, CEO approval, recommend-to-friend, business outlook, diversity & inclusion |
| 🏢 Company description | The employer's own description and mission (➕ add-on: Company insights) |
| 👤 CEO | Name, title and photo (➕ add-on: Company insights) |
| 🥊 Competitors | Who Glassdoor lists as rivals (➕ add-on: Company insights) |
| 🏆 Awards | Fortune, LinkedIn Top Companies… (➕ add-on: Company insights) |
| 📚 Glassdoor volumes | How many reviews and salary reports exist (➕ add-on: Company insights) |
| 📈 Market salary | What the role pays across the market — base, bonus and total, 10th to 90th percentile, with currency (➕ add-on: Salary benchmark) |
Everything above is included in the price of a job except the rows marked ➕, which come from the two paid add-ons (see What the add-ons are worth).
🛠️ How to scrape Glassdoor jobs (step by step)
- Click Try for free at the top of this page (or open the actor in Apify Console).
- Choose how to search — fill in a keyword + location, a company name, paste Glassdoor search URLs, or drop in a list of job IDs. You can combine several.
- (Optional) Add filters — job type, seniority, salary range, company rating, industry, job function, remote-only, and more.
- (Optional) Title match is Off by default — you get every job Glassdoor matches. Turn it on if you want only titles containing your exact words — see Title match below.
- Fetch full job descriptions is on by default. Turn it off for a run several times faster — you keep the apply link, the company profile and all 10 ratings, and only lose the description text. The price is the same either way.
- Set “Maximum jobs” to cap the run size, then click Start.
- Export your results as JSON, CSV or Excel — or pull them from the Apify API.
That's it. No proxies to configure, no anti-bot puzzles to solve — the actor handles all of it.
⚙️ Input
The Glassdoor scraper has flexible input — click the Input tab for the full list of options with tooltips. In short:
🔎 Ways to search (use one or combine several):
- Keyword + Location — the classic search (
software engineerinNew York). - Search URLs — paste one or more Glassdoor result-page URLs.
- Company name — only jobs from a specific employer.
- Job IDs / URLs — re-scrape a known set of jobs, skipping search entirely.
🎚️ Filters (all optional):
Posted within (24h → last month) · Job type (full-time, part-time, contract, internship…) · Seniority (entry → executive) · Remote only · Easy Apply only · Minimum company rating (★) · Min/Max salary · Include jobs without salary · Search radius · Company size (5 brackets) · Industry (25 sectors) · Job function (18 roles) · Exclude employers.
🚫 Exclude employers: paste the companies you never want to see, one per line. A job is left out when its company name contains what you type — Amazon also removes Amazon.com Services LLC, while Apple leaves Applebee's alone. Excluded jobs never reach your dataset, and the run keeps going until it reaches your maximum, so excluding a staffing agency costs you nothing in results.
🎯 Title match (optional, off by default):
An extra filter applied to the job title after Glassdoor has returned its results. Leave it Off unless you specifically want literal titles — Glassdoor's own matching already understands that Web developer means Frontend Engineer and Full Stack Developer too.
| Mode | A job is kept when… | Searching Web developer |
|---|---|---|
| Off (default) | always — you get everything Glassdoor returns | ✅ Full Stack Engineer, Lead Frontend Engineer, Web Developer |
| Loose | its title contains at least one of your words | ✅ Web Developer, Full Stack Developer — ❌ Frontend Engineer |
| Strict | its title contains every word of your keyword | ✅ Senior Web Developer only — this discards most real matches |
⚠️ Strict is narrow. On a live Web developer + New York search it keeps 3% of the results — precise, but it drops jobs you almost certainly want. Skipped jobs are reported at the end of the run and are never charged. Title match is ignored when you search by company or by job ID — there's no keyword to match against.
⚙️ Settings: Maximum jobs · Fetch full job descriptions · Fetch company details · Add salary benchmark · 🎌 Glassdoor country site (20 options) · 🌐 Proxy (residential, preset for you).
Example input
{"keyword": "software engineer","location": "New York","postedWithinDays": "7","employmentType": ["Full-time"],"seniority": ["Mid-senior"],"minRating": "3","excludeCompanies": ["Robert Half"],"scrapeDetails": true,"maxItems": 200}
More ready-to-run inputs (all four search modes × both detail modes) live in the examples/ folder.
📤 Output
You can download the dataset extracted by the Glassdoor scraper in JSON, CSV, Excel or XML, or fetch it from the Apify API.
Every row is one flat record. The field names are the ones the previous Glassdoor scraper used (job_*, company_*), so existing integrations keep working unchanged — and everything the scraper knows now sits beside them under the same naming, rather than in a separate nested object.
The dataset offers four views — Jobs, Companies, Salaries and Failed items. They read the same rows through different columns; pick one from the view selector.
One row, annotated
Every job is one flat record. Fields marked ➕ come from a paid add-on — everything else is
included in the price of a job. Long values are shortened with […] here for readability; you get
them in full.
{// ── The job ────────────────────────────────────────────────────────────"job_id": "1010174027691","job_title": "Lead Blockchain Protocol Engineer (Specialty Software Engineer 3)-NJ","job_normalized_title": "software engineer","job_occupation": "software engineer", // language-independent across country sites"job_occupation_id": 100063,"job_url": "https://www.glassdoor.com/partner/jobListing.htm?pos=101&ao=1110586[…]","job_apply_url": "https://www.glassdoor.com/partner/jobListing.htm?tgt=APPLY_START[…]","job_seo_url": "https://www.glassdoor.com/job-listing/lead-blockchain-protocol-engineer-experis-JV_IC1127049[…]","job_posted_date": "2026-08-19T00:00:00","job_publication_age": "80 days ago","job_age_in_days": 80,"job_easy_apply": true,"job_sponsored": true,"job_expired": false,"job_source": "Indeed Job Search Platform","job_industry": "HR Consulting","job_type_labels": ["Contract"],// The full description — INCLUDED in the price of a job, not an add-on.// Turn "Fetch full job descriptions" off for a faster run at the same price."job_description": "Our client, a leading organization in the financial technology sector, is seeking a Lead Blockchain Protocol Engineer to join their innovative team. […] Architect and develop a core settlement engine utilizing blockchain technology and cryptographic primitives. […] 4+ years of experience in Specialty Software Engineering or equivalent.","job_description_html": "<div><p>Our client, a leading organization […]</p></div>","job_description_snippet": "Design and engineer custom consensus extensions and state machines for distributed ledger systems. […]","job_description_snippet_html": "Design and <b>engineer</b> custom consensus extensions […]",// ── Where ──────────────────────────────────────────────────────────────"job_location": {"unknown": "Woodbridge, NJ", // as Glassdoor displays it"city": "woodbridge","state": "New Jersey","country": "United States","country_id": 1,"id": 1127049,"type": "C", // C city · S state · N country · M metro"zip": null,"latitude": 40.5575,"longitude": -74.285},// ── What it pays ───────────────────────────────────────────────────────"job_salary": {"min": 73,"median": 73,"max": 73,"currency": "USD","currency_symbol": "$","pay_period": "hourly","estimated": false, // true when Glassdoor is guessing"source": "EMPLOYER_PROVIDED"},// ➕ Salary benchmark — what the MARKET pays for this role here.// Always an ANNUAL figure, even for an hourly job: convert before comparing."job_salary_benchmark": {"job_title": "software engineer","scope": "city","confidence": "CONFIDENT","pay_period": "ANNUAL","currency": "USD","currency_symbol": "$","base_pay": { "p10": 69676, "p25": 88936, "p50": 116666, "p75": 153043, "p90": 195347 },"additional_pay": { "p10": 16843, "p25": 21780, "p50": 29040, "p75": 40656, "p90": 53143 },"total_pay": { "p10": 86519, "p25": 110716, "p50": 145706, "p75": 193699, "p90": 248491 }},// ── The employer ───────────────────────────────────────────────────────"company_id": "608019","company_name": "Experis US, Inc","company_short_name": "Experis","company_logo": "https://media.glassdoor.com/sql/608019/experis-squareLogo-1779896457844.png","company_profile_url": "https://www.glassdoor.com/Overview/W-EI_IE608019.htm","company_website": "https://www.experis.com","company_url": "https://www.experis.com","company_headquarters_location": "Milwaukee, WI","company_size": "5001 to 10000 Employees","company_sizes_str": "5001 to 10000 Employees","company_revenue": "$25 to $100 million (USD)","company_foundation_date": 1953,"company_industries": ["HR Consulting"],"company_sector": "Human Resources & Staffing","company_type": "Subsidiary or Business Segment","company_rating": 3.4, // the badge Glassdoor shows on the listing"company_ratings": { // the employer's own detailed scores"overall": 3.2, // ⚠️ differs from company_rating — both are real"work_life_balance": 3.6,"compensation": 2.9,"culture": 3.1,"career": 3,"management": 3,"ceo": 0.61, // 0–1 approval share, not a 5-point score"recommend_to_friend": 0.52,"business_outlook": 0.39,"diversity": 3.6},// ➕ Company insights — the employer's own page, beyond the job.// Asked once per COMPANY, not per job. ~40% of listings have no employer// page on Glassdoor; those rows are not charged for this."company_description": "Experis connects top tech talent with the world's most innovative companies. As part of ManpowerGroup, we match professionals in IT, cloud, AI, data, and applications with projects that matter. […]","company_details": {"mission": "For more than 75 years we have operated on the belief that meaningful, sustainable employment has the power to change the world.","ceo": {"name": "Jonas Prising and Kye Mitchell","title": "President and President of Experis US","photo_url": "https://media.glassdoor.com/people/sql/608019/experis-jonas-prising.png"},"competitors": [{ "id": "1838", "name": "Robert Half", "short_name": "Robert Half", "logo_url": "https://media.glassdoor.com/sql/1838/robert-half-squareLogo[…].png" },{ "id": "1089", "name": "Adecco S.A.", "short_name": "Adecco", "logo_url": "https://media.glassdoor.com/sql/1089/adecco-squareLogo[…].png" }],"awards": [{ "name": "2025 World's Most Ethical Companies®", "year": 2025, "featured": true },{ "name": "Forbes Best Employer for Diversity", "year": 2024, "featured": true }],"review_count": 3767,"salary_count": 6589,"interview_count": 0,"photo_count": 94,"benefit_count": 2418,"jobs_url": "https://www.glassdoor.com/Jobs/Experis-Jobs-E608019.htm","reviews_url": "https://www.glassdoor.com/Reviews/Experis-Reviews-E608019.htm","salaries_url": "https://www.glassdoor.com/Salary/Experis-Salaries-E608019.htm"},// ── Kept for backward compatibility ────────────────────────────────────// Fields the previous Glassdoor scraper defined but Glassdoor does not serve.// They are always present and always null, so existing integrations keep working."job_remote": null, "job_levels": null, "job_language": null,"job_benefits_tags": null, "job_candidate_numbers": null,"job_shifts_and_schedule_tags": null,"job_poster_first_name": null, "job_poster_last_name": null,"job_poster_linkedin_profile_url": null,"company_city": null, "company_tag_line": null, "company_locations": null,"company_uri_providers": null, "company_linkedin_follower_count": null,"scraped_at": "2026-09-08T16:08:17.487Z"}
Turning descriptions off keeps every other field above — including the ~160-character
job_description_snippet — and makes the run several times faster, because the search response
already carries them. It does not change what you pay.
What the add-ons are worth
| Fields on the row | Price | Asked | |
|---|---|---|---|
| Every job, by default | 67 | $0.40 / 1,000 | once per 30 jobs (or per job with descriptions on) |
| ➕ Company insights | +15 | +$1.00 / 1,000 | once per company — ~10 extra requests per 1,000 jobs |
| ➕ Salary benchmark | +21 | +$1.00 / 1,000 | once per role and place — a few dozen per 1,000 jobs |
| Everything on | 103 | $2.40 / 1,000 |
Both add-ons are billed only on rows where they actually returned something. The salary benchmark is the one field no other Glassdoor scraper on Apify Store sells at any price. Prices shown are the Free-tier list price; every Apify plan above it pays less (see the discount table under Pricing).
💵 Pricing
You pay per job delivered — no monthly subscription, and platform usage is included, not billed on top.
| What you pay for | Price |
|---|---|
| Starting a run | $0.00005 |
| Each job delivered | $0.0004 — $0.40 per 1,000 jobs |
| ➕ Company insights (optional) | +$0.001 — $1.00 per 1,000 jobs |
| ➕ Salary benchmark (optional) | +$0.001 — $1.00 per 1,000 jobs |
The full job description is included in the price of a job. So are the apply link, the salary range, the company name and logo, the overall rating and all 10 detailed ratings, size, industry, revenue, HQ, website, coordinates and occupation — 67 fields in all, no option to tick.
Three things you are never charged for:
- Failed rows. If a job can't be scraped, it is reported and it is free.
- Duplicates. Glassdoor repeats about 10% of listings across pages; we drop them before billing. A run of 1,000 is 1,000 distinct jobs.
- Add-ons that found nothing. About 40% of listings have no employer page on Glassdoor. With company insights switched on, those rows cost you the job price and nothing more.
It gets cheaper on higher Apify plans
Every event carries an Apify Store discount, applied automatically from your subscription tier — you do not have to ask for it.
| Per 1,000 jobs | Free | Bronze | Silver | Gold and above |
|---|---|---|---|---|
| Jobs | $0.40 | $0.35 | $0.30 | $0.28 |
| ➕ Company insights | $1.00 | $0.80 | $0.60 | $0.50 |
| ➕ Salary benchmark | $1.00 | $0.80 | $0.60 | $0.50 |
| Everything on | $2.40 | $1.95 | $1.50 | $1.28 |
What a real run costs (Free tier — every other tier pays less)
| Run | Cost |
|---|---|
| 100 jobs | $0.04 |
| 1,000 jobs | $0.40 |
| 1,000 jobs + company insights | $1.40 |
| 1,000 jobs + salary benchmarks | $1.40 |
| 1,000 jobs, everything on | $2.40 |
| 10,000 jobs, everything on | $24.00 |
How that compares. We benchmarked the eight busiest Glassdoor scrapers on Apify against the same search on 8 September 2026. The category leader charges $0.40 per 1,000 and returns 21 filled fields per job. This actor charges the same $0.40 and returns 67 — including the full description they also ship, plus the company profile, the 10 detailed ratings, coordinates and occupation classification they don't. Company insights and the salary benchmark are add-ons on top of that, and no competitor sells the benchmark at any price. On that run it also returned 1,008 distinct jobs with zero duplicates, where the leader billed 1,000 rows containing only 874 distinct jobs.
🤖 Use the Glassdoor scraper with AI agents (MCP)
This actor is a first-class tool for AI agents and LLM pipelines, not just humans:
- 🔌 Callable via MCP — through the Apify MCP server, any Model Context Protocol client can discover and run this scraper as a tool: Claude Code, OpenAI Codex, OpenClaw, Cursor, Claude Desktop, and any custom agent.
- 🧠 LLM-ready output — clean, consistent, strongly-typed JSON (no raw HTML dumps, no surprise fields) that drops straight into RAG, embeddings, or an agent's context window.
- 🕹️ One-call API — trigger a run and collect a structured dataset with a single API request; simple JSON in, clean data out. Ideal for autonomous agents that need live Glassdoor data on demand.
- 🧩 Composable — chain it with other Apify actors or your own tools to build recruiting copilots, salary-benchmark bots, or market-intel workflows.
Give your coding agent the power to answer "what does a senior data engineer earn in Berlin, and which companies are hiring?" — with real, current Glassdoor data.
📌 Limits & good to know
- One search will not hand over everything Glassdoor advertises. However many jobs it reports finding — 900 or 93,000 — its result pages stop well before that, then simply offer no further page. How far you get depends on the search and on the network path: we have measured 543–554 results on a direct connection and 1,008 on the same keyword through residential proxies, so we do not quote a fixed ceiling. The actor reads the true total up front and warns you when your request looks larger than one search can deliver, then tells you at the end exactly how many it reached — it never silently truncates. To collect more, split one big search into several narrower ones — by posted date, salary band, location, industry or job function — and combine the results. Each narrower search gets its own allowance, and the jobs barely overlap.
- Salary is often estimated. Many listings don't publish a salary, so Glassdoor shows an estimate (flagged with
estimated: true). Turn Include jobs without salary off to keep only jobs that publish real pay data. - ~40% of jobs have no company profile. That's normal — not every listing is linked to a rated employer. Those rows still succeed; the company fields are just empty.
- Residential proxies are required and preset for you. Leave the proxy setting at its default.
🔁 Migrating from the previous Glassdoor scraper?
Nothing to do. This is a drop-in replacement for the older glassdoor-jobs-scraper:
- Every legacy field (
job_id,job_title,job_salary,company_name,company_size, …) is still emitted at the root of every row. - Old inputs are auto-detected and mapped, and full details are fetched automatically to match the old behavior.
- One deliberate improvement:
job_salaryis now correct. The old scraper shipped invertedmin/max, a hardcoded"hourly"period, and hourly figures for annual jobs. Those are fixed.
❓ FAQ
Is it legal to scrape Glassdoor?
Web scraping public data is legal in many jurisdictions. This scraper only collects publicly available job and company information — it does not extract private user data. You are responsible for how you use the data, and results may contain personal data (e.g. a job poster's name) protected by GDPR and similar laws. If in doubt, consult a lawyer. See Apify's guide on the legality of web scraping.
Does Glassdoor have an official API?
No public job/salary API is available. This actor is a reliable Glassdoor API alternative that returns the same public data in a clean, structured form.
My results include jobs unrelated to what I searched. How do I fix that?
That's Glassdoor's own behaviour: it matches your keyword one word at a time, so AI engineer also matches anything containing engineer — and once the closely-matching jobs run out, it keeps padding the results with related roles rather than stopping. If you want only literal titles, set Title match to Strict and only jobs whose title contains every word of your keyword are kept — but be aware it is aggressive (on a live Web developer + New York search it keeps just 3% of the results, dropping Full Stack Engineer and Frontend Engineer). Loose is the middle ground. Above all, make sure the Location field resolves: a location that can't be matched used to widen the search to the whole country, which is what really pollutes a result set. Remember that shorter keywords are sharper — AI engineer beats AI engineer New York, since the extra words widen the match instead of narrowing it. Filter by location with the Location field, not by putting it in the keyword.
Can I get salaries and company ratings without full details?
Yes — and far more than that. Every field comes at the same price: the full job description, the salary range with its currency, the overall company rating and all 10 detailed ratings, size, industry, revenue, HQ, website, year founded, the apply link and the posting date. Turning Fetch full job descriptions off makes the run several times faster and costs you the description text (you keep a ~160-character preview) — it does not change what you pay.
How do I tell whether a job pays well?
Turn on Add salary benchmark. Every job then carries what the market pays for the same role in the same place — base pay and additional pay (bonus, commission, profit sharing), from the 10th to the 90th percentile, with Glassdoor's own confidence rating. A New York software engineer benchmarks at $125,658 median base and $168,783 median total, for example, so a listing at $95,000 is visibly below market. Every figure carries its currency, so a French run reads in euros.
⚠️ The benchmark is always an annual figure, even for roles normally paid hourly — a New York server benchmarks at $43,520, not at an hourly rate. If the job itself pays hourly, convert before comparing: a job at "$50–100 per hour" is not below a $138,057 benchmark.
Can I schedule Glassdoor scraping to run automatically?
Yes. Use Apify Scheduler to run the scraper daily or weekly, and connect webhooks or integrations (Make, Zapier, Google Sheets, Slack…) to push fresh data wherever you need it.
Which Glassdoor country sites are supported?
20 country sites, including the US (glassdoor.com), UK, Canada, Ireland, France, Germany, Spain, Italy, Netherlands, Belgium, Austria, Switzerland, Australia, New Zealand, India, Singapore, Hong Kong, Brazil, Mexico and Argentina. .com is fully verified; the rest are best-effort.
I asked for thousands of jobs but only got ~500. Why?
Because that is all Glassdoor will hand over for one search. Its result pages stop well before the total it advertises at the top — the run isn't failing, and it isn't the scraper's limit. How far you get varies: we have measured 543–554 on a direct connection and 1,008 on the same keyword through residential proxies. You'll see a warning in the log as soon as we know your request is larger than one search is likely to deliver, and a line at the end telling you exactly how many it reached.
The fix is to split the search. Instead of one run for software engineer nationwide, launch several narrower runs and combine the datasets:
- by posted date — last day / last 3 days / last week / last month
- by location — one run per city or state instead of one nationwide
- by salary band — e.g. under $100k, $100–150k, above $150k
- by industry or job function
Each narrower search comes with its own allowance, and in testing the results barely overlapped — one filtered variation of a search returned 739 jobs of which 699 had never appeared in the unfiltered run. Deduplicate the combined datasets on job_id.
🐛 Support & feedback
Found a bug or need a field we don't yet extract? Open an issue on the actor's Issues tab — we read every report and are happy to build custom variations. Feedback shapes the roadmap.
Not affiliated with, endorsed by, or connected to Glassdoor, Inc. "Glassdoor" is a trademark of its respective owner. This tool extracts publicly available data only.
