Indeed Employer Intelligence — Reviews, Interviews & Dossier
Pricing
from $4.75 / 1,000 employer reviews
Indeed Employer Intelligence — Reviews, Interviews & Dossier
Scrape public Indeed reviews, interviews, and dossiers. Get ratings, review text, interview/profile data. Interview process-summary rows use literal "[process_summary]" in title. Input names, slugs, or URLs; no login. Free pricing: from $0.0049/event.
Pricing
from $4.75 / 1,000 employer reviews
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
a day ago
Last modified
Features
Share
Indeed Employer Reviews & Dossier
Extract employer reviews, interview Q&A and process stories, and company dossiers from Indeed /cmp/ pages, with no Indeed login. On the Free plan you pay $0.0049 per review-result, $0.0059 per interview-result and $0.05 per dossier-result; the Free plan is capped at 1 company, 5 reviews per run and reviews mode only. Requests use Apify's default RESIDENTIAL proxy.
- Extract full review bodies, five sub-ratings, employee status, reviewer context, votes, IDs and country.
- Benchmark employer reputation and culture ratings for HR and employer-brand research.
- Analyze interview questions, answers, difficulty, experience and hiring duration.
- Compare company descriptions, happiness, ratings, review counts, salary titles and similar companies.
- Run from your Apify account without an Indeed login.
countryCode(US,IN,JP,GB,DE,BR) only selects the proxy country; all requests go to indeed.com.
What you get
The Actor writes reviews, interviews and dossiers into one flat dataset. Each record has a record_type. Type-specific fields are null for other record types or when the source omits them; country is null for interview and dossier records. Interview process-summary rows set title to the literal [process_summary] instead of null.
| Field family | Fields | Type | Included data |
|---|---|---|---|
| Dataset identity | record_type, company_slug, company_name, country | string | Record type, resolved slug, company name and country code; country is null for interview and dossier records. |
| Review ratings | overall_rating, comp_benefits_rating, culture_values_rating, job_security_rating, management_rating, work_life_rating | integer | Overall and five category ratings; values are null for non-review records or when the source omits a rating. |
| Review content | title, text, job_title, location, submission_date | string | Headline, full body, reviewer details and date; a value is null when the source does not provide it. On interview process-summary rows title is the literal [process_summary]. |
| Employee status | current_employee | boolean | Current or former employee status; null when the source does not provide it. |
| Review metadata | helpful, unhelpful | integer | Vote counts; values are null when the source does not provide them. |
| Review identifiers | encrypted_review_id, review_uid, review_url | string | Review identifiers and relative URL; a value is null when the source does not provide it. |
| Interview Q&A | interview_question, interview_answer | string | Interview questions and answers; values are null outside interview records or when the source omits them. |
| Interview process | interview_difficulty, interview_experience, interview_duration, interview_process_summary | string | Difficulty, experience, hiring duration and summary; values are null outside process records or when the source omits them. Difficulty and experience are raw source tokens (for example MEDIUM, FAVORABLE), and interview_process_summary may be a stringified sliders JSON object rather than prose. |
| Dossier profile | dossier_description, dossier_website, dossier_headquarters, dossier_size, dossier_founded, dossier_industry | string | Company overview and profile information; values are null outside dossier records or when the source omits them. |
| Dossier metrics | dossier_happiness_score, dossier_overall_rating | number | Indeed aggregate happiness and rating; values are null outside dossier records or when the source omits them. |
| Dossier count | dossier_review_count | integer | Total review count; null outside dossier records or when the source omits it. |
| Dossier enrichment | dossier_salary_titles, dossier_similar_companies | string | Salary title aggregates and similar company data in JSON fields; values are null when the source provides no data. |
| Quality and timing | parse_confidence | number | Parse confidence from 0.0 to 1.0; present on every record. |
| Quality and timing | warnings | array of strings | Data-quality warnings; empty when none exist. |
| Quality and timing | scraped_at | ISO 8601 string | Scrape timestamp; present on every record. |
Sample output
Shortened sample: nonessential type-specific null fields are omitted; retained values are copied from one review record.
{"record_type": "review","company_slug": "Microsoft", "company_name": "Microsoft", "country": "US","encrypted_review_id": "9fc0ae7333b55f65","review_uid": "1k5ld3p8k21gl001","overall_rating": 5, "comp_benefits_rating": 5, "culture_values_rating": 5,"job_security_rating": 5, "management_rating": 5, "work_life_rating": 5,"title": "Great place for work","text": "Very enjoyable work environment. From the moment you enter the building, you are greeted by the security team and welcomed by coworkers throughout the workplace. The atmosphere is friendly, positive, and supportive, making it an enjoyable place to work and collaborate with others each day.","current_employee": true,"job_title": "Microsoft Security Manager, Reston VA", "location": "Reston, VA","submission_date": "October 23, 2026", "helpful": 0, "unhelpful": 0,"review_url": "/cmp/Microsoft/reviews/great-place-for-work?id=9fc0ae7333b55f65&uid=b33233137a15d8eadf4514e15f5945a9","parse_confidence": 1, "warnings": [],"scraped_at": "2026-10-31T08:05:57.881889+00:00"}
Pricing
This Actor uses pay-per-event billing. You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.
| Charge event | Billing unit | 1,000 events | 10,000 events |
|---|---|---|---|
review-result | One employer review with five sub-ratings and body; $0.0049 per event on Free | $4.90 on Free | $49 on Free |
interview-result | One interview Q&A or process record; $0.0059 per event on Free | $5.90 on Free | $59 on Free |
dossier-result | One company overview dossier; $0.05 per event on Free | $50 on Free | $500 on Free |
The Apify Free plan includes a $5 monthly platform usage credit, which covers 1,020 full review-result events at the Free-plan event price. A single Free-plan run is capped by maxReviews 5 (the 5-review run cap), so the 1,020 figure is a monthly credit total across runs, not one run.
How to use
- Enter company names, Indeed slugs or full Indeed company URLs in
companies. Names are resolved to slugs automatically. - Select
reviews,interviewsordossierinmodes. - Set
maxReviewsper company, or use0for all available reviews within Indeed's accessible history. - Set
countryCodetoUS,IN,JP,GB,DEorBR(defaultUS); it only selects the proxy country, and all requests go to indeed.com. Keep the default ApifyRESIDENTIALproxy configuration for reliable access. - Start the run with the Start button (or the API).
- Read results in the Output tab's dataset, where each row has a
record_type. - Schedule recurring runs through Apify Schedules; monthly is a reasonable starting point for employer benchmarking.
The example input below asks for two companies, three modes and maxReviews 50; on the Free plan it is cut to one company, maxReviews 5 and reviews mode only.
{"companies": ["Microsoft", "Google"],"modes": ["reviews", "interviews", "dossier"],"maxReviews": 50,"countryCode": "US","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"disableUsageStats": false}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
companies | Required list of company names, Indeed slugs or full Indeed company URLs; blank entries are removed. | No default; required |
modes | Selects reviews, interviews, dossier, or any combination. | ["reviews", "interviews", "dossier"] |
maxReviews | Maximum reviews per company. 0 means all available; accepted integers range from 0 to 4000. | 500 |
countryCode | Accepts US, IN, JP, GB, DE or BR; only selects the proxy country, all requests go to indeed.com. | US |
proxyConfiguration | Configures the proxy for Indeed pages. Recommended default: Apify RESIDENTIAL. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
disableUsageStats | Set to true to turn off the run summary described in Usage statistics. | false |
Limits and edge cases
| Condition | What the buyer sees | What to do |
|---|---|---|
| The run uses the Free plan. | The Free plan limits a run to 1 company, caps maxReviews at 5, and runs only reviews mode. | Use the Free-plan limits and select reviews. |
Indeed limits accessible review history to approximately 3,000–3,960 reviews per category; starting at 3980 wraps to page 0. | The Actor detects a repeated encrypted_review_id and stops. | Set maxReviews as needed, but do not expect more than Indeed makes accessible. |
maxReviews is 0. | The Actor requests all available reviews, subject to the Indeed ceiling. | Use 0 for the maximum available history. |
| A company name, slug or URL cannot be resolved. | The company is logged and skipped; other inputs continue. | Check the spelling or provide the Indeed slug or full /cmp/ URL. |
companies is empty after blank entries are removed. | The run succeeds with an empty dataset and writes {"error": "no_companies"} to the OUTPUT record in the default key-value store. | Provide at least one non-blank company. |
| A requested mode returns no source data. | That mode produces no records and logs that no data was found. | Check the company profile and try the relevant mode again. |
| A mode fetch raises an error. | The affected mode logs a warning and produces no records; earlier records remain and other modes are handled separately. The run can finish Succeeded with an empty or short dataset for that mode. | Use the recommended residential proxy and review the run log. Bare datacenter IPs can produce intermittent 403 errors on Indeed. |
| A run aborts, times out or fails after rows have been pushed. | Rows already pushed remain in the dataset; records not yet pushed are absent, so the dataset may be short. | Check the run status and rerun if you need the remaining records. |
| A mode's records have been normalized and pushed. | Those rows reach the dataset before later modes or companies are processed. | Review the dataset for rows already written when a run stops partway through. |
FAQ
How much does it cost to scrape Indeed employer reviews?
Prices per event are in the Pricing table above. For example, 1,000 x $0.0049 = $4.90 for review-result events on the Free plan.
Why is my run empty or not working?
Check the conditions in Limits and edge cases: empty or unresolved companies, no source data for a selected mode, and fetch errors can produce no records. Use a supported company input and the residential proxy configuration.
Is scraping public Indeed data legal or allowed?
The Actor collects public data from Indeed employer profile pages under /cmp/. Whether a use is legal or allowed depends on the buyer's use case, applicable law and source terms. Review Indeed's Terms of Service and relevant data-protection requirements before using the data.
Related actors
- Upwork Rate & Market Intelligence — related freelance skill-rate and market-intelligence data.
- Better Business Bureau Scraper — related business-directory company data.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.