Glassdoor Jobs Scraper | $0.80/1K | Salary & Company Ratings avatar

Glassdoor Jobs Scraper | $0.80/1K | Salary & Company Ratings

Pricing

from $0.80 / 1,000 job extracteds

Go to Apify Store
Glassdoor Jobs Scraper | $0.80/1K | Salary & Company Ratings

Glassdoor Jobs Scraper | $0.80/1K | Salary & Company Ratings

Collect bounded Glassdoor job shortlists with listing links, available salary and employer fields, title/location filters and diagnostics. Partial source coverage; verify original listings.

Pricing

from $0.80 / 1,000 job extracteds

Rating

0.0

(0)

Developer

Apivault Labs

Apivault Labs

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

4 days ago

Last modified

Share

Glassdoor Jobs Scraper — Job Shortlists, Salary & Employer Context

Turn Glassdoor search cards into an exportable shortlist for recruiting research, employer comparisons and job discovery. Each delivered row has a Glassdoor listing ID and link, plus available title, employer, location, salary text, rating and description snippet.

Limited release: search-card shortlists. Current checks return real source cards with listing links and available employer, salary and rating fields. Use title/location filters to require literal matches in extracted text. Availability, remote eligibility and source facts still need verification at each original listing. Dates and employment types may be absent; optional detail enrichment can fail while preserving cards and reporting PARTIAL. Source failures without valid cards produce FAILED with diagnostics and zero job-result events. The Actor Start fee and applicable platform usage still apply.

What this Actor helps you do

TaskBenefit
Discover roles to reviewBuild a shortlist with original links to verify availability and apply.
Compare hiring employersSee company names, available ratings and open roles; optionally keep one job per company.
Review advertised compensationCompare source salary text for similar roles and locations, separating employer pay from Glassdoor estimates.
Automate hiring researchExport JSON, CSV or Excel, or pass the dataset to an agent for a cited shortlist. Compare separate runs yourself to track changes.

An open role is a hiring signal, not proof of spending intent. This Actor returns search cards, not employee reviews, interview experiences, contacts or salary distributions. A snippet is not a verified full description. Missing salary or rating remains null.

First run

Start with one page and a small result limit:

{
"keywords": "software engineer",
"location": "Remote",
"maxPages": 1,
"maxResults": 20,
"enrichJobDetails": false,
"timeout": 120
}

For a specific city, paste the full search page from www.glassdoor.com into Glassdoor search URL. It overrides keywords and location. Only HTTPS /Job/ search pages are accepted, not listing-detail URLs.

Keyword search resolves Remote and New York explicitly. For other locations provide locationId and locationType from the Glassdoor search URL, or paste that URL. Unresolved city names are rejected instead of silently collecting nationwide jobs. Source searches can still include promoted or nearby listings: verify the returned location before calling a role remote or city-specific.

Input settings

FieldPurpose
keywordsRole or terms; required unless searchUrl is provided.
locationRemote, New York, or a location paired with an explicit ID.
searchUrlFull Glassdoor.com search URL; preserves source location and filters.
locationId, locationTypeSource location scope: C city, S state/special location, N country, M metro.
maxPages1–15 requested pages; default 1. Repeated/inaccessible pages are reported.
maxResults1–500 delivered jobs; default 50. Source availability and budget may reduce this.
deduplicateCompaniesKeep the first delivered job per named company in page order; default false.
extractTitle, extractCompany, extractLocation, extractSalary, extractRating, extractJobType, extractDate, extractDescriptionControl output fields. Identity fields remain read internally even when hidden in output.
maxConcurrency1–5 page extractions, default 2. Page one is checked before later pages.
timeout30–300 seconds per page, default 120; platform deadline also applies.
enrichJobDetailsDefault true. Visit listing pages to fill missing requested fields before filtering. Stops after the first source error.
maxDetailPages0–100 detail requests, default 20. Each has at most 60 seconds; the platform deadline can stop earlier. Extra extraction adds time and applicable usage.

Build a focused shortlist

All shortlist filters run before paid job delivery. Rejected jobs create no job-result events; the start fee and applicable platform usage remain. These are local filters on returned cards, not promises about Glassdoor's entire market or inferred remote eligibility.

SettingHow it selects jobs
includeTitleKeywords, excludeTitleKeywordsAny included phrase can match a title; any excluded phrase removes it.
includeCompanies, excludeCompaniesExact employer names, ignoring case; a subsidiary with a different name does not match automatically.
locationKeywordsAny phrase must occur in the returned location text. Use remote to require that literal location text, then verify the original listing.
jobTypesExact source employment-type labels, ignoring case. Missing labels do not pass.
minCompanyRatingRequire a reported rating from this value to 5. Missing ratings do not pass, including with threshold 0.
requireSalaryRequire nonempty source salary text.
salarySourceKeep any label, only explicit employer-provided pay, or only explicit Glassdoor estimates. Unspecified labels do not pass a specific choice.
sortByrelevance preserves page/card order; rating_desc places missing ratings last; company_asc orders employer names.

Phrase lists accept up to 20 entries of 1–100 characters, with Unicode normalization and case-insensitive matching. Filters inspect needed fields even when you hide those fields in delivered rows.

{
"keywords": "software engineer",
"location": "Remote",
"maxPages": 2,
"maxResults": 20,
"includeTitleKeywords": ["engineer", "developer"],
"excludeTitleKeywords": ["intern", "automation"],
"minCompanyRating": 4,
"requireSalary": true,
"salarySource": "employer_provided",
"sortBy": "rating_desc"
}

This example selects cards with qualifying source text and ratings; it does not guarantee 20 available roles. Add locationKeywords: ["remote"] only when you want to require that word in the returned location. Salary text is not converted into a numeric salary filter because pay units, currencies and labels can differ.

Requested pages are collected before ranking and applying maxResults. A fully filtered first page does not stop the next page. Sorting can require more page extraction than a small first-page sample, increasing time and applicable usage. Optional company deduplication runs after sorting, so a rating-sorted employer shortlist retains the highest-rated qualifying card first. Stable ties preserve source order.

Read the results correctly

Missing employment type, posting date, salary or rating triggers a detail-page request when enrichment is enabled. Only one result with the same listing ID is accepted; existing nonempty search-card values are preserved. A field absent from both responses stays null. Detail extraction does not independently verify every job fact or replace a nonempty snippet with a full description. A detail source failure preserves the search cards and produces PARTIAL; an exhausted detail limit/deadline also reports incomplete enrichment. Job filters run after this step, including filters on hidden output fields.

SUMMARY.fieldCompletenessBeforeEnrichment and fieldCompletenessAfterEnrichment count filled/missing requested fields across collected cards. fieldCompleteness covers only delivered rows; detailEnrichment reports attempts, matched listing IDs, filled fields and the stop reason. The historical 30-row audit found employment type and date empty in every row, salary in 29 and rating in 19. New detail enrichment passes local tests, but successful live enrichment remains unverified while the provider cannot read Glassdoor.

Open Jobs for the Dataset, Search summary for SUMMARY, and Page diagnostics for ERRORS. Jobs deduplicate by listing ID: distinct listings with the same title/company remain distinct. Company deduplication is optional.

Rows include jobId, jobUrl, searchPage, searchUrl, observedAt, source: "glassdoor", provider: "thunderbit_public_tools", jobDetailsVerified: false. Optional fields retain jobTitle, companyName, location, salaryEstimate, companyRating, jobType, postedDate, description. Rating is numeric when valid, missing fields are null. salarySource distinguishes explicit employer-provided and Glassdoor-estimate labels; unlabeled salary stays unspecified. Salary text is not annualized.

observedAt is extraction time, not posting date. postedDate remains source text. The extraction provider may omit or misread fields; a listing ID/link check does not independently verify every detail.

SUMMARY statusMeaning
COMPLETEDWork completed with valid cards. coverageComplete remains false: a source-limited sample, not the entire market.
PARTIALCards delivered, with failed, invalid or repeated pages in ERRORS.
FAILEDNo verifiable cards or source failure. Empty Dataset does not prove no matching vacancies.
INVALID_INPUTRejected before source extraction.
NO_MATCHESValid source cards were collected, but all were removed by your explicit filters. This differs from an unavailable source and does not prove there are no matching jobs elsewhere.
CHARGE_LIMIT_REACHEDSpending cap stopped delivery; earlier rows remain available.

resultLimitReached marks the requested result cap. pages reports attempted pages, delivered rows, rejected cards and duplicates. validJobsBeforeFilters, filteredOutCount, filterReasons, companyDuplicateCount and eligibleJobsBeforeLimit explain the shortlist. Each rejected job contributes its first failed criterion to filterReasons. employers groups delivered jobs by employer, with job counts, available salary counts, locations and listing IDs; it is empty when company output is disabled. Field-availability counts describe extracted values, not total market coverage. Error rows are never inserted as paid jobs. No automatic historical monitor or cross-run deduplication is included.

MCP and AI agents

Connect Apify's hosted MCP server using your Apify token:

https://mcp.apify.com/?tools=fetch-actor-details,call-actor,get-dataset-items,get-key-value-store-record

Use fetch-actor-details for apivault_labs/glassdoor-jobs-scraper to read its current schema, then pass the input to call-actor. This documented on-demand MCP workflow avoids relying on a stale separately loaded Actor tool schema. During this release, the static Actor tool returned old fields while fetch-actor-details returned the new schema. No Glassdoor login or separate customer-supplied extraction-service key is needed; Apify authentication and billing apply.

Example call-actor arguments:

{
"actor": "apivault_labs/glassdoor-jobs-scraper",
"input": {
"keywords": "software engineer",
"location": "Remote",
"maxPages": 1,
"maxResults": 5,
"minCompanyRating": 4,
"requireSalary": true,
"sortBy": "rating_desc"
},
"waitSecs": 0,
"callOptions": {"build": "latest", "memory": 256, "timeout": 180, "maxTotalChargeUsd": 0.03}
}

Adjust the spending cap to your intended work; it caps billed events, not page extraction. Read the returned run and storage IDs to inspect completion and diagnostics.

Agent instructions:

  1. Use this tool for Glassdoor job listings with salary and employer-rating context. Explain the limited search-card coverage before an unattended or paid workflow; do not assume source availability.
  2. Convert the request into a role and explicit location scope or supplied search URL. Start with maxPages: 1, maxResults: 20. Map requested exclusions, employer names, rating and salary preferences to the shortlist filters above; do not invent location IDs or numeric salary filters. Missing values do not meet a required threshold. Inspect filter reasons if the shortlist is empty.
  3. Wait for completion, then read the Dataset and SUMMARY/ERRORS from the returned storage IDs. Platform SUCCEEDED alone does not prove complete coverage.
  4. Present original jobUrl, employer, actual location and available salary/rating. Preserve missing values and distinguish estimated from employer pay. Do not invent annual salaries, remote eligibility, dates, contacts or full descriptions.
  5. For FAILED, report the source error and avoid claiming zero vacancies. For PARTIAL, describe failed/repeated pages and use delivered cards only. Do not label the sample exhaustive or infer hiring growth from one run.

Example request: “Find a small shortlist of software engineering roles on Glassdoor, with salary text and employer ratings where available.” Run the one-page input above, inspect diagnostics, then cite listing links. Connecting MCP exposes the tool; it does not guarantee automatic tool selection.

API and pricing

Run apivault_labs~glassdoor-jobs-scraper through the Apify API. Read /v2/datasets/{defaultDatasetId}/items, /v2/key-value-stores/{defaultKeyValueStoreId}/records/SUMMARY and ERRORS after completion. Keep tokens in client credentials, outside copied inputs and committed files.

Current events: $0.0008 per delivered job ($0.80 / 1,000) plus $0.00005 Actor Start (one event per GB, minimum one). Failed pages, invalid cards and duplicates create no job-result events. A spending cap can stop delivery. Check effective billing in the Actor Pricing tab.

User-paid platform usage has been active since 18 October 2026 at 19:32:37 UTC and is additional to event fees. Rates and the activation record were preserved.

Source availability

The Actor uses a third-party page extraction provider. Glassdoor restrictions, login walls, provider availability and markup changes can prevent extraction. Direct HTTP returned 403 in the historical 6 October audit. Current provider checks establish bounded search-card collection only; they do not establish full catalog coverage, independently verified location eligibility, active vacancies or reliable detail enrichment. Unavailable data is never replaced with demo jobs.

n8n and developer integrations

Use this Actor in your automation or application with the existing community integrations below. An Apify account and API token are required; Actor and platform charges follow the current pricing.

  • n8n community node: n8n-nodes-apivault-glassdoor-jobs. Install package name n8n-nodes-apivault-glassdoor-jobs in a self-hosted n8n instance that permits community packages.

These are community packages. Publication on npm does not establish n8n verification or availability in n8n Cloud. Review the linked package README for supported inputs and setup.

Shared collection deadline

runBudgetSecs (default 160, range 30–600) bounds search-page and optional detail waits together; the earlier platform deadline also applies. Container startup and final storage writes add overhead. Completed source cards are kept when another page times out, then normalized and filtered before delivery; missing fields remain unknown. Source timeout with no verified cards is FAILED with no result events. Start and platform charges can still apply. This timeout repair does not establish complete directory coverage. Check source diagnostics, literal filter matches and missing fields on each run.