Glassdoor Jobs Scraper
Pricing
from $0.09 / 1,000 job saveds
Glassdoor Jobs Scraper
Extract Glassdoor job listings with salary estimates, company ratings, locations, posting age, remote status, and hiring details.
Pricing
from $0.09 / 1,000 job saveds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Collect public Glassdoor job listings as structured data for recruitment research, salary analysis, hiring intelligence, and job aggregation. Glassdoor Jobs Scraper exports each vacancy with its source URL, title, company, location, and collection timestamp. Rich salary and employer fields are included whenever Glassdoor publishes them on the listing.
Example input
{"keyword": "software engineer","location": "New York, NY","country": "US","daysOld": 7,"includeDetails": true,"maxItems": 5}
You can also supply one or more public Glassdoor searches in startUrls when you have already configured filters on the website.
Example output
{"url": "https://www.glassdoor.com/job-listing/example.htm?jl=123456","title": "Senior Software Engineer","companyName": "Example Company","location": "New York, NY","source": "glassdoor","scrapedAt": "2026-07-10T12:00:00.000Z"}
Fields may be omitted when they are not published in a job card. Every saved record keeps the public source URL so you can review the original vacancy.
What data can you export?
- Job title and canonical Glassdoor listing URL
- Employer name when shown on the listing
- City, state, country, or remote location label
- Glassdoor source provenance
- UTC collection timestamp
- Public salary range, currency, period, and salary source
- Company rating, review count, size, and industry when available
- Job description and application URL when detail enrichment is enabled
- Remote, Easy Apply, job type, query, rank, and collection diagnostics
The dataset is ready for JSON, CSV, Excel, XML, RSS, and API export through Apify.
Who is it for?
Recruiters, talent intelligence teams, job-board operators, compensation analysts, and developers can use this Actor to turn public job searches into structured, repeatable datasets.
Use cases
- Recruiting research: build prospect lists from currently advertised roles.
- Salary analysis: compare public compensation ranges across locations and employers.
- Hiring intelligence: monitor which companies are expanding specific teams.
- Job aggregation: feed normalized vacancies into internal search and alert tools.
- Market analysis: measure demand for titles, skills, industries, and locations.
- Automation: connect recurring runs to webhooks, Google Sheets, Make, Zapier, or your data warehouse.
Input settings
| Field | Type | Description |
|---|---|---|
startUrls | array | Optional public Glassdoor job-search URLs. |
keyword | string | Job title, skill, or employer. Default: software engineer. |
location | string | City, state, or country. Default: New York, NY. |
country | string | Glassdoor country site and proxy location. |
daysOld | integer | Maximum posting age from 1 to 30 days. |
remoteOnly | boolean | Keep jobs labeled as remote. |
easyApplyOnly | boolean | Keep jobs labeled Easy Apply. |
jobType | string | All, full-time, part-time, contract, internship, or temporary. |
seniority | string | Optional seniority keyword preserved in output. |
minSalary | number | Minimum published maximum salary. |
industry | string | Optional industry text filter. |
companySize | string | Optional employee-size text filter. |
minCompanyRating | number | Minimum Glassdoor employer rating. |
includeDetails | boolean | Enrich descriptions, apply URLs, and company details. |
maxItems | integer | Maximum jobs to save. The low prefill keeps a first run inexpensive. |
Use either configured startUrls or the keyword and location fields. Start with a small limit, inspect the results, and then increase the limit for production workflows.
Ready-to-run examples
Open a public example to inspect its input, run it, or reuse it as a task:
- Find Machine Learning Engineer Jobs in Austin
- Export Data Scientist Jobs in Austin
- Export Software Engineering Jobs in New York
Search by title and city
{"keyword": "data scientist","location": "Austin, TX","maxItems": 10}
Use an existing Glassdoor search
{"startUrls": [{"url": "https://www.glassdoor.com/Job/jobs.htm?sc.keyword=product%20manager"}],"includeDetails": false,"maxItems": 10}
Monitor a narrow hiring market
{"keyword": "machine learning engineer","location": "United States","maxItems": 5}
Output fields
| Field | Meaning |
|---|---|
jobId, title, jobUrl | Stable listing identity, published title, and public URL. |
companyName, location | Employer and published job location. |
description, applyUrl | Enriched detail text and application destination. |
salaryText, salaryMin, salaryMax | Original and normalized public compensation. |
salaryCurrency, salaryPeriod, salarySource | Compensation context and estimate source. |
companyRating, companyReviewCount | Public employer reputation metrics. |
companySize, industry | Public company profile details. |
remote, easyApply, jobType, seniority | Work and application attributes. |
query, searchLocation, rank, sourceUrl | Search provenance and result order. |
source, scrapedAt, diagnostics | Source, UTC collection time, and detail status. |
Missing optional data is omitted rather than guessed.
Pricing and limits
This Actor uses pay-per-event pricing. A start event is charged once when a run begins, and an item event is charged for each job saved to the dataset. Runs accept up to 1,000 jobs and stop after five minutes. See the live Apify Pricing tab for current rates for your plan.
API usage
cURL
curl -X POST \"https://api.apify.com/v2/acts/fetch_cat~glassdoor-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"software engineer","location":"New York, NY","maxItems":5}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/glassdoor-jobs-scraper').call({keyword: 'software engineer', location: 'New York, NY', maxItems: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/glassdoor-jobs-scraper').call(run_input={'keyword': 'software engineer', 'location': 'New York, NY', 'maxItems': 5,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
After the run finishes, read its default dataset through the returned dataset ID.
Use with MCP and AI agents
Connect an MCP-compatible assistant to:
https://mcp.apify.com/?tools=fetch_cat/glassdoor-jobs-scraper
The assistant can start the Actor with structured input and consume the resulting dataset. Keep limits small when an agent is exploring a new query.
Tips for reliable results
- Use specific job titles rather than broad single-word keywords.
- Include a city and state or a country to reduce ambiguous locations.
- Keep recurring searches narrow and deduplicate by listing URL or job ID.
- A vacancy can disappear when the employer closes it; schedule monitoring according to your freshness needs.
- Glassdoor may publish different fields by country, employer, and job type.
Limits and responsible use
This Actor collects public job-listing information. Website availability and published fields can change. Do not use the output for unlawful discrimination, spam, or decisions that require information Glassdoor did not publish. Follow applicable law, the source website's terms, and privacy requirements in your jurisdiction.
A security or challenge page is reported as an error, not as a successful empty dataset. Legitimate searches with no matching vacancies may return no items.
FAQ
Does it require my Glassdoor login or cookies?
No. The Actor is designed for public job listings and does not ask for private account credentials.
Can I search remote jobs?
Use a public Glassdoor URL configured with the filters you need, or enter a remote-oriented keyword and location. Filter support depends on the public search page.
Why is an optional field missing?
Glassdoor does not publish every field for every vacancy. The Actor omits unavailable values instead of inventing them.
Can I run it on a schedule?
Yes. Use Apify Schedules and store listing URLs or IDs to identify new and removed vacancies between runs.
Related Actors
Combine this Actor with LinkedIn Jobs Scraper, ATS Jobs Scraper, Dice Jobs Scraper, Indeed Jobs Scraper, or Google Jobs Scraper for broader hiring-market coverage.
Support
If a public search repeatedly fails, open an issue from the Actor's Apify page. Include the input, run ID, expected result, and country. Do not include passwords, cookies, tokens, or other secrets.