Use cases / Glassdoor API
Employer reputation tracking
Last updated September 28, 2026. Response excerpts are recorded from the live API.
Who
Who runs this, and what for
| Team | What they decide with it |
|---|---|
| Employer brand teams | Whether a change in benefits, leadership, or policy moved how employees rate the company. |
| Recruiters | Which competitor weaknesses, such as work-life balance, to mention to candidates. |
| Investors and analysts | Whether falling employee sentiment is an early warning for a company. |
Pipeline
The calls, step by step
01Find each company once
Company search returns employer_id and slug for a name, with the overall rating and review count. Store the ids; they do not change.
GET /v1/company/search?engine=glassdoor&q=stripe · results.0
{ "position": 1, "employer_id": "671932", "name": "Stripe", "slug": "Stripe", "logo": "https://media.glassdoor.com/sql/671932/stripe-squarelogo-1610580619584.png", "rating": 3.8, "reviews_count": 1588, "salaries_count": 4659, "jobs_count": 4, "url": "https://www.glassdoor.com/Overview/Working-at-Stripe-EI_IE671932.11,17.htm" }Recorded response. Live values differ. 02Snapshot the ratings
Company returns the overall rating, six sub-ratings, CEO approval, recommend-to-a-friend and business outlook percentages, and the review count. Store each snapshot with its date: Glassdoor shows only the current values.
GET /v1/company?engine=glassdoor&employer_id=9079&slug=Google · company.ratings
{ "overall": 4.4, "career_opportunities": 4.2, "compensation_and_benefits": 4.5, "culture_and_values": 4.2, "diversity_and_inclusion": 4.4, "senior_management": 3.9, "work_life_balance": 4.2, "recommend_to_friend_pct": 87, "ceo_approval_pct": 83, "business_outlook_pct": 82 }Recorded response. Live values differ. 03Read the newest reviews
latest_reviews holds the newest reviews Glassdoor shows without a login, with pros, cons, the reviewer's job title, and whether they still work there.
GET /v1/company?engine=glassdoor&employer_id=9079&slug=Google · company.latest_reviews.0
{ "id": "105721641", "title": "Supportive benefits overshadowed by bureaucracy and negative culture shift", "pros": "Kind people, supportive benefits, internal mobility", "cons": "Bureaucratic, slow-moving, negative culture shift in the past 4 years", "advice": null, "rating": 4, "ratings": { "career_opportunities": 4, "compensation_and_benefits": 5, "culture_and_values": 4, "diversity_and_inclusion": 4, "senior_management": 4, "work_life_balance": 5 }, "job_title": "Senior UX Program Manager", "location": "New York, NY", "employment_status": "Full-time", "current_employee": false, "helpful_count": 0, "employer_responded": false, "date": "2026-09-24T08:39:19.700Z" }Recorded response. Live values differ.
Code
A script to start from
employer_ratings.py
# Monthly employer rating snapshot for you and your hiring competitors.
# Appends to employer_ratings.csv and prints the newest public reviews.
import csv, datetime, os, requests
API = "https://api.clair.im"
HEADERS = {"Authorization": f"Bearer {os.environ['CLAIR_API_KEY']}"}
EMPLOYERS = ["Google", "Microsoft", "Meta"]
def get(path, **params):
r = requests.get(f"{API}{path}", headers=HEADERS, timeout=90,
params={"engine": "glassdoor", **params})
r.raise_for_status()
return r.json()
today = datetime.date.today().isoformat()
with open("employer_ratings.csv", "a", newline="") as f:
out = csv.writer(f)
for name in EMPLOYERS:
hit = get("/v1/company/search", q=name)["results"][0]
c = get("/v1/company", employer_id=hit["employer_id"], slug=hit["slug"])["company"]
r = c["ratings"]
out.writerow([today, c["name"], r["overall"], r["work_life_balance"],
r["compensation_and_benefits"], r["senior_management"],
r["ceo_approval_pct"], r["recommend_to_friend_pct"],
c["counts"]["reviews"]])
for review in c["latest_reviews"]:
print(f"{c['name']} {review['rating']}/5 {review['job_title']}: {review['title']}")
Set CLAIR_API_KEY to a key subscribed to the Glassdoor API. Each call is one request against that API's monthly quota.
Cost
What it costs per month
| Schedule | Requests | Plan | Per month | Per 1,000 |
|---|---|---|---|---|
| 5 companies, monthly5 × (1 search + 1 profile) = 10 requests. Cache the ids and it is 5. | 10 | Pay as you go | $0.08 | $8 |
| 20 companies, weekly20 profiles × 4 weeks = 80 requests, ids cached. | 80 | Pay as you go | $0.62 | $7.75 |
| 1,000 companies, weekly1,000 × 4 = 4,000 requests, for an index across an industry. | 4,000 | Pay as you go | $31.20 | $7.80 |
Limits
What to plan for
- Glassdoor shows signed-out visitors only the newest few reviews, usually 3. The full review history is behind its login and is not returned, so this tracks ratings, not every review.
- Ratings move slowly at large companies with tens of thousands of reviews. Watch review_count and the sub-ratings for change.
- Sub-ratings are averages of the reviews that rated them, which is fewer than all reviews.
FAQ
Common questions
Can I get every review for a company?
No. Older reviews are shown only to signed-in Glassdoor members, and Clair does not log in. Snapshot latest_reviews on a schedule to collect new ones as they arrive.
What does CEO approval measure?
The share of reviewers who rated the CEO and approved. ceo_approval_pct is that share; ceo names the person it refers to.
How often should I snapshot?
Monthly is enough for most companies. Weekly suits a company in the news, where reviews come quickly.
Run it on your own products
200 requests a month free on each API, no card. Enough to run the pipeline on a short list before choosing a plan.
Bloomberg News API
Associated Press API
Glassdoor API
Greenhouse Jobs API

Crunchbase API
Website Contacts API