Glassdoor Jobs Scraper avatar

Glassdoor Jobs Scraper

Pricing

from $4.00 / 1,000 dataset items

Go to Apify Store
Glassdoor Jobs Scraper

Glassdoor Jobs Scraper

Scrape Glassdoor job listings by keyword and location: title, company and its rating, pay range, posting date, Easy Apply, plus optional full descriptions, apply links and company profiles. Filters for date, remote, job type, seniority and salary. No login, no browser. Pay only for results.

Pricing

from $4.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

Get Glassdoor job listings as clean JSON or CSV: search by keyword and location, filter by posting date, remote work, job type, seniority, minimum salary, Easy Apply and company rating, and optionally open every listing for the full description, apply link, geo coordinates and the employer's profile and ratings. The actor reads Glassdoor's mobile app data source, so it needs no login and no browser, returns up to 100 listings per request and includes Glassdoor's pay range and company rating on every row.

Built for recruiters and sourcing teams tracking openings by role and city, job boards and aggregators, labour-market analysts (pay ranges, posting volume by region), sales teams that use hiring as a buying signal, and candidates who want new postings delivered on a schedule.

What you get

One row per job listing. Rows are deduplicated across pages and keywords within a run.

FieldDescription
listing_id, urlGlassdoor listing id and a link that opens the listing
title, normalized_titleTitle as posted and Glassdoor's normalised title
company_name, company_id, company_logo_url, company_ratingEmployer with its Glassdoor id, logo and overall rating (1-5)
location, location_idJob location as shown on Glassdoor, e.g. San Francisco, CA or Remote
age_in_days, posted_dateHow long the job has been up and the posting date
pay_min, pay_median, pay_max, pay_currency, pay_period, salary_sourcePay range (employer-provided or Glassdoor estimate), currency (USD, GBP, ...) and period (annual, hourly)
easy_apply, is_sponsored, is_expiredApply on Glassdoor, paid placement, expired flag
industry, sectorEmployer's industry and sector
search_keyword, search_locationWhich search found the job
scraped_atUTC timestamp

With Fetch job details on, every row also gets:

FieldDescription
description_html, description_textThe full job description
job_types, is_remotefulltime, parttime, contract, temporary; work-from-home flag
apply_url, serp_urlGlassdoor's apply link (redirects to the employer's application) and search-page link
discover_date, posted_dateExact dates from the listing
latitude, longitude, city, state, countryGeocoded job location
company_website, company_headquarters, company_size, company_revenue, company_type, company_year_founded, company_ceoEmployer profile
company_rating_career_opportunities, company_rating_compensation_benefits, company_rating_culture_values, company_rating_senior_management, company_rating_work_life_balance, company_recommend_to_friend_pct, company_ceo_approval_pctEmployer ratings breakdown
company_overview_url, company_reviews_url, company_salaries_urlThe employer's Glassdoor pages

Use cases

  • Sourcing and recruiting. Pull every "data engineer" opening in Austin posted in the last 7 days with pay ranges and company ratings, and refresh the list daily.
  • Hiring as a sales signal. Companies posting many senior roles are growing: filter by seniority and keyword, join on company_id, and route accounts with new postings to sales.
  • Pay benchmarking. Compare pay_median for the same title across cities and countries (local currency is returned, e.g. GBP for London).
  • Job boards and aggregators. Keep a niche board fresh with full descriptions and apply links, deduplicated by listing_id.
  • Research. Posting volumes, remote share and salary transparency by role, region and industry over time.

Input

ParameterTypeDefaultDescription
keywordsarray–One search per keyword: job title, skill or company name.
locationstring–City (San Francisco, CA, Chicago), state or region (Texas, England, London), country (United Kingdom, Germany) or Remote. A region wins a name tie, so write New York, NY for the city. Empty = anywhere.
maxJobsinteger100Jobs per keyword, after deduplication.
fetchDetailsbooleanfalseOpen every listing for the detail fields above (one extra request per job).
postedWithinDaysenumany1, 3, 7, 14, 30
remoteOnlybooleanfalseWork-from-home jobs only.
jobTypeenumanyfulltime, parttime, contract, temporary
seniorityenumanyentrylevel, midseniorlevel, director, executive
minSalaryinteger0Minimum annual pay in the location's currency.
easyApplyOnlybooleanfalseOnly jobs that can be applied to on Glassdoor.
minCompanyRatingenumany1 to 4 stars.
sortByenumrelevancerelevance or newest.
proxyConfigurationobjectRESIDENTIALFallback only: the actor connects directly and switches to this proxy if Glassdoor refuses the connection.

Example input

{
"keywords": ["software engineer"],
"location": "San Francisco, CA",
"postedWithinDays": "30",
"maxJobs": 30,
"fetchDetails": true
}

Example output

{
"listing_id": 1010265191807,
"title": "Backend Software Engineer",
"normalized_title": "back end engineer",
"company_name": "Rise Technical Recruitment Limited",
"company_id": 778114,
"company_logo_url": "https://media.glassdoor.com/sql/778114/rise-technical-recruitment-squareLogo-1742983220582.png",
"company_rating": 3.9,
"location": "San Francisco, CA",
"location_id": 1147401,
"age_in_days": 18,
"posted_date": "2026-09-16",
"easy_apply": true,
"is_sponsored": true,
"is_expired": false,
"pay_currency": "USD",
"pay_period": "ANNUAL",
"pay_min": 145000.0,
"pay_median": 162500.0,
"pay_max": 180000.0,
"salary_source": "EMPLOYER_PROVIDED",
"industry": "Staffing & Subcontracting",
"sector": "Human Resources & Staffing",
"url": "https://www.glassdoor.com/job-listing/j?jl=1010265191807",
"search_keyword": "software engineer",
"search_location": "San Francisco, CA",
"scraped_at": "2026-10-05T01:54:30Z",
"description_text": "Backend Software Engineer\n\nSan Francisco, California (Hybrid)\n\n$145,000 - $180,000 + Equity + Healthcare + 401(k) + PTO\n\nAre you a Backend Software Engineer looking to take full ownership of production...",
"discover_date": "2026-09-16",
"job_types": ["fulltime"],
"is_remote": false,
"apply_url": "https://www.glassdoor.com/partner/jobListing.htm?pos=101&ao=1110586&tgt=APPLY_START&jobListingId=1010265191807&...",
"latitude": 37.775,
"longitude": -122.41833,
"city": "San Francisco, CA",
"state": "California",
"country": "United States",
"company_website": "https://www.risetechnical.co.uk",
"company_headquarters": "Bristol, United Kingdom",
"company_size": "51 to 200 Employees",
"company_type": "Company - Private",
"company_year_founded": 2005,
"company_ceo": "Ben McCarthy",
"company_rating_work_life_balance": 3.9,
"company_recommend_to_friend_pct": 0.74,
"company_reviews_url": "https://www.glassdoor.com/Reviews/Rise-Technical-Recruitment-Reviews-E778114.htm"
}

Speed

One request returns up to 100 listings, so a listings-only run of 500 jobs takes a few seconds. With details on, each job costs one extra request of about half a second: 100 jobs with full descriptions finish in about a minute.

Scheduling and integrations

Create an Apify schedule (hourly, daily or weekly), set sortBy to newest and postedWithinDays to 1 or 3, and connect a webhook or integration (Slack, Google Sheets, Make, Zapier, n8n). Results download as JSON, CSV, Excel or XML, or can be read through the Apify API; listing_id is stable, so deduplicating across runs is a single key.

Use with AI assistants

Call the actor from an agent through the Apify API or the Apify MCP server, for example: "find remote senior Python jobs posted this week paying at least $180,000 and summarise what the companies have in common". Pay ranges, ratings and the plain-text description arrive as separate fields, so the model can reason without parsing pages.

FAQ

Do I need a Glassdoor account? No. Everything returned is public on Glassdoor without logging in.

How many jobs can one search return? Glassdoor reports a total (for example 93,000 for "software engineer" anywhere) but, like the website, serves a ranked subset through its pages. Narrow searches with a location and a posting-date filter are the way to get complete coverage; broad searches work best with maxJobs of a few hundred per keyword.

Why are some pay fields empty? Glassdoor shows a pay range on most listings (employer-provided or estimated), but not on all of them. salary_source tells you which kind you got.

Where are the job types and remote flag? They come from the listing itself, so they are filled only when fetchDetails is on. Without details, location reads Remote for remote jobs and the remoteOnly filter works either way.

How are locations matched? The location is looked up in Glassdoor's own location index: an exact state, region or country name wins (Texas, England, London, Germany), otherwise the best matching city. If Glassdoor does not know the place, the run stops with a clear message rather than searching the wrong area. Write the city with its qualifier (New York, NY, Paris, France) when the name is also a region.

Does it need a proxy? Usually not. If Glassdoor refuses the connection, the actor switches to the configured Apify Proxy (RESIDENTIAL by default) and continues.

Is this legal? The actor collects publicly visible job listings and company data. You are responsible for using the data in line with Glassdoor's terms and the laws that apply to you.