Glassdoor Jobs Scraper
Pricing
from $0.30 / 1,000 job saveds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Glassdoor Jobs Scraper: job listings, salaries and company data

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
jobIdof 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 aggregator | Fill your board daily with fresh Glassdoor jobs, full descriptions and salaries. Turn on Only new jobs and schedule it. |
| Recruiter or staffing agency | Find companies hiring for the roles you place, with their size, website and open-job count, and see who posts with salaries. |
| Sales and lead generation | Build lists of companies hiring now in a city or industry: a hiring signal with company size, revenue, industry and website. |
| Labor-market or salary researcher | Collect pay ranges, skills and demand by role, city and company, in local currencies for any country. |
| Developer or AI agent | Call it from the API or MCP and get a flat, documented JSON schema. |
Quick start
- Click and sign in to Apify.
- Add Keywords ("Software Engineer") and Locations ("New York", "London", "Germany"), or Companies ("Google"), or paste Glassdoor URLs or job ids.
- Set Max jobs per search to
100for a first run and click . - 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):
| jobTitle | companyName | location | salaryMin | salaryMax | salaryPeriod | companyRating | companySize |
|---|---|---|---|---|---|---|---|
| Software Developer - AI Trainer | DataAnnotation | New York State | 40 | 150 | HOURLY | 4 | 1001 to 5000 Employees |
| Fullstack Engineer - Fortify | Pear (CA) | New York, NY | 120,000 | 155,000 | ANNUAL | 4.8 | 1 to 50 Employees |
| Mobile Software Engineer | Benjamin Moore | Montvale, NJ | 115,700 | 162,000 | ANNUAL | 4 | 1001 to 5000 Employees |
| Senior Full Stack Engineer | Wissen Infotech | New York, NY | 112,132 | 169,774 | ANNUAL | 3.8 | 1001 to 5000 Employees |
| Reference Data Software Engineer | BIP.Monticello | New York, NY | 120,000 | 160,000 | ANNUAL | 4.3 | 51 to 200 Employees |
| Sr. Generative AI (GenAI) Software Engineer - hy | Calance | New York, NY | 160,000 | 180,000 | ANNUAL | 3.6 | 201 to 500 Employees |
| Software Developer - AI Trainer | DataAnnotation | Mount Vernon, NY | 50 | 100 | HOURLY | 4 | 1001 to 5000 Employees |
| Senior Forward Deployed Engineer - Vice Presiden | Citi | New York, NY | 142,320 | 213,480 | ANNUAL | 3.6 | 10000+ 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
What to search
| Field | What it does |
|---|---|
keywords | Job titles, skills or words. Each keyword is a separate search. Empty = all jobs of the companies or locations. |
locations | Cities, 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. |
companies | Company 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). |
startUrls | Glassdoor URLs: job search pages, company job pages (/Jobs/Google-Jobs-E9079.htm), job listings (?jl=…) or bare job ids (1010273184996). |
maxResults | Jobs per search (each keyword × location × company). 0 = as many as the Actor can find, up to 10,000 per search. |
includeDetails | On by default: full description, skills, education, company description, mission and awards. Off is about twice as fast; the price is the same. |
Filters
| Field | Values |
|---|---|
postedWithin | 1, 3, 7, 14 or 30 days |
jobTypes | fulltime, parttime, contract, internship, temporary (several allowed) |
seniority | entrylevel, midseniorlevel, director, executive (several allowed) |
remoteOnly | Remote jobs only. Glassdoor lists remote jobs by country, so use a country or no location. |
easyApplyOnly | Jobs you can apply to on Glassdoor |
minRating | Minimum company rating, e.g. 3.5 |
minSalary, maxSalary | Yearly pay in the local currency |
radius | Miles around a city: 0 (city only), 5, 10, 15, 25 (Glassdoor's default), 50, 100 |
companySizes | 1 (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 enter | You get |
|---|---|
| Keywords + locations | Each keyword in each location |
| Companies only | All open jobs of each company |
| Companies + keywords | Each keyword at each company |
| A location only | All jobs in that place |
| A Glassdoor search URL | That search, with its filters |
Output fields
| Group | Fields |
|---|---|
| Job | jobId, jobTitle, normalizedJobTitle, jobTypes, postedDate, ageInDays, easyApply, isSponsored, isExpired, url, applyUrl |
| Location | location, city, state, country, postalCode, latitude, longitude, isRemote |
| Salary | salaryMin, salaryMedian, salaryMax, salaryCurrency, salaryPeriod (ANNUAL, MONTHLY, HOURLY), salarySource (EMPLOYER_PROVIDED or ESTIMATED) |
| Description | descriptionSnippet, description (HTML), descriptionText, skills, education |
| Company | companyName, companyNameInListing, companyId, companyLogoUrl, companyRating, companySize, companyRevenue, companyType, companyFounded, companyHeadquarters, companyWebsite, industry, sector, companyDescription, companyMission, companyAwards |
| Ratings | ratingCareerOpportunities, ratingCompensationAndBenefits, ratingCultureAndValues, ratingSeniorManagement, ratingWorkLifeBalance, recommendToFriend, ceoName, ceoPhotoUrl, ceoApproval, ceoRatingsCount |
| Company activity | companyReviewCount, companySalaryCount, companyOpenJobs, companyGlassdoorUrl, companyReviewsUrl, companySalariesUrl, companyJobsUrl |
| Run | searchKeyword, 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 plan | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| 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
SUMMARYrecord in the key-value store has the counts.
Monitor jobs with scheduled runs
- Set your input, turn on Only new jobs, and click Save as a new task.
- 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.
- 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 ApifyClientclient = 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.