Glassdoor Jobs Scraper avatar

Glassdoor Jobs Scraper

Pricing

from $0.09 / 1,000 job saveds

Go to Apify Store
Glassdoor Jobs Scraper

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

Hanna Nosova

Maintained by Community

Actor 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

FieldTypeDescription
startUrlsarrayOptional public Glassdoor job-search URLs.
keywordstringJob title, skill, or employer. Default: software engineer.
locationstringCity, state, or country. Default: New York, NY.
countrystringGlassdoor country site and proxy location.
daysOldintegerMaximum posting age from 1 to 30 days.
remoteOnlybooleanKeep jobs labeled as remote.
easyApplyOnlybooleanKeep jobs labeled Easy Apply.
jobTypestringAll, full-time, part-time, contract, internship, or temporary.
senioritystringOptional seniority keyword preserved in output.
minSalarynumberMinimum published maximum salary.
industrystringOptional industry text filter.
companySizestringOptional employee-size text filter.
minCompanyRatingnumberMinimum Glassdoor employer rating.
includeDetailsbooleanEnrich descriptions, apply URLs, and company details.
maxItemsintegerMaximum 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:

Search by title and city

{
"keyword": "data scientist",
"location": "Austin, TX",
"maxItems": 10
}
{
"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

FieldMeaning
jobId, title, jobUrlStable listing identity, published title, and public URL.
companyName, locationEmployer and published job location.
description, applyUrlEnriched detail text and application destination.
salaryText, salaryMin, salaryMaxOriginal and normalized public compensation.
salaryCurrency, salaryPeriod, salarySourceCompensation context and estimate source.
companyRating, companyReviewCountPublic employer reputation metrics.
companySize, industryPublic company profile details.
remote, easyApply, jobType, seniorityWork and application attributes.
query, searchLocation, rank, sourceUrlSearch provenance and result order.
source, scrapedAt, diagnosticsSource, 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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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.