# Indeed Company Reviews

> Indeed Company Reviews is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Fetches paginated employee reviews for a company on Indeed, including overall rating, five category ratings, star distribution, and review topics.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-indeed-data/company-reviews?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-indeed-company-reviews-85719f5c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gBWcIX_WYCk10Kgnonr_o

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-indeed-company-reviews-85719f5c
```

Example prompt: Pull up the Indeed employee reviews for Lutron Electronics — show me the overall rating, all five category ratings, and the first page of reviews sorted by helpfulness.

## When to prefer this

Choose this endpoint when you need structured Indeed employee review data — ratings, category breakdowns, star distributions, and paginated review text — directly from a company's Indeed /cmp page. It is especially useful when you already have a job's job_indeed_company_page_url and want to jump straight to employer reviews. It has no sign-in wall for deeper pages and supports country, location, topic, and full-text filtering that Indeed exposes natively.

## Known failure modes

- Unknown company slug returns a 404 error
- Free-text company name that cannot be resolved returns an error after one extra lookup request
- topic value outside the allowed enum is rejected with a 400
- Requesting a page number past the last page returns an empty reviews array with a page_past_last flag
- Rate limiting or proxy failures may return non-200 responses in rare cases
- location filter without a country code is silently ignored by Indeed

## How this service works

Employee reviews for one company, with its overall rating, the five category ratings
and the 1-5 star distribution.

Pass a job's `job_indeed_company_page_url` straight through as `company` to go from a
job to its employer's reviews in one hop.

**Transport.** The same one the job endpoints use - `curl_cffi` with Chrome
impersonation over the datacenter proxy ladder, anonymous throughout. Burn-tested
2026-09-11: 20 sequential requests across 10 companies and 3 page
offsets returned 20/20 HTTP 200 with parsed reviews, median 2.86 s (min 1.74 s,
max 5.79 s). Unlike Indeed's job SERP, this surface has **no page-2 sign-in wall** -
`start=240` was verified to return genuine page 13 anonymously.

**Envelope.** `data` is an OBJECT: company identity and aggregates alongside a
`reviews` array, mirroring Real-Time Amazon Data's `/product-reviews`.

**Two review counts, and they differ.** Indeed's default view is scoped to one country.
`company_review_count` is every review the company has; `company_filtered_review_count`
is how many the current filters can page through. Pass `country=ALL` to make them equal.

**Paging past the end.** Indeed silently serves **page 1 again** for a `start` well past
the last page (verified: `start=300`, `500`, `1000` all returned page 1's exact review
ids on a 260-review company). Those rows are detected via the page number Indeed echoes
and **discarded** - you get an empty `reviews` array and `parameters.page_past_last:
true`.

**Billing.** `Requests` counts one per upstream reviews page of 20, plus one more when
`company` was a free-text name that had to be resolved to a slug.


## Output

Returns a structured object containing company identity fields (name, slug, logo, header image), aggregate ratings (overall, five categories, happiness score and grade), star distribution (1–5), topic-level review counts and ratings, top pros and cons, and a paginated array of up to 20 individual reviews each with title, body text, star rating, category ratings, job title, location, employment status, posted date, helpful/unhelpful counts, and review URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "company"
 ],
 "properties": {
  "page": {
   "type": "integer",
   "default": 1,
   "maximum": 100,
   "minimum": 1,
   "description": "1-based page number. 20 reviews per page. Values above 100 are clamped to 100."
  },
  "sort": {
   "enum": [
    "relevance",
    "helpfulness",
    "rating_desc",
    "rating_asc"
   ],
   "type": "string",
   "default": "relevance",
   "description": "Review ordering, applied by Indeed. `relevance` (default) is Indeed's own order, which is\nalready newest-first. `helpfulness` puts most-helpful first. `rating_desc` and `rating_asc`\nsort by star rating. There is no date value: Indeed accepts one but ignores it, and\n`relevance` is already date order.\n"
  },
  "text": {
   "type": "string",
   "description": "Full-text search within the company's reviews."
  },
  "topic": {
   "enum": [
    "wlbalance",
    "paybenefits",
    "jobsecadv",
    "mgmt",
    "culture"
   ],
   "type": "string",
   "description": "Return only reviews that discuss one topic. The ids and their per-company review\ncounts and ratings are returned in `company_review_topics`. A value outside this set\nis silently ignored by Indeed, so it is rejected with a 400 here.\n"
  },
  "company": {
   "type": "string",
   "description": "The company, as an Indeed `/cmp` slug (`Lutron-Electronics`), a full or relative `/cmp` URL,\nor a free-text name. Slugs and URLs are free; `job_indeed_company_page_url` works directly.\nA free-text name is resolved through Indeed's company search and billed as one extra\nrequest. An unknown slug returns a 404 error.\n"
  },
  "country": {
   "type": "string",
   "description": "Which country's reviews to return (Indeed's `fcountry`), as a 2-letter code, or `ALL`\nfor every country.\n\nThis is **not** the proxy exit market. Indeed's default view is already scoped to\nUS, which is why `company_review_count` and `company_filtered_review_count` normally\ndiffer.\n"
  },
  "location": {
   "type": "string",
   "description": "Narrow to one location within the selected country, in Indeed's own format (`Coopersburg,\nPA`). **Requires a 2-letter `country`.** Indeed ignores this filter without one, so\nsending it alone returns a 400 error.\n"
  },
  "job_title": {
   "type": "string",
   "description": "Return only reviews written by people with this job title."
  },
  "num_pages": {
   "type": "integer",
   "default": 1,
   "maximum": 10,
   "minimum": 1,
   "description": "How many consecutiv
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "required": [
    "company_name",
    "company_id",
    "company_slug",
    "company_url",
    "company_reviews_url",
    "company_logo",
    "company_header_image",
    "company_rating",
    "company_review_count",
    "company_filtered_review_count",
    "company_happiness_score",
    "company_happiness_grade",
    "company_category_ratings",
    "company_rating_distribution",
    "company_review_topics",
    "company_pros",
    "company_cons",
    "reviews"
   ],
   "properties": {
    "reviews": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "review_id",
       "review_uid",
       "review_title",
       "review_text",
       "review_rating",
       "review_category_ratings",
       "review_job_title",
       "review_job_title_normalized",
       "review_location",
       "review_country",
       "review_is_current_employee",
       "review_posted_at",
       "review_posted_at_date",
       "review_posted_at_timestamp",
       "review_posted_at_datetime_utc",
       "review_helpful_count",
       "review_unhelpful_count",
       "review_url",
       "review_share_url",
       "review_status",
       "review_is_redacted",
       "review_comment_count"
      ],
      "properties": {
       "review_id": {
        "type": "string",
        "example": "b488aaf878adeae6",
        "nullable": true,
        "description": "Indeed's encrypted review id. Stable, and the `id=` parameter on `review_url`."
       },
       "review_uid": {
        "type": "string",
        "example": "1jug4q15nh72n801",
        "nullable": true,
        "description": "Indeed's internal review uid. Distinct from `review_id`; carried for completeness."
       },
       "review_url": {
        "type": "string",
        "format": "uri",
        "example": "https://www.indeed.com/cmp/Lutron-Electronics/reviews/good-start-pay-but-very-strict-company?id=b488aaf878adeae6",
        "nullable": true
       },
       "review_text": {
        "type": "string",
        "example": "While overall they are pretty good. They are very strict even if there is an emergency.",
        "nullable": true,
        "description": "The review body as plain text. Measured 62-2028 characters."
       },
       "review_title": {
        "type": "string",
        "example": "Good start pay but very strict company",
        "n
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-indeed-company-reviews-85719f5c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
