Glassdoor Jobs Feed avatar

Glassdoor Jobs Feed

Pricing

$4.00 / 1,000 results

Go to Apify Store
Glassdoor Jobs Feed

Glassdoor Jobs Feed

Extract structured job listings from Glassdoor across 21 markets with salary data and built-in change tracking.

Pricing

$4.00 / 1,000 results

Rating

0.0

(0)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

🔍 What is Glassdoor Jobs Feed?

Glassdoor Jobs Feed extracts structured job listings from Glassdoor across 21 country domains — with structured salary data, company ratings, full descriptions, and built-in change tracking for recurring pipelines.

Glassdoor Jobs Feed

Glassdoor is one of the world's leading career platforms, combining job listings with company reviews, salary estimates, and interview insights. This actor turns Glassdoor's job search into a structured data feed — ready for analytics, recruiting pipelines, salary benchmarking, and AI-agent workflows.

✨ Why choose this actor?

FeatureGlassdoor Jobs FeedTypical alternatives
Structured salary (min/max/currency/period)Yes — on most listingsRaw text or missing
Country coverage21 marketsUsually 1–5
Incremental change trackingNEW, UPDATED, EXPIRED, REAPPEAREDUsually no
Search filters (job type, remote, posted days)YesSometimes
Compact mode for AI agentsYes — 12 core fieldsNo
Description truncationYes — descriptionMaxLengthNo
Company ratings on every listingYesRare
Deduplication across searchesAutomaticOften no

🚀 Quick start

Minimal input — returns up to 20 jobs with full detail enrichment:

{
"query": "software engineer",
"country": "US",
"location": "New York",
"maxResults": 20
}

With filters — only remote full-time jobs posted in the last 7 days:

{
"query": "python developer",
"country": "DE",
"location": "Berlin",
"jobType": "fulltime",
"remoteFilter": "remote",
"postedDays": 7,
"sort": "date"
}

With incremental tracking — only new and changed jobs since last run:

{
"query": "product manager",
"country": "UK",
"location": "London",
"incrementalMode": true,
"stateKey": "uk-pm-london",
"emitExpired": true,
"maxResults": 100
}

📊 Sample output

Each result includes title, company, location, structured salary, full description, employment type, posting date, company rating, and more:

{
"jobId": "a1b2c3d4e5f6...",
"title": "Software Engineer, Backend, Factory Software",
"company": "Tesla",
"companyUrl": "https://www.glassdoor.com/Overview/Working-at-Tesla-EI_IE...",
"location": "Fremont, CA",
"salaryText": "USD 140,000-210,000 YEAR",
"salaryMin": 140000,
"salaryMax": 210000,
"salaryCurrency": "USD",
"salaryType": "YEAR",
"employmentType": "FULL_TIME",
"postedDate": "2026-03-10T00:00:00",
"validThrough": "2026-07-20",
"canonicalUrl": "https://www.glassdoor.com/job-listing/software-engineer-tesla-JV_...",
"portalUrl": "https://www.glassdoor.com",
"companyRating": 3.5,
"companyIndustry": "Automotive",
"description": "As a Backend Software Engineer on the Factory Software team...",
"descriptionLength": 5259,
"locationCity": "Fremont",
"locationRegion": "California",
"locationCountry": "United States",
"isRemote": false,
"contentQuality": "full",
"detailFetched": true,
"scrapedAt": "2026-03-21T10:00:00.000Z"
}

⚙️ Input reference

FieldTypeDefaultDescription
querystring or string[]Search keywords. Use JSON array for multi-query. Required unless startUrls is provided.
countrystring"US"ISO alpha-2 country code. 21 markets: US, UK, CA, AU, IN, DE, FR, NL, BE, AT, CH, ES, IT, IE, BR, MX, AR, SG, HK, NZ, JP.
locationstring or string[]City, state, or region. Use JSON array for multi-location.
startUrlsstring[]Direct Glassdoor search or job detail URLs.
maxResultsinteger50Maximum total job listings to return (1–500).
maxPagesinteger5Maximum SERP pages per search source (1–30).

Filters

FieldTypeDefaultDescription
postedDaysintegerOnly jobs posted within N days. Valid: 1, 3, 7, 14.
jobTypestringEmployment type filter: fulltime, parttime, contract, temporary, internship.
remoteFilterstringRemote work filter: remote or hybrid.
radiusintegerSearch radius around location. Valid: 5, 10, 15, 25, 35, 50, 100.
sortstring"relevance"Sort order: relevance or date.

Enrichment

FieldTypeDefaultDescription
includeDetailsbooleantrueFetch each job's detail page for full description, structured salary, and company info.
includeCompanyProfilebooleanfalseFetch company overview pages for industry, headcount, and more.

Output format

FieldTypeDefaultDescription
compactModebooleanfalseOutput only 12 core fields. Ideal for AI agents and MCP workflows to reduce token usage.
descriptionMaxLengthinteger0Truncate descriptions to N characters. 0 = no truncation.

Incremental tracking

FieldTypeDefaultDescription
incrementalModebooleanfalseCompare against previous run state. Requires stateKey.
stateKeystringStable identifier for the tracked search universe (e.g. "us-software-nyc").
emitUnchangedbooleanfalseWhen incremental, also emit records that haven't changed.
emitExpiredbooleanfalseWhen incremental, also emit records no longer found.

📦 Output fields

Core job fields

FieldTypeDescription
jobIdstringUnique deterministic identifier
jobKeystringGlassdoor job listing ID
titlestringPosition title
companystringCompany name
companyUrlstringGlassdoor company profile URL
locationstringLocation string
canonicalUrlstringDirect URL to job detail page
portalUrlstringBase URL of the Glassdoor portal
sourceUrlstringSERP card URL

Location fields

FieldTypeDescription
locationCitystringParsed city — where available
locationRegionstringParsed state/region — where available
locationCountrystringCountry name — where available
postalCodestringPostal/ZIP code — where available
locationFormattedstringHuman-readable formatted location
latitudenumberJob location latitude — where available
longitudenumberJob location longitude — where available
isRemotebooleanWhether the position is remote

Salary fields

Glassdoor has significantly better salary coverage than most job platforms. Structured salary data is available on the majority of listings with detail enrichment enabled.

FieldTypeDescription
salaryTextstringRaw salary string (e.g. "USD 82,000-115,000 YEAR")
salaryMinnumberMinimum salary value
salaryMaxnumberMaximum salary value
salaryCurrencystringISO 4217 currency code
salaryTypestringPay period: YEAR, HOUR, MONTH

Employment & dates

FieldTypeDescription
employmentTypestringFULL_TIME, PART_TIME, CONTRACT, etc.
postedDatestringISO-8601 publication date
validThroughstringISO-8601 expiration date

Description

FieldTypeDescription
descriptionstringFull job description (plain text) — with detail enrichment
descriptionHtmlstringFull job description (raw HTML) — with detail enrichment
descriptionLengthintegerCharacter count of plain text description

Company

FieldTypeDescription
companyRatingnumberGlassdoor company rating (0–5 scale)
companyLogoUrlstringCompany logo URL
companyIndustrystringIndustry classification — where available
companyReviewsCountintegerNumber of company reviews — where available
extractedEmailsstring[]Email addresses found in job description — where available

Metadata

FieldTypeDescription
scrapedAtstringISO-8601 scrape timestamp
detailFetchedbooleanWhether detail page was fetched
contentQualitystring"full", "thin", or "serp_only"
isSponsoredbooleanSponsored listing flag
sourceDomainstringGlassdoor domain used
sourceCountrystringISO alpha-2 country code
searchQuerystringQuery that found this job

Incremental fields

Present on every record. Populated when incrementalMode is true, null otherwise.

FieldTypeDescription
changeTypestringNEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED
trackedHashstringContent hash for change detection
firstSeenAtstringISO-8601 timestamp of first observation
lastSeenAtstringISO-8601 timestamp of most recent observation
previousSeenAtstring or nullTimestamp of observation before last
expiredAtstring or nullTimestamp when last classified as EXPIRED
stateKeystringThe state key used

🤖 AI-agent and MCP usage

This actor is designed for use with AI agents, MCP servers, and LLM pipelines:

  • Compact mode reduces output to 12 core fields — minimizes token usage
  • Description truncation via descriptionMaxLength keeps responses within context window limits
  • Deterministic schema — all fields are always present (null when unavailable, never omitted)
  • Structured salary — parsed min/max/currency/period, ready for programmatic comparison
{
"query": "product manager",
"country": "US",
"compactMode": true,
"descriptionMaxLength": 500,
"maxResults": 50
}

🔄 Incremental mode

Track job posting changes across runs. Only new and changed records are emitted by default — unchanged jobs are skipped.

Change types

TypeMeaning
NEWJob not seen in previous run
UPDATEDJob exists but content changed
UNCHANGEDSame content (only emitted if emitUnchanged is true)
EXPIREDWas in previous state but not found in current run (only if emitExpired is true)
REAPPEAREDWas previously expired but found again

💡 Use cases

Salary benchmarking

Collect structured salary data across roles, markets, and companies. Glassdoor's salary coverage is among the highest of any job platform — most listings include employer-provided ranges parsed into min/max/currency/period.

Job market intelligence

Monitor hiring trends by keyword, location, or industry. Use incremental mode to track how the job market evolves over time — which roles are growing, which are shrinking.

Recruitment and lead generation

Extract hiring companies with ratings, industry, and contact details for B2B outreach. Filter by job type, remote preference, and posting age to find active hiring signals.

Competitor monitoring

Track how a company's job postings change over time with incremental mode. Detect new roles, removed positions, and salary adjustments automatically.

📖 How to scrape Glassdoor job listings

  1. Go to Glassdoor Jobs Feed on Apify
  2. Click "Try for free" and enter your search query and location
  3. Choose your country from 21 available markets
  4. Set maxResults to control how many jobs to extract
  5. Click "Start" — results appear in the Output tab as structured JSON
  6. Download as JSON, CSV, or Excel — or connect via API for automated pipelines

⚠️ Known limitations

  • Detail pages require rendering — detail enrichment is slower than SERP-only mode. Set includeDetails to false for faster results when full descriptions are not needed.
  • Company profiles — separate company overview pages are not currently accessible. Company data (rating, industry, logo) comes from job detail pages instead — this covers the most useful fields.
  • Rate limiting — Glassdoor may throttle requests at high volume. The actor handles this gracefully but results may be incomplete for very large batches.
  • Deduplication — results are deduplicated by job key across all search sources within a single run.

💰 How much does it cost to scrape Glassdoor?

$0.004 per emitted result ($4.00 per 1,000 jobs).

ScenarioResultsCost
Quick search20 jobs$0.08
Market scan100 jobs$0.40
Large batch500 jobs$2.00
Daily monitor (incremental)~10 new/day~$0.04/day

In incremental mode, unchanged jobs are not emitted by default — so you only pay for new and changed records. A daily monitor that finds 10 new jobs costs about $1.20/month.

❓ FAQ

Does Glassdoor have an API?

Glassdoor discontinued its public API. This actor provides a structured alternative — extracting the same data that's visible on Glassdoor's website into clean JSON.

Can I scrape Glassdoor salary data?

Yes. This actor extracts structured salary data (minimum, maximum, currency, and pay period) from Glassdoor job listings. Salary coverage on Glassdoor is significantly higher than on most other job platforms.

How many countries does this support?

21 Glassdoor country domains: US, UK, Canada, Australia, India, Germany, France, Netherlands, Belgium, Austria, Switzerland, Spain, Italy, Ireland, Brazil, Mexico, Argentina, Singapore, Hong Kong, New Zealand, and Japan.

Can I track new job postings automatically?

Yes. Enable incrementalMode with a stateKey and schedule the actor to run daily. It will only emit new, updated, or expired jobs — unchanged listings are skipped.