Glassdoor Jobs Scraper avatar

Glassdoor Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Glassdoor Jobs Scraper

Glassdoor Jobs Scraper

Scrape job listings from Glassdoor search results. Extract titles, companies, salaries, ratings, locations, and direct job links. Filter by job type, date posted, remote, and easy apply. Export as JSON, CSV, or Excel.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape job listings from Glassdoor search results. Extract job titles, companies, salaries, locations, ratings, and more — structured and ready for analysis, lead generation, or job board integration.

What does Glassdoor Jobs Scraper do?

Glassdoor Jobs Scraper extracts job listing data from Glassdoor's search results pages. It navigates Glassdoor like a real browser, loads job cards, and extracts structured data from each listing. The scraper handles pagination automatically to collect up to 500 jobs per run.

Unlike API-based approaches, this scraper works directly with Glassdoor's rendered pages using Playwright, ensuring reliable data extraction even as Glassdoor updates their platform.

Who is Glassdoor Jobs Scraper for?

  • Job seekers building a personal job tracking spreadsheet across multiple searches
  • Recruiters and HR teams monitoring competitor job postings and salary ranges
  • Market researchers analyzing hiring trends, salary benchmarks, and demand by role or location
  • Data analysts building dashboards on employment market conditions
  • Startups tracking what roles competitors are hiring for
  • Career coaches advising clients with data-backed salary and market insights
  • Developers integrating Glassdoor job data into custom job boards or alert systems

Why use Glassdoor Jobs Scraper?

  • No Glassdoor account needed — scrapes public search results without login
  • Structured output — clean JSON with all key fields, ready for spreadsheets or databases
  • Handles anti-bot — uses residential proxies and browser automation to bypass Cloudflare
  • Filters built in — date posted, job type, remote, Easy Apply — all configurable as input
  • Pagination — automatically loads multiple pages to hit your target result count
  • Pay per result — only charged for jobs actually extracted, starting at $0.003 per job
  • Integrations — export to Google Sheets, Slack, Zapier, webhooks, and more

What data can you extract from Glassdoor?

FieldTypeDescription
titlestringJob title
companystringCompany name
companyRatingnumberCompany rating on Glassdoor (1.0-5.0)
locationstringJob location
salarystringSalary estimate or range
jobTypestringEmployment type (Full-time, Contract, etc.)
postedDatestringWhen the job was posted (e.g., "3d", "1w")
easyApplybooleanWhether Easy Apply is available
descriptionstringShort description snippet from the listing card
jobUrlstringDirect link to the full job posting
companyUrlstringLink to the company's Glassdoor profile
logoUrlstringCompany logo image URL
scrapedAtstringISO timestamp of when the data was collected

Pricing

Glassdoor Jobs Scraper uses a pay-per-result pricing model:

EventPriceDescription
Run started$0.01One-time fee per scraper run
Job scraped$0.003Per job listing extracted

Example costs:

  • 10 jobs: $0.01 + (10 x $0.003) = $0.04
  • 100 jobs: $0.01 + (100 x $0.003) = $0.31
  • 500 jobs: $0.01 + (500 x $0.003) = $1.51

Platform compute costs (Playwright + residential proxy) are included in the per-result price.

How to use Glassdoor Jobs Scraper

  1. Go to the Glassdoor Jobs Scraper page on Apify Store
  2. Click Try for free
  3. Enter your search query (e.g., "software engineer")
  4. Set the location (e.g., "United States" or "New York, NY")
  5. Adjust max results and filters as needed
  6. Click Start
  7. Wait for the run to finish
  8. Download your data as JSON, CSV, or Excel — or connect to Google Sheets

Input parameters

ParameterTypeRequiredDefaultDescription
querystringYesJob title, keyword, or company to search
locationstringNoCity, state, or country
maxResultsintegerNo100Max jobs to extract (1-500)
datePostedstringNoAny timeFilter: 1, 3, 7, 14, or 30 days
jobTypestringNoAnyfulltime, parttime, contract, internship, temporary
remotestringNoAllSet to "true" for remote-only jobs
easyApplystringNoAllSet to "true" for Easy Apply jobs only

Input example

{
"query": "software engineer",
"location": "San Francisco, CA",
"maxResults": 50,
"datePosted": "7",
"jobType": "fulltime",
"remote": "true"
}

Output example

{
"title": "Senior Software Engineer",
"company": "Stripe",
"companyRating": 4.2,
"location": "San Francisco, CA (Remote)",
"salary": "$180K - $250K (Employer est.)",
"jobType": "Full-time",
"postedDate": "2d",
"easyApply": false,
"description": "We're looking for a senior engineer to join our payments infrastructure team...",
"jobUrl": "https://www.glassdoor.com/job-listing/senior-software-engineer-stripe-JV_IC1147401_KO0,24_KE25,31.htm",
"companyUrl": "https://www.glassdoor.com/Overview/Working-at-Stripe-EI_IE671932.htm",
"logoUrl": "https://media.glassdoor.com/sql/671932/stripe-squarelogo.png",
"scrapedAt": "2026-03-25T12:00:00.000Z"
}

Tips for best results

  • Be specific with queries — "React developer" yields more relevant results than just "developer"
  • Use location filters — Glassdoor returns better results when location is specified
  • Start small — test with 10 results first to verify the data matches your needs
  • Combine filters — use datePosted + jobType + remote together to narrow results
  • Schedule regular runs — set up a daily or weekly schedule to track new postings
  • Use the "Last 24 hours" filter for monitoring new listings without duplicates

Integrations

Connect Glassdoor Jobs Scraper to your favorite tools:

  • Google Sheets — auto-export results to a spreadsheet
  • Slack — get notifications when new jobs match your criteria
  • Zapier — trigger workflows based on scraped data
  • Webhooks — send results to your own API endpoint
  • Email — receive results directly in your inbox
  • Airtable — build a structured job tracking database

Set up integrations in the Integrations tab on the actor's page in Apify Console.

Using Glassdoor Jobs Scraper with the Apify API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/glassdoor-jobs-scraper').call({
query: 'data scientist',
location: 'United States',
maxResults: 50,
datePosted: '7',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} jobs`);
items.forEach((job) => {
console.log(`${job.title} at ${job.company}${job.salary}`);
});

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/glassdoor-jobs-scraper").call(run_input={
"query": "data scientist",
"location": "United States",
"maxResults": 50,
"datePosted": "7",
})
dataset = client.dataset(run["defaultDatasetId"]).list_items().items
for job in dataset:
print(f"{job['title']} at {job['company']}{job.get('salary', 'N/A')}")

cURL

# Start a run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~glassdoor-jobs-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "data scientist",
"location": "United States",
"maxResults": 50
}'
# Get results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

Using with MCP (Model Context Protocol)

Glassdoor Jobs Scraper works with Claude Desktop, Cursor, and other AI tools via Apify's MCP server. Add the actor as a tool in your MCP configuration to let AI agents search Glassdoor jobs programmatically.

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "YOUR_API_TOKEN",
"ACTORS": "automation-lab/glassdoor-jobs-scraper"
}
}
}
}

Once configured, your AI assistant can search Glassdoor jobs using natural language:

"Find remote software engineering jobs posted in the last week"

This scraper extracts publicly available job listing data from Glassdoor search results. It does not access any data behind login walls, private profiles, or restricted content. The scraper collects the same information that any visitor can see by browsing Glassdoor's public job search pages.

Web scraping of publicly available data is generally considered legal under major court rulings, including the US Ninth Circuit's decision in hiQ Labs v. LinkedIn (2022). However, users are responsible for ensuring their use of scraped data complies with applicable laws and Glassdoor's Terms of Service.

This actor does not scrape reviews, which require authentication.

Frequently asked questions

How many jobs can I scrape per run?

You can extract up to 500 jobs per run. For larger datasets, run the scraper multiple times with different search queries or locations.

Does it scrape job descriptions?

The scraper extracts the short description snippet shown on the search results card. For full job descriptions, you would need to visit each individual job page (not included in this version to keep costs low).

Why are some salary fields empty?

Not all Glassdoor listings include salary information. The scraper extracts salary data when Glassdoor displays it (either employer-provided or estimated ranges). Roughly 60-70% of listings include salary data.

Can I scrape Glassdoor reviews?

No. Glassdoor reviews are behind a Cloudflare-protected wall that requires authentication. This scraper focuses on job listings, which are publicly accessible.

How fast is the scraper?

A typical run extracting 100 jobs takes 1-3 minutes. Speed depends on the number of result pages and network conditions.

Does the scraper need a Glassdoor account?

No. The scraper accesses publicly available job search pages without any login.

What happens if Glassdoor blocks the scraper?

The scraper uses residential proxies and browser automation to minimize blocking. It automatically retries with fresh sessions if a request fails. In rare cases, some searches may return fewer results than expected.

Can I filter by salary range?

Glassdoor's search page applies salary filters through URL parameters. Use the query field to include salary keywords (e.g., "$100k software engineer") for best results.

Changelog

v0.1 (2026-03-25)

  • Initial release
  • Job search with query, location, and filters
  • Pagination support for up to 500 results
  • Pay-per-result pricing ($0.003/job)