Indeed API: Get company reviews
Looks up a company on Indeed and returns its overall employee rating, number of ratings, category ratings and CEO approval.
Unofficial. Not affiliated with or endorsed by Indeed.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Company, required
company Company name, for example Starbucks.
Starbucks
Input as JSON
{ "company": "Starbucks"}Output
{ "company": "Starbucks", "culture": 3.8, "ceo_name": "Brian Niccol", "management": 3.3, "reviews_link": "https://www.indeed.com/cmp/Starbucks/reviews" , "overall_rating": 3.8, "pay_and_benefits": 3.7, "number_of_reviews": 75371, "work_life_balance": 3.6, "ceo_approval_percent": 20, "job_security_and_advancement": 3.5}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"indeed.com/get_company_reviews","input":{"company":"Starbucks"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "indeed.com/get_company_reviews" , "input": { "company": "Starbucks" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "indeed.com/get_company_reviews" , "input": { "company": "Starbucks" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run indeed.com/get_company_reviews# with {"company":"Starbucks"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "company" ], "properties": { "company": { "type": "string", "description": "Company name, for example Starbucks." } }}Output schema
{ "type": "object", "required": [ "company", "overall_rating", "number_of_reviews", "work_life_balance", "pay_and_benefits", "job_security_and_advancement", "management", "culture", "ceo_name", "ceo_approval_percent", "reviews_link" ], "properties": { "company": { "type": "string", "description": "Company name on Indeed." }, "culture": { "type": [ "number", "null" ], "description": "Culture rating out of 5." }, "ceo_name": { "type": [ "string", "null" ], "description": "CEO name if shown." }, "management": { "type": [ "number", "null" ], "description": "Management rating out of 5." }, "reviews_link": { "type": "string", "description": "Indeed company reviews page." }, "overall_rating": { "type": [ "number", "null" ], "description": "Overall rating out of 5." }, "pay_and_benefits": { "type": [ "number", "null" ], "description": "Pay and benefits rating out of 5." }, "number_of_reviews": { "type": [ "integer", "null" ], "description": "Number of employee ratings." }, "work_life_balance": { "type": [ "number", "null" ], "description": "Work-life balance rating out of 5." }, "ceo_approval_percent": { "type": [ "integer", "null" ], "description": "CEO approval percentage if shown." }, "job_security_and_advancement": { "type": [ "number", "null" ], "description": "Job security and advancement rating out of 5." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
indeed.com/get_company_reviews- Returns
- overall rating, number of reviews, work-life balance, pay and benefits, job security, management, culture, CEO name and approval, reviews link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method indeed.com/get_company_reviews with the inputs above.
Ask your agent
- What's the overall employee rating for Starbucks, and how many reviews does it have?
- How do employees rate Costco on work-life balance and pay and benefits?
- Can you pull up the CEO approval rating for Target on Indeed?
- I'm considering a job at Zappos. What do current staff say about management and company culture?
- Show me the job security score and reviews link for Delta Air Lines.
See more
All Indeed methodsSearches open Indeed jobs by keywords, location, country, posting age and job type, returning public first-page results in displayed order.
indeed.com/search_jobsFinds the typical pay for a job title in the United States or a U.S. city or state on Indeed's public salary pages, with the number of reported salaries, the last update date, and the top-paying cities and companies when shown.
indeed.com/get_salaryGets a company's Trustpilot rating summary from its name or website: TrustScore, rating label, total reviews, star breakdown, categories, claimed status, reply statistics and location when shown.
trustpilot.com/get_company_ratingLooks up a company on AmbitionBox and returns its employee review count, overall and category ratings, and up to five common likes and dislikes. Summaries may be unavailable for some companies.
ambitionbox.com/get_company_reviewsGets the public overview of a LinkedIn company from its name or company page link. Details not shown publicly are null.
linkedin.com/get_company_profileReads recent public Trustpilot reviews for a company by name, website or Trustpilot link, in every language, with its TrustScore, ratings, reviewer details and company replies. Reviews follow the chosen sort (most recent or most relevant) and star filters, starting from a chosen results page.
trustpilot.com/get_company_reviewsFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesShows an employer's average annual base salary and its common jobs, with salary ranges, from PayScale public research pages.
payscale.com/get_company_pay