Glassdoor Reviews Change Insights - What Changed for Employees avatar

Glassdoor Reviews Change Insights - What Changed for Employees

Pricing

from $15.60 / 1,000 company × period compareds

Go to Apify Store
Glassdoor Reviews Change Insights - What Changed for Employees

Glassdoor Reviews Change Insights - What Changed for Employees

Glassdoor reviews you already scraped, compared period by period: rating change per company and month and the complaint topics that rose (pay, layoffs, management…) with quotes. AI explanations, summaries on paid plans. 1 company, 24 months, 600 reviews, 20 AI explanations: about $2.42 on BRONZE.

Pricing

from $15.60 / 1,000 company × period compareds

Rating

0.0

(0)

Developer

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn the Glassdoor reviews you already scraped into a period-by-period change report. For each company and month (or quarter) you get one row: the average rating against the period before, the share of reviews complaining about each topic — pay, benefits, management, culture, work-life balance, workload, layoffs and job security, remote and office policy, career growth, communication, processes — and how it moved, the complaints that rose with the review sentences that show them (and their review IDs), the ones that eased, the sample size and a low-sample flag. On paid plans an AI explanation says what changed for employees and why, every claim resting on review sentences quoted word for word and checked by code, and a summary row per company shows the whole trend.

Feed it the dataset of a Glassdoor reviews scraper run as it is — the fields of memo23, kaix, getdataforme, automation-lab and scrapifier Glassdoor scrapers are recognised by themselves — or Indeed / Comparably reviews, a CSV or JSON export, or reviews you paste. Nothing is scraped by this Actor.

What a default run costs: 1 company, 24 months, 600 reviews, AI on (20 months with enough reviews) ≈ $2.42 on the BRONZE plan ($0.004 run start + 600 × $0.0016 review rows + 24 × $0.024 period rows + 20 × $0.04 AI explanations + $0.08 company summary). With the rules only (aiExplanations: false, companySummaries: false): $1.54. The run-start fee covers reading the first 1,000 rows of your sources; every further 1,000 rows read is one rows-read event ($0.002 on BRONZE). Your run's maximum charge is always respected, and it buys the company × period rows first.

Free plan and paid plans

Free plan (preview)Paid Apify plan (Starter and up)
Company × period change rows (rating, sub-ratings, topic shares and their change, rising and easing complaints with quotes)one teaser: the verdict of one company × period of your input and one quote — every number and every other period lockedevery period, up to maxPeriodsPerCompany per company (default 24, up to 120)
Review rows (topics, evidence sentences)lockedevery review, up to maxReviews (default 5,000, 50,000 a run)
AI explanation of each change (what changed and why, with quotes)locked — a free run asks no modelon by default, for up to aiMaxPeriods periods (1,000 a run)
Company summary rows (rating first to last, best and worst period, complaint trends, top rising topics, quotes, AI headlines)lockedone per company with 2+ periods
What you see about your inputin the free-plan-preview row: how many companies, company × periods and reviews your input holds, how many periods have a comparison and enough reviews for a verdict, how many rows, AI explanations and summaries a paid run with your settings would give, and its price estimate (BRONZE) — with what it rests on (rows read, partial or whole)—
Readingup to 5,000 source rowsup to maxItemsPerSource a source, maxReviews reviews
Pricerun-started (and rows-read past the first 1,000 rows) — the teaser and the preview are not chargedall six events, with plan discounts

The full paid output — every field — is in the fixed example below and in the example field of the free-plan-preview row.

Plan discounts on every event:

Apify planDiscount
FREElist price
BRONZE20%
SILVER35%
GOLD, PLATINUM, DIAMOND48%

Rules and AI on the same period (fixed example)

Eight made-up reviews of a made-up company, four in August and four in September 2026. The rules part is what this Actor's rules return for them. The AI part is the measured model answer for these reviews (claude-haiku-5-5, 2026-10-16), checked by our code like every paid answer.

  • rules (September vs August): average rating 2.25 (before 4, change −1.75), verdict worse; rising complaint Layoffs & job security: 75% of reviews (before 0%, +75 points, new), quotes "Layoffs in September and nobody knows who is next.", "After the reorg the workload doubled and there is no job security.", "More layoffs announced, management does not communicate."; easing: Career growth & training (50% → 0%).
  • AI: "Layoffs, a heavier workload and a return-to-office mandate now dominate employee reviews, where earlier reviews praised pay, flexibility and career prospects." — three changes for the worse: layoffs (quotes "More layoffs announced, management does not communicate.", "Layoffs in September and nobody knows who is next."), workload ("After the reorg the workload doubled and there is no job security.") and remote ("Return to office mandate with two weeks notice."), each from the current period.

The same example is in the example field of every free-plan-preview row.

What it is for

  • HR and people analytics: see month by month what employees started to complain about, with the sentences to quote in a report.
  • Employer-brand and recruiting teams: catch a turn for the worse (a reorg, a return-to-office mandate, layoffs) as soon as it shows in reviews.
  • Competitive and investment research: compare several companies with the same rows and summaries.

It describes workplaces, never people: it does not identify reviewers, read job titles, places or names, or predict who will leave.

How to use it

  1. Run a Glassdoor (or Indeed) reviews scraper, or export reviews as CSV/JSON.
  2. Put the dataset ID in datasetIds (or the file address in csvUrls/jsonUrls, or paste reviews into reviews).
  3. Choose period (month or quarter) and compareTo (the period before, or the same period a year before). Optionally keep only some companies.
  4. Run. Filter the dataset by recordType: period rows are the change report, review rows the classified reviews, company-summary rows the trend (a free run gives one period-preview row and the free-plan-preview row).
  5. If a run stopped at its maximum charge, its charge-limit-reached row gives nextStartAtPeriod: run the same input with startAtPeriod set to it for the rest.

Input

FieldDefaultWhat it does
datasetIds—Datasets of review scraper runs in your account (read with this run's token)
csvUrls, jsonUrls—Public CSV / JSON / JSONL files, up to 20 MB each
reviews12 made-up reviewsReviews pasted as JSON objects in a scraper's shape (up to 50,000 a run; more are left out with an input-limit notice)
companiesallKeep only these companies (letter case and spacing aside)
defaultCompany—Company of rows that do not name one (a one-company export)
periodmonthmonth or quarter
compareTopreviousprevious (the period before; when it has no review, the latest earlier one — the row says which) or year-ago
minReviews5Fewer reviews than this in a period (or its comparison) → lowSample: true (still a row, no AI explanation)
minShareChange10Percentage points a complaint share must grow to count as rising (and at least 2 reviews)
maxPeriodsPerCompany24Newest periods per company that become rows
startAtPeriod0Skip the first this many company × periods of the run's list (paid plans) — to go on after a run that stopped at its maximum charge
maxReviews5,000Reviews read in one run (paid plans; up to 50,000)
aiExplanationstrueAI explanation of each change (paid plans)
aiMaxPeriods200At most this many AI explanations a run (up to 1,000)
companySummariestrueOne summary row per company (paid plans)
maxItemsPerSource20,000Rows read from one dataset or file (past the first 1,000 rows of the run, every 1,000 read is one rows-read)

Fields recognised by themselves: company employer.shortName, employer.name, employerName, employer_short_name, companyName, company; date reviewDateTime, postedAt, review_date_time, reviewDate ("Mar 15, 2026"), date, datePublished (ISO, "March 15, 2026", "15 Mar 2026", "2026/03/15", "03/15/2026", Unix time); rating ratingOverall, ratings.overall, rating_overall, rating; sub-ratings (work-life balance, culture and values, senior leadership, compensation and benefits, career opportunities, diversity and inclusion) in all those spellings; recommendation; pros, cons, summary/headline; one-text reviews text, reviewText, review; reviewId/review_id; review address. A CSV header in dotted form (employer.shortName, content.pros, ratings.overall, as a flattened export writes it) is read as that field. Job, salary and notice rows are left out.

Output

Every row has a recordType.

period — one company and period: company, period (2026-09 or 2026-Q3), periodStart, periodEnd, comparedTo, comparedToBasis (previous-period, latest-earlier-period, same-period-last-year), reviews, previousReviews, lowSample, verdict (worse, better, mixed, steady, baseline when there is nothing to compare with), rating (average, previousAverage, change), subRatings, recommendShare, topics[] (complaint and praise counts and shares per topic, before and after), complaintsRising[] (topic, label, share, previousShare, changePoints, reviews, new, evidence[] with quote, reviewId, reviewUrl), complaintsEasing[], praiseFalling[], ai (paid: status: "explained", headline, changes[] with topic, direction, explanation, quotes[]; or why there is none), billedEvents.

review — one review: company, period, reviewedAt, rating, subRatings, recommend, headline, pros, cons, text, topics (complaints[], praise[]), evidence[] (topic, side, field, quote, start, end — the quote is the review's own text at that place), reviewId, reviewUrl, billedEvents.

period-preview (free plan) — one company and period: company, period, comparedTo, reviews, previousReviews, lowSample, verdict and one evidence quote (topic, quote, reviewId); every other field is { locked: true, paid: "…" } with what a paid run gives there (and how many: rising complaint topics, review rows…). Not charged.

company-summary (paid) — company, periods, firstPeriod, lastPeriod, reviews, lowSamplePeriods, verdicts, rating (first, last, change, best, worst), complaintTrends[] (risingPeriods, firstShare, lastShare, change, persistent), topRising, quotes, aiHeadlines.

Notice rows (noticeCode, message) and one limits row (the run's numbers) are messages, never charged.

Shares are percentages of a period's reviews, counted with an English word list: they are rule estimates, not probabilities. Reviews in other languages raise fewer topics (the rating change is still exact).

AI explanation (optional, paid plans)

For each period with a comparison and at least minReviews reviews on both sides, the model (claude-haiku-5-5, Anthropic) gets the rule numbers and up to 12 reviews of the period and 6 of the one before (pros, cons, headline — with e-mail addresses and phone numbers removed; never job titles, places, authors or employer replies). Its answer is used only when every quote is in the review it names, letter for letter, a change for the worse quotes a review of the current period, and every number it writes is in the data. Anything else is thrown away and not charged. When AI is on, review texts are sent to Anthropic's API (USA). Turn it off with aiExplanations: false.

Measured before release (2026-10-16, 24 periods: 20 of a public Glassdoor export of two companies, 4 of made-up Korean reviews): 23 answers passed the checks (95.8%), 2 of them "no clear change"; one Korean answer was thrown away for its shape; no refusal. Explanations that fail are not charged, so an AI estimate is an upper bound.

Pricing

Pay per event (list price = FREE plan; plan discounts above):

EventWhat it isList priceBRONZE
run-startedonce per run with something to read, charged before reading; covers the first 1,000 source rows$0.005$0.004
rows-readevery further 1,000 dataset or file rows read (also rows that are not reviews or not of your companies; a file counts one row per 2,000 bytes if that is more)$0.0025$0.002
review-classifiedone review row with its topics (also when none is found)$0.002$0.0016
period-comparedone company × period change row (also a baseline or low-sample one)$0.03$0.024
change-explainedone AI explanation that passed the checks (paid plans)$0.05$0.04
company-summaryone company summary row (paid plans)$0.10$0.08

Not in it: your Apify plan and the runs of the scrapers that made your data. The maximum charge buys the company × period rows first (with their AI explanations from what is left after every period row), then the company summaries, then the review rows; a paid run whose maximum charge does not pay for the run-start fee and one comparison reads nothing and charges nothing, and the reading stops before it would eat the money of the comparisons. Results are delivered first and charged after, and a row is never charged twice. A restarted run first checks the platform's own charge count against the rows it already delivered; if some of them are not shown as charged, it does not charge them again and stops there. The run-start fee and the rows-read charges of a restarted run are never charged a second time: what the run's record lists from before the restart and the count does not show yet is counted against your maximum charge as spent, and reading does not go past what the count confirms (run the same input again as a new run for the rest). If a charge call fails, nothing more is delivered until the platform's own count shows it went through; if it does not show it, that charge is not made again and the run stops. Two runs started at the same time on the same input each deliver and each charge.

Limits and good to know

  • 50 datasets and files a run; 20 MB a file; 50,000 reviews a run (paid).
  • A free run reads up to 5,000 source rows and shows one teaser (a verdict and one quote); the free-plan-preview row says what a paid run would give and cost. When the free run did not read your input whole, the estimate is for the part it read and says so (basis.isPartial), with a rules-only floor for the whole input.
  • lowSample periods are compared and charged (the comparison is the product) but get no AI explanation.
  • CSV files are read by the CSV rules (RFC 4180 quotes); the delimiter (, ; tab |) is the one most of the first 50 rows agree with, a file with none is read as one column, .tsv addresses are read as tab-separated. Empty cells at the end of a row are ignored and a shorter row gets empty cells. A row with more cells than the header row is left out, not charged, with a source-parse-error notice (rowsSkipped, firstLine). At a row that is not valid CSV (a quote that is never closed, or text right after a closing quote) reading of that file stops: the rows before it are read; from the line it starts on (notReadFromLine, with restNotRead: true; that source's readCut is "csv-errors") nothing is read — not tried, not found invalid — and nothing is charged, its bytes included. Fix the quotes in that row and run again for the rest.

Responsibility

Unofficial tool, not affiliated with, endorsed by or sponsored by Glassdoor, Indeed, Comparably or any site the reviews come from. It analyses only the reviews you supply and sends no messages. You are responsible for having the right to process these reviews (including any personal data in them) and for complying with the law and the terms of the sites they come from; you are the data controller for this output. Topics, shares and verdicts are automated estimates about a workplace, not facts about any person; nothing here identifies or rates a reviewer.