Glassdoor Jobs Scraper avatar

Glassdoor Jobs Scraper

Pricing

from $0.30 / 1,000 job saveds

Go to Apify Store
Glassdoor Jobs Scraper

Glassdoor Jobs Scraper

Scrape Glassdoor jobs by keyword, location, company or search URL in any country. Full description, salary range, skills, apply link, company size, revenue and 9 ratings. Goes past Glassdoor's ~1,000-job limit, no duplicates, only-new-jobs mode.

Pricing

from $0.30 / 1,000 job saveds

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Glassdoor Jobs Scraper: job listings, salaries and company data

Every Glassdoor job as clean data: search by keyword, location, company or URL and get descriptions, salaries, skills and full company profiles, in any country, with no duplicates and past Glassdoor's search limit

Full descriptions · Salary ranges · Skills · Company size, revenue & 9 ratings · Any country

Glassdoor Jobs Scraper turns Glassdoor job search into a clean dataset. Search by keyword, location, company or a Glassdoor URL you already have, in any country Glassdoor covers. Every job comes with its full description, the salary range with currency and pay period, skills, posting date, coordinates, the apply link, and the employer's full profile: size, revenue, industry, headquarters, website, CEO, and all nine Glassdoor ratings.

📈 More jobs per search
Glassdoor stops serving a search after about 1,000 jobs. When it does, the Actor splits the search by city, company size, job function, seniority, job type and date, and keeps going.
🧾 ~60 fields per job
Description as HTML and text, salary min/median/max, skills, education, lat/long, company profile, CEO, 9 ratings, review and open-job counts, awards.
🚫 No duplicates, ever
Glassdoor serves pages from two backends and repeats jobs across pages. The Actor checks every page, so each job is saved and charged once per run, even across keywords.
  • Several searches in one run. Lists of keywords, locations and companies; every combination is its own search.
  • Search by URL. Paste Glassdoor job search pages (their keyword, location and filters are used), company job pages or single job listings, from any Glassdoor domain.
  • Refresh known jobs. Paste job ids (the jobId of earlier results) or job links to fetch those jobs again with full details, without searching.
  • Fast and light. Glassdoor's mobile API, no browser. 1,000 jobs with full details took 95 seconds in a test run.

Who it's for

You are…Use it to…
Job board or aggregatorFill your board daily with fresh Glassdoor jobs, full descriptions and salaries. Turn on Only new jobs and schedule it.
Recruiter or staffing agencyFind companies hiring for the roles you place, with their size, website and open-job count, and see who posts with salaries.
Sales and lead generationBuild lists of companies hiring now in a city or industry: a hiring signal with company size, revenue, industry and website.
Labor-market or salary researcherCollect pay ranges, skills and demand by role, city and company, in local currencies for any country.
Developer or AI agentCall it from the API or MCP and get a flat, documented JSON schema.

Quick start

  1. Click and sign in to Apify.
  2. Add Keywords ("Software Engineer") and Locations ("New York", "London", "Germany"), or Companies ("Google"), or paste Glassdoor URLs or job ids.
  3. Set Max jobs per search to 100 for a first run and click .
  4. Export from the Output tab as JSON, CSV or Excel, or read it from the API.
{
"keywords": ["Software Engineer"],
"locations": ["New York"],
"postedWithin": "7",
"maxResults": 100
}

Real output

From the Quick start search on 2026-10-21 ("Software Engineer" in New York, first jobs with a salary; a few columns):

jobTitlecompanyNamelocationsalaryMinsalaryMaxsalaryPeriodcompanyRatingcompanySize
Software Developer - AI TrainerDataAnnotationNew York State40150HOURLY41001 to 5000 Employees
Fullstack Engineer - FortifyPear (CA)New York, NY120,000155,000ANNUAL4.81 to 50 Employees
Mobile Software EngineerBenjamin MooreMontvale, NJ115,700162,000ANNUAL41001 to 5000 Employees
Senior Full Stack EngineerWissen InfotechNew York, NY112,132169,774ANNUAL3.81001 to 5000 Employees
Reference Data Software EngineerBIP.MonticelloNew York, NY120,000160,000ANNUAL4.351 to 200 Employees
Sr. Generative AI (GenAI) Software Engineer - hyCalanceNew York, NY160,000180,000ANNUAL3.6201 to 500 Employees
Software Developer - AI TrainerDataAnnotationMount Vernon, NY50100HOURLY41001 to 5000 Employees
Senior Forward Deployed Engineer - Vice PresidenCitiNew York, NY142,320213,480ANNUAL3.610000+ Employees

One job with all fields (description shortened):

{
"jobId": "1010300331729",
"jobTitle": "Senior Forward Deployed Engineer - Vice President",
"normalizedJobTitle": "senior vice president programmer analyst",
"companyName": "Citi",
"companyNameInListing": "Citi",
"companyId": 8843,
"companyRating": 3.6,
"companyLogoUrl": "https://media.glassdoor.com/sql/8843/citi-squareLogo-1686753614162.png",
"location": "New York, NY",
"city": "New York, NY",
"state": "New York State",
"country": "United States",
"postalCode": null,
"latitude": 40.71417,
"longitude": -74.00639,
"isRemote": false,
"postedDate": "2026-10-19",
"ageInDays": 1,
"jobTypes": ["Full-time"],
"easyApply": false,
"isSponsored": true,
"isExpired": false,
"salaryMin": 142320,
"salaryMedian": 177900,
"salaryMax": 213480,
"salaryCurrency": "USD",
"salaryPeriod": "ANNUAL",
"salarySource": "EMPLOYER_PROVIDED",
"descriptionSnippet": "Appropriately assess risk when business decisions are made, demonstrating particular consideration for the firm's reputation and safeguarding Citigroup, its…",
"description": "<div><h2 class=\"jobSectionHeader\"><b>Discover your future at Citi</b></h2>\n\n<p>Working at Citi is far more than just a job. A career with us means joining a tea…",
"descriptionText": "Discover your future at Citi\n\nWorking at Citi is far more than just a job. A career with us means joining a team of approximately 219,000 dedicated people from …",
"skills": [
"Jira",
"Enterprise software",
"Git",
"Docker",
"REST",
"ServiceNow",
"Linux",
"JSON",
"Kafka",
"gRPC",
"Python"
],
"education": ["Master's degree", "Bachelor's degree"],
"url": "https://www.glassdoor.com/job-listing/senior-forward-deployed-engineer-vice-president-citi-JV_IC1132348_KO0,47_KE48,52.htm?jl=1010300331729",
"applyUrl": "https://www.glassdoor.com/partner/jobListing.htm?pos=101&ao=1110586&s=344&guid=000001a15f1df1a2892971e6fb1bbf4a&src=GD_JOB_VIEW&t=NS&vt=w&cs=1_52a42338&cb=1792597160538&jobListingId=1010300331729&cpc=A65DF3A704A48F9B&jrtk=5-yul1-3-1k5fhrsej2i3fh00---6NYlbfkN0B7UYL49yWBrrOlEWIsfJu1HwdoffaEv3MPqVgUrdyA2tLe3-qLeVYbGWkeBscfLwWNTcMtV47ePR07bcYI3mebbt_q5m0e_XnbzT_POksvqhEe56HWtSpMLXXFyVz7mLeYRUNEwWtOs-ULk8sN0kONk3B5DXs3bCBpV2IkkfK9LwyAQjQxLHe1ETbPI_GFM3PQUplWGvz_z1EmlniaEfIz7VKZzTarXjZgRMU2I6EYbrxIiU5-mQFNmwjZcVaCKTythETmF6qnHAlLtKTjUkvH8FBKECTrcEweeLmTEmP7oVVHud8eDSj0HVAxQs3IB3PiuBKkqaKEWS6B8BJRJfkJXtI9U0-ZB9ru0wWkQgvqf0SRGKZEqUaYoivW5oW8W3sfZOMDZRGVN6kPaCLs97aUAVQJpW99F4Ni8_dZY6aW9mdYJ8nY4vF5V7KkyVjx0tdpFtGPjsv52_rm6miCJumS-_B9lYTjV5Ue0lg0Sv2HdCVH0_ljlRiR0jnCYnezOopc_FAfgJf7EOnbaf6aDX7fOqA7U651vFnfEjoLH_WQDza3_kRYbNV8ibC5dGk1_GQyFhMQbwehHyTQT9p_0OmfEvCnxVxMRI97Lr6Deo2lVebuninRyjr1",
"industry": "Investment & Asset Management",
"sector": "Financial Services",
"companySize": "10000+ Employees",
"companyRevenue": "$10+ billion (USD)",
"companyType": "Company - Public",
"companyFounded": 1812,
"companyHeadquarters": "New York, NY",
"companyWebsite": "www.citigroup.com",
"companyDescription": "Working at Citi is far more than just a job. A career with us means joining a team of more than 225,000 dedicated people from around the globe. At Citi, you’ll …",
"companyMission": "Citi’s mission is to serve as a trusted partner to our clients by responsibly providing financial services that enable growth and economic progress. Our core ac…",
"ceoName": "Jane Fraser",
"ceoPhotoUrl": "https://media.glassdoor.com/people/sql/8843/citi-ceo1614669101894.png",
"ceoApproval": 0.65,
"ceoRatingsCount": 4116,
"recommendToFriend": 0.64,
"ratingCareerOpportunities": 3.4,
"ratingCompensationAndBenefits": 3.6,
"ratingCultureAndValues": 3.4,
"ratingSeniorManagement": 3,
"ratingWorkLifeBalance": 3.4,
"companyReviewCount": 42405,
"companySalaryCount": 74436,
"companyOpenJobs": 3216,
"companyAwards": [],
"companyGlassdoorUrl": "https://www.glassdoor.com/Overview/Working-at-Citi-EI_IE8843.11,15.htm",
"companyReviewsUrl": "https://www.glassdoor.com/Reviews/Citi-Reviews-E8843.htm",
"companySalariesUrl": "https://www.glassdoor.com/Salary/Citi-Salaries-E8843.htm",
"companyJobsUrl": "https://www.glassdoor.com/Jobs/Citi-Jobs-E8843.htm",
"searchKeyword": "software engineer",
"searchLocation": "New York, NY",
"searchCompany": null,
"scrapedAt": "2026-10-21T15:39:12.632Z"
}

Input

FieldWhat it does
keywordsJob titles, skills or words. Each keyword is a separate search. Empty = all jobs of the companies or locations.
locationsCities, metros, states or countries in any country ("Austin", "California", "London", "Germany", "Bengaluru"). Add the country if a name is ambiguous ("Paris, France"). Empty = United States.
companiesCompany names, Glassdoor company URLs or employer ids. Only jobs posted by these companies; with no keyword, all of their open jobs in the locations (Glassdoor searches one country at a time; empty = US).
startUrlsGlassdoor URLs: job search pages, company job pages (/Jobs/Google-Jobs-E9079.htm), job listings (?jl=…) or bare job ids (1010273184996).
maxResultsJobs per search (each keyword × location × company). 0 = as many as the Actor can find, up to 10,000 per search.
includeDetailsOn by default: full description, skills, education, company description, mission and awards. Off is about twice as fast; the price is the same.

Filters

FieldValues
postedWithin1, 3, 7, 14 or 30 days
jobTypesfulltime, parttime, contract, internship, temporary (several allowed)
seniorityentrylevel, midseniorlevel, director, executive (several allowed)
remoteOnlyRemote jobs only. Glassdoor lists remote jobs by country, so use a country or no location.
easyApplyOnlyJobs you can apply to on Glassdoor
minRatingMinimum company rating, e.g. 3.5
minSalary, maxSalaryYearly pay in the local currency
radiusMiles around a city: 0 (city only), 5, 10, 15, 25 (Glassdoor's default), 50, 100
companySizes1 (1–200 employees), 2 (201–500), 3 (501–1,000), 4 (1,001–5,000), 5 (5,001+)

Monitoring

onlyNewJobs: for scheduled runs. The Actor remembers the jobs each search saved (in a key-value store named glassdoor-jobs-scraper-seen in your account) and skips them next time, so every run returns and charges only new jobs.

How searches combine

You enterYou get
Keywords + locationsEach keyword in each location
Companies onlyAll open jobs of each company
Companies + keywordsEach keyword at each company
A location onlyAll jobs in that place
A Glassdoor search URLThat search, with its filters

Output fields

GroupFields
JobjobId, jobTitle, normalizedJobTitle, jobTypes, postedDate, ageInDays, easyApply, isSponsored, isExpired, url, applyUrl
Locationlocation, city, state, country, postalCode, latitude, longitude, isRemote
SalarysalaryMin, salaryMedian, salaryMax, salaryCurrency, salaryPeriod (ANNUAL, MONTHLY, HOURLY), salarySource (EMPLOYER_PROVIDED or ESTIMATED)
DescriptiondescriptionSnippet, description (HTML), descriptionText, skills, education
CompanycompanyName, companyNameInListing, companyId, companyLogoUrl, companyRating, companySize, companyRevenue, companyType, companyFounded, companyHeadquarters, companyWebsite, industry, sector, companyDescription, companyMission, companyAwards
RatingsratingCareerOpportunities, ratingCompensationAndBenefits, ratingCultureAndValues, ratingSeniorManagement, ratingWorkLifeBalance, recommendToFriend, ceoName, ceoPhotoUrl, ceoApproval, ceoRatingsCount
Company activitycompanyReviewCount, companySalaryCount, companyOpenJobs, companyGlassdoorUrl, companyReviewsUrl, companySalariesUrl, companyJobsUrl
RunsearchKeyword, searchLocation, searchCompany, scrapedAt

recommendToFriend and ceoApproval are shares from 0 to 1 (0.63 = 63%). Fields Glassdoor doesn't have for a job are null.

Pricing

You pay per job saved, with no subscription. Full details, company data, platform usage and proxy are included.

Apify planFreeBronzeSilverGold
Per 1,000 jobs$0.35$0.31$0.28$0.24

Duplicates and jobs skipped by Only new jobs are never charged. A run with a spending limit fetches only as many jobs as the limit pays for, then stops.

Tips and limits

  • Glassdoor's search limit: one Glassdoor search serves about 800–1,100 jobs, even when it reports more, and its totals count jobs it never shows. The Actor gets past this by splitting the search; for very broad searches (a keyword across a whole country), add locations or filters to cover more.
  • Ambiguous places: "London" means London, England; write "London, Ontario" for Canada. US states work as names or abbreviations ("Texas", "TX"). The run log shows what each location matched.
  • Apply links go through Glassdoor and forward to the employer's site or Glassdoor's Easy Apply.
  • Bad input never fails a run: an unknown location, company or URL is skipped with a warning in the log, and the run finishes with the rest. The SUMMARY record in the key-value store has the counts.

Monitor jobs with scheduled runs

  1. Set your input, turn on Only new jobs, and click Save as a new task.
  2. In Apify Console, go to Schedules, click Create new, pick how often (daily at 7:00 is cron 0 7 * * *) and add your task. See Schedules.

  1. Send each run's new jobs to Google Sheets, Slack or your database from the task's Integrations tab, or with a webhook.

Use the API

Run the Actor and get the jobs in one call:

curl -X POST "https://api.apify.com/v2/acts/epicscrapers~glassdoor-jobs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["Data Analyst"], "locations": ["Chicago"], "maxResults": 50}'

Or with the Apify client for JavaScript or Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("epicscrapers/glassdoor-jobs-scraper").call(
run_input={"keywords": ["Data Analyst"], "locations": ["Chicago"], "maxResults": 50}
)
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["jobTitle"], job["companyName"], job["salaryMin"], job["salaryMax"])

For AI agents

Minimal input (all fields optional; give at least one of keywords, locations, companies, startUrls):

{
"keywords": ["Registered Nurse"],
"locations": ["Texas"],
"postedWithin": "7",
"maxResults": 50,
"includeDetails": true
}

Key output fields: jobId, jobTitle, companyName, location, country, postedDate, salaryMin, salaryMax, salaryCurrency, salaryPeriod, descriptionText, skills, url, applyUrl, companyRating, companySize, companyWebsite. One item per job; jobId is unique within a run.

FAQ

Do I need a Glassdoor account or cookies? No.

Which countries work? Every country Glassdoor lists jobs in: write the city, state or country in Locations. Salaries come in the local currency.

Is it legal to scrape Glassdoor? The Actor collects publicly available job listings and doesn't log in. Check the terms and data-protection rules that apply to your use, especially if you store personal data such as CEO names.

Something doesn't work? Open an issue on the Actor's Issues tab with the run link, and we'll fix it.