Glassdoor Jobs Scraper - Most Comprehensive avatar

Glassdoor Jobs Scraper - Most Comprehensive

Pricing

from $0.04 / 1,000 jobs

Go to Apify Store
Glassdoor Jobs Scraper - Most Comprehensive

Glassdoor Jobs Scraper - Most Comprehensive

πŸ”₯ ~$0.1/1K jobs πŸ”₯ Scrape Glassdoor job listings with title, description, salary, location, and company details.

Pricing

from $0.04 / 1,000 jobs

Rating

4.7

(3)

Developer

Kai

Kai

Maintained by Community

Actor stats

2

Bookmarked

237

Total users

70

Monthly active users

8 days ago

Last modified

Share

Glassdoor Jobs Scraper - Jobs with Full Employer Profiles

Scrape Glassdoor job listings with full descriptions, salary ranges, skills, coordinates, and the link to apply on the employer's own site. Every job also carries a complete employer profile: all employer ratings, review and salary counts, open jobs, benefits with employee comments, workplace awards, and links to the company's Glassdoor pages.

Search by keyword and location, collect one employer's jobs, or reuse a Glassdoor search URL. Starting at $0.04 per 1,000 jobs.

Use cases

Job boards and job alerts

Publish fresh listings with full descriptions, salaries, and locations. Run the same input every day on an Apify schedule.

{
"keyword": "Software Engineer",
"location": "San Francisco, CA",
"fromAge": "1",
"maxJobs": 0
}

Use profile.title, profile.description, profile.postedDate, compensation.salaryMin, compensation.salaryMax, location.city, and applyUrl.

Salary research

Compare pay by role, place, and company.

{
"keyword": "Data Scientist",
"location": "New York",
"maxJobs": 500
}

Use compensation.salaryMin, compensation.salaryMedian, compensation.salaryMax, compensation.period, compensation.source, profile.normalizedTitle, profile.yearsOfExperience, and employer.salaryCount.

Employer research

Compare employers for job seekers, employer branding, or market reports.

{
"urls": [
"https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm",
"https://www.glassdoor.com/Jobs/Meta-Jobs-E40772.htm"
],
"maxJobs": 50
}

Use employer.ratings, employer.reviewCount, employer.benefits, employer.awards, and employer.links.

Sales and recruiting leads

Find companies that hire now, with their size, revenue, website, and number of open jobs.

{
"keyword": "Registered Nurse",
"location": "Austin, TX",
"fromAge": "7",
"employerSizes": ["201to500", "501to1000"],
"maxJobs": 200
}

Use employer.name, employer.website, employer.size, employer.revenue, employer.headquarters, and employer.openJobCount.

Company hiring monitor

Track one company's openings over time. Run an employer page on an Apify schedule, and compare jobId, profile.postedDate, and profile.expired between runs.

Choose how to find jobs

Starting pointInputUse it for
A job title, skill, or company, and a placekeyword, with optional locationFind jobs in an area
One employerAn employer page in urlsCollect that company's jobs
A Glassdoor search that you already useA search-results page in urlsReuse its keyword and location
Several of theseurls and keywordURL targets run first, the keyword target runs last

What each job includes

  • Job: title, normalized title, full HTML description, snippet, posting date, age in days, discovery date, expired flag, Easy Apply flag, sponsored flag, job type, work arrangement, skills, education, and years of experience
  • Location: display name, city, state, country, latitude, longitude, and location type
  • Salary: low, median, and high values, currency, period, and source (employer-provided or Glassdoor estimate)
  • Employer profile: name, logo, size, type, revenue, founding year, headquarters, industry, sector, website, and CEO with photo
  • Employer ratings: overall, career opportunities, compensation and benefits, culture and values, senior management, work-life balance, diversity and inclusion, CEO approval with its vote count, recommend to a friend, and business outlook
  • Employer activity: number of reviews, salaries, and open jobs on Glassdoor
  • Benefits: benefits rating and review count, the employer's benefits summary, and the top benefits with an employee comment for each
  • Awards: current workplace awards, such as Best Places to Work and Best CEOs, with rank and year
  • Links: the Glassdoor job page, the apply page (usually on the employer's own careers site), and the company's Glassdoor overview, reviews, salaries, benefits, and photos pages

Search for jobs

Start with a keyword and a location:

{
"keyword": "Software Engineer",
"location": "San Francisco, CA",
"maxJobs": 20
}

The Actor saves up to 20 jobs. Set maxJobs to set an upper limit, or use 0 to remove the Actor limit. Glassdoor can return fewer jobs.

If Glassdoor cannot resolve location, the Actor still runs the keyword search without a location filter. Omit location to search all locations for the keyword.

Add search filters

This example keeps recent, full-time, remote, mid- or senior-level roles with a minimum annual salary of 100000 in the local currency:

{
"keyword": "Software Engineer",
"location": "San Francisco, CA",
"fromAge": "7",
"jobType": ["fulltime"],
"remoteWorkType": ["1"],
"seniorityType": ["midseniorlevel"],
"minSalary": 100000,
"maxJobs": 50
}

The filters apply to keyword and URL targets.

Search within a radius

{
"keyword": "Software Engineer",
"location": "Austin, TX",
"radius": "25",
"maxJobs": 50
}

radius is in miles.

Collect jobs from employer pages

{
"urls": [
"https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm"
],
"maxJobs": 20
}

Add several employer pages to process them in input order. Employer URLs must contain /Jobs/...-E<ID>.

Reuse a Glassdoor search URL

{
"urls": [
"https://www.glassdoor.com/Job/san-francisco-software-engineer-jobs-SRCH_IL.0,13_IC1147401_KO14,31.htm"
]
}

The Actor reads the keyword and the encoded location from the URL. Search URLs can use an SEO path or query parameters under /Job/. Set all other filters with input fields.

How search results work

Result range. One search returns at most 3,000 results, 30 pages of 100. Glassdoor repeats jobs across pages, so a search gives fewer unique jobs. A broad search, such as software engineer in the United States, gave 1,600 to 1,900 unique jobs in our tests.

More jobs. To collect more, run more targeted searches: add filters such as fromAge, jobType, or employerSizes, or search smaller locations. With several employerSizes, each size is searched on its own.

Repeated jobs. A job ID is stored once in each target, at its first occurrence. The same job can appear again when a different target returns it.

Order. Targets run in input order. maxJobs applies to each target, not to the complete run. Job order inside one target can change between runs.

Input

Provide a keyword or at least one supported URL. A location affects the keyword target only.

Input reference

ParameterTypeDefaultEffect
keywordstringemptyJob title, skill, or company name.
locationstringemptyCity, state, or country for the keyword search.
urlsstring[]emptyHTTPS Glassdoor employer pages under /Jobs/ or search pages under /Job/. Optional when keyword is set.
maxJobsinteger, 0 or more20Upper limit on saved jobs for each target. 0 removes the Actor limit. One search returns at most 3,000 results.
fromAge"1", "3", "7", "14", or "30"any timeKeeps jobs posted in the last N days.
jobTypestring[] of fulltime, parttime, contract, internship, temporaryany typeEmployment type.
seniorityTypestring[] of entrylevel, midseniorlevel, director, executiveany levelSeniority level.
remoteWorkTypestring[] of "1" (remote), "2" (hybrid), "3" (on-site)anyWork arrangement.
easyApplybooleanfalseKeeps only Easy Apply jobs.
minSalaryintegernoneMinimum annual salary in the local currency.
maxSalaryintegernoneMaximum annual salary in the local currency.
radius"5", "10", "15", "25", "50", or "100"noneSearch radius in miles.
employerSizesstring[] of 1to50, 51to200, 201to500, 501to1000, 1001to5000, 5001to10000, 10001+any sizeSaves only jobs whose employer size matches.
postedBystring[] of jobPoster, staffingAgencyanyWho posted the job.
proxyConfigurationobject{"useApifyProxy":true}Connection settings for the run. Keep the default.
  • Supported hosts are HTTPS pages on glassdoor.com and glassdoor.co.uk. The Actor skips an unsupported URL when another valid target remains.
  • Unknown input fields are ignored.
  • The Actor does not compare minSalary with maxSalary. Use a range in which the minimum is not higher than the maximum.

Output

Each Dataset item is one job. Every documented field is present in every job. When Glassdoor does not supply a value, the field is null or [].

Sample job

This job is from Apple in Sunnyvale, CA, collected on 13 October 2026. Long text keeps its first words, and square brackets mark values removed from the documentation. It is not a saved Dataset item.

Field reference

FieldType and contents
jobIdnumber. Glassdoor job ID.
urlstring. Glassdoor job page.
applyUrlstring or null. The page where the candidate applies.
profileobject. title is a string. normalizedTitle, description (HTML), descriptionSnippet, discoverDate, and yearsOfExperience are strings or null. postedDate is a YYYY-MM-DD string or null. ageInDays is a number or null. expired, easyApply, and isSponsored are booleans. jobType, remoteWorkTypes, skills, and education are string arrays.
locationobject. name, type, city, state, and country are strings or null. lat and lng are numbers or null.
compensationobject. salaryMin, salaryMedian, and salaryMax are numbers or null. currency, period, and source are strings or null.
employerobject. id is a number. name, shortName, logoUrl, size, sizeCategory, type, revenue, headquarters, industry, sector, and website are strings or null. yearFounded, reviewCount, salaryCount, and openJobCount are numbers or null.
employer.ceo{name: string, photoUrl: string or null} or null.
employer.ratingsobject or null. overall, careerOpportunities, compensationAndBenefits, cultureAndValues, seniorManagement, workLifeBalance, diversityAndInclusion, ceoRating, ceoRatingsCount, recommendToFriend, and businessOutlook are numbers or null.
employer.linksobject or null. overview, reviews, salaries, benefits, and photos are Glassdoor page URLs or null.
employer.awardsArray of {name: string, rank: number or null, period: string or null} objects.
employer.benefitsobject or null. rating and reviewCount are numbers or null. summary is an HTML string or null. highlights is an array of {name: string, commentCount: number or null, phrase: string or null} objects.
metaobject. seoJobLink is a string or null. scrapedAt is a string. detailStatus is complete or partial.
  • ceoRating, recommendToFriend, and businessOutlook are shares from 0 to 1, such as 0.83 for 83% approval. The other employer ratings and benefits.rating use a 1 to 5 scale.
  • salaryMin, salaryMedian, and salaryMax are the low, middle, and high values of Glassdoor's salary range. They are not guaranteed offer bounds.
  • awards lists the company's current awards. It is empty when the company has none.
  • applyUrl is usually the job on the employer's careers site. Some employers post a tracking link that redirects there, such as the jsv3.recruitics.com link in the sample job. Candidates apply for Easy Apply jobs on the job board. Many of these links go to a job board page, not to the employer's site. Use profile.easyApply to tell them apart.
  • isSponsored shows whether Glassdoor marked the job as a sponsored listing in this search. The same job can be sponsored in one search and not in another.

Search and field limits

How many jobs can I collect?

maxJobs is an upper limit for each target, not a required result count. Glassdoor can return fewer jobs. Set maxJobs to 0 to remove the Actor limit. One search returns at most 3,000 results, and some of them repeat. See How search results work.

A valid search with no matches succeeds with an empty dataset.

Why are some fields empty?

Glassdoor does not show all fields on every job. When some job details are unavailable, the Actor still saves the job and sets meta.detailStatus to partial. A partial job has the core job fields only. Its full description, detailed location, and most employer profile fields are null or empty. complete means that all job details were collected. It does not mean that every optional field has a value. applyUrl is null when no apply link is available for the job.

How does employerSizes work?

The Actor saves only jobs whose employer size matches a selected value. A job with an unknown employer size is not saved.

What happens when a target fails?

The Actor keeps the saved jobs, tries the later targets, and finishes with a warning. Invalid input, no valid target, or a storage error marks the run as failed.

Can a job disappear after I collect it?

Yes. Glassdoor can change or remove listings at any time. A closed job usually leaves the search results, so compare runs of the same input to find the jobs that are gone.

More job scrapers

Compare the same role across job boards. Each Actor saves jobs to a Dataset that you can export in the same way.

  • Indeed Jobs Scraper: job listings from 62 countries, with full descriptions, parsed salaries, company profiles, and apply links.
  • LinkedIn Jobs Scraper: search by role and location, browse the jobs of one company, or collect jobs by ID. No LinkedIn login is required.
  • Google Jobs Scraper: public Google Jobs results with salary data, qualifications, and application links.