AmbitionBox Reviews Scraper (/w EMAILS) avatar

AmbitionBox Reviews Scraper (/w EMAILS)

Pricing

from $1.50 / 1,000 results

Go to Apify Store
AmbitionBox Reviews Scraper (/w EMAILS)

AmbitionBox Reviews Scraper (/w EMAILS)

Scrape AmbitionBox employee reviews — 7 named sub-ratings, work policy (WFO/WFH/Hybrid), job profile, location, verified flag, employer responses. Flat per-review rows with full company aggregate (rating distribution, top mentions, top job profiles) denormalized. Akamai-aware via Apify IN.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

40

Total users

3

Monthly active users

8 days ago

Last modified

Share

AmbitionBox Scraper — Reviews, Salaries & Interviews

Scrape AmbitionBox.com company data from any slug or URL. Each URL surface returns its own structured data: reviews (7 sub-ratings, work policy, verified flag) with the full company rating aggregate, a detailed per-designation salary breakdown (CTC ranges + experience bands + individual recent submissions), interview insights & top questions, and company overview stats. Paste a bare company slug like tcs and get back self-contained flat rows ready for CSV.

How the AmbitionBox Scraper works

Why this actor

AmbitionBox is the dominant employee-review platform in India (the Glassdoor of the Indian B2B market), owned by Info Edge / Naukri. It's behind Akamai Bot Manager with explicit per-region rules — direct requests and US/GB residential proxies get blocked, and /jobs/{slug}-jobs URLs are hard-403'd across every proxy.

The actor handles all that for you:

  • Reverse-engineered JSON API — talks directly to AmbitionBox's own mobile + web JSON APIs (no fragile HTML scraping), so each surface returns clean structured data
  • Four data surfaces from one input — paste /reviews/, /salaries/, /interviews/, or /overview/ URLs (or a bare slug) and each is scraped as its own surface; every row carries a dataType field so you can tell them apart
  • Apify Residential IN routing for the Akamai-gated surfaces (only pool that returns clean 200 OK)
  • Slug auto-canonicalisationtata-consultancy-servicestcs (AmbitionBox 301s the long form)
  • Deep salary coverage — the per-designation breakdown is widened by role-family search (10 → ~180 designations for a large employer), plus up to 50 individual recent salary submissions
  • Self-contained flat rows — review rows carry the full company aggregate denormalized, so CSV consumers don't need to join

Use cases

  • Compensation benchmarking — per-designation CTC ranges (avg/min/max + typical band), experience bands, and data-point counts, plus individual recent salary submissions
  • Competitive intelligence — compare sub-rating profiles (Salary, Skill Dev, Work-Life, Job Security…) across employers
  • Interview prep & research — company interview difficulty/experience insights and the top real interview questions
  • Reviewer firmographics — every review row carries job profile (System Engineer), location (Pune), division (Software Development), and employment type (permanent/contract)
  • Work-policy analysisworkPolicy: "WFO" | "WFH" | "Hybrid" is a first-class field
  • Reputation monitoring — track the verified flag and per-review rating against the company aggregate to spot outliers and trends

Input

FieldTypeRequiredNotes
startUrlsstring[]yesMix of bare slugs (tcs) and AmbitionBox URLs. Each /reviews/, /salaries/, /interviews/, /overview/ URL is scraped as its own data surface (rows carry a dataType field); a bare slug defaults to reviews. /jobs/{slug}-jobs URLs are rejected (Akamai blocks them).
maxItemsintegernoMaximum rows emitted per company URL. Mainly caps the paginated reviews and the salary breakdown; overview/interviews return a fixed small set. Each row = one paid additional-data. Default 1000. Free-tier users have a hidden global ceiling of 100 rows.
maxConcurrencyintegernoParallel HTTP requests across companies. Sweet spot 3–5 via Apify Residential IN. Default 4.
maxRequestRetriesintegernoPer-URL retry budget on Akamai cookie-shell responses, proxy CONNECT failures, and network errors. Each retry rotates the proxy session with mild exponential backoff. Default 10.
proxyobjectnoApify Residential IN required — direct and US/GB get blocked. Default is wired correctly.

Example input

{
"startUrls": ["tcs", "infosys", "wipro"],
"maxItems": 100,
"maxConcurrency": 4,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IN" }
}

That yields up to 300 review rows — 100 per company across 3 companies, 5 pages each.

Output schema

Every row carries a dataType field and a company object ({ companyId, name, slug }). The URL surface you pass decides which row types you get back:

dataTypeFrom surfaceOne row per…
review/reviews/ or bare slugemployee review (+ full companyAggregate denormalized)
salaryOverview/salaries/company salary summary
salaryByDesignation/salaries/designation — CTC range, experience band, data-point count
salaryRecord/salaries/individual recent salary submission
overview/overview/company — reviews/salaries/interviews/jobs/photos counts
interviewInsights/interviews/company interview summary (difficulty + experience)
interviewQuestion/interviews/top interview question

review

One flat row per review, with the company rating/culture aggregate denormalized under companyAggregate so a CSV export is self-contained.

{
"dataType": "review",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"reviewId": 1234567,
"rating": 4,
"designation": "System Engineer",
"department": "Software Development",
"location": "Pune",
"employmentType": "Full Time",
"workExperience": "3 years",
"currentEmployee": true,
"likes": "Good work-life balance and job security.",
"dislikes": "Appraisals are slow.",
"workDescription": null,
"benefits": null,
"helpfulCount": 12,
"notHelpfulCount": 1,
"verified": true,
"reviewedOn": "2026-06-18",
"reviewUrl": "https://www.ambitionbox.com/reviews/...",
"companyAggregate": {
"companyId": 42, "companyName": "TCS", "slug": "tcs",
"overallRating": 3.3,
"totalReviews": 116895,
"subRatings": { "jobSecurity": 4.1, "workLifeBalance": 4.0, "compensationBenefits": 2.9, "careerGrowth": 3.2 },
"ratingDistribution": [ { "stars": 5, "percent": 28, "count": 32000 } ],
"culture": { "workMonitor": { "label": "…", "percentage": 61 }, "workDays": {}, "shift": {}, "travel": {} }
}
}

salaryByDesignation  /  salaryRecord

The per-designation breakdown (top designations, widened by role-family search) and the individual recent submissions. CTC on designation rows is in ₹ lakhs per annum (LPA); salaryRecord.ctc is raw ₹/year with a derived ctcLpa.

{
"dataType": "salaryByDesignation",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"designationId": 29, "designation": "System Engineer", "designationUrlName": "system-engineer",
"avgCtcLpa": 5.7, "minCtcLpa": 3.5, "maxCtcLpa": 8.3,
"typicalMinCtcLpa": 5.5, "typicalMaxCtcLpa": 6,
"minExperienceYears": 0, "maxExperienceYears": 8,
"salaryDataPoints": 106488
}
{
"dataType": "salaryRecord",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"designation": "ETL Developer", "designationId": 2423, "designationUrlName": "etl-developer",
"ctc": 900000, "ctcLpa": 9, "experienceYears": 4,
"submittedOn": "2026-06-18 02:57:53", "submittedAgo": "1d ago"
}

overview  /  interviewInsights  /  interviewQuestion

{
"dataType": "overview",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"title": "Working at TCS: Culture, Careers…", "canonicalUrl": "…", "logo": "…",
"counts": { "reviews": 116895, "interviews": 11397, "salaries": 1037148, "jobs": 5034, "photos": 93 }
}
{
"dataType": "interviewInsights",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"interviewCount": 501, "experienceRating": 3.8,
"difficulty": [ { "label": "Easy", "value": 24 }, { "label": "Moderate", "value": 70 }, { "label": "Hard", "value": 6 } ],
"duration": [ { "label": "…", "value": 0 } ]
}
{
"dataType": "interviewQuestion",
"company": { "companyId": 42, "name": "TCS", "slug": "tcs" },
"question": "Election Winner Determination: In an ongoing election…",
"answersCount": 3, "questionUrl": "https://www.ambitionbox.com/interviews/…"
}

How it works

  1. Classify input — each URL is routed to its surface (reviews / salaries / interviews / overview); a bare slug defaults to reviews. /jobs/* URLs are rejected with a clear log line — Akamai hard-403s them across every proxy. Slugs are resolved to a numeric companyId once and cached.
  2. Call the JSON API — talks directly to AmbitionBox's own mobile + web JSON APIs (impit with a Firefox TLS fingerprint, routed via Apify Residential IN). No fragile HTML parsing.
  3. Fetch the surface — reviews paginate 20/page until maxItems; the salary breakdown pulls the top designations and widens them with role-family search; interviews return insights + top questions; overview returns the company counts.
  4. Individual salaries — for the salaries surface, recent salary submissions are read from the salary page's server-rendered data (Akamai-gated, so routed via IN residential).
  5. Emit flat rows — one additional-data per row, each tagged with dataType. Review rows carry companyAggregate denormalized so CSV consumers get a self-contained file.

What makes this different from other AmbitionBox actors

Most AmbitionBox actors on the Store are single-surface HTML scrapers. This one talks to AmbitionBox's own JSON APIs and covers four surfaces — including the salary data most competitors don't touch.

CapabilityOursTypical competitor
Data surfaces in one actor4 — reviews, salaries, interviews, overviewusually 1 (reviews only)
Per-designation salary breakdown✅ CTC avg/min/max + typical band + experience + data points❌ not available
Individual recent salary submissions✅ up to 50 per company❌ not available
Salary designation coverage✅ widened by role-family search (10 → ~180 for a large employer)
Interview insights + top questions✅ difficulty/experience split + real questionspartial / separate actor
Company rating aggregate on review rows✅ denormalized (distribution, sub-ratings, culture)❌ separate call needed
Structured company object + dataType tagging✅ every row❌ flat strings
Transport✅ reverse-engineered JSON API (no brittle HTML)HTML scraping
/jobs/* Akamai block✅ documented + rejected cleanly❌ silent failure

Notes & limitations

  • /jobs/* URLs are not scrapable. Akamai hard-403s the jobs surface across every proxy and UA combination we tested. The actor rejects these URLs with a clear message and routes you at /reviews/{slug}-reviews for the same company.
  • Apify Residential IN required. Direct, US, and GB residential proxies get the Akamai cookie-shell interstitial. The actor defaults the proxy block to RESIDENTIAL + IN — don't override unless you know what you're doing.
  • helpfulCount / notHelpfulCount can come back null from AmbitionBox's payload. They're surfaced when populated but we don't synthesize.
  • Review free-text fill ratelikes and dislikes are usually present, while workDescription and benefits are optional reviewer fields that are often empty (null). This matches AmbitionBox's own UI.
  • Salary breakdown is top-designations. The per-designation endpoint returns the highest-data-point designations; the actor widens coverage with role-family search (≈180 for a large employer) but very long-tail designations may not appear.
  • Salaries need Apify Residential IN. The salary designation gateway and the individual-submissions page are Akamai-gated; the actor routes them via IN residential automatically.

FAQ

Which company URLs work? Bare slugs like tcs or infosys, plus any of the four AmbitionBox company surfaces — /reviews/{slug}-reviews, /salaries/{slug}-salaries, /interviews/{slug}-interviews, /overview/{slug}-overview. Each URL is scraped as its own data surface (rows carry a dataType field); a bare slug defaults to reviews. Mix surfaces freely in one run.

Why are /jobs/{slug}-jobs URLs rejected? Akamai Bot Manager hard-403s the jobs surface across every proxy and UA we tested (Apify Residential IN included). The actor rejects these URLs upfront with a clear log line rather than silently failing — paste the /reviews/ URL for the same company instead.

How many rows do I get per company? It depends on the surface. A /reviews/ URL yields one row per review (each with the full companyAggregate denormalized). A /salaries/ URL yields a summary row + the per-designation breakdown + individual recent submissions. /overview/ yields one company row; /interviews/ yields an insights row + top questions. Every row carries a dataType field so you can split them.

What does each additional-data charge cover? One output row of any type — a review, a salary-by-designation row, an individual salary submission, an interview insight/question, or a company overview. The company aggregate bundled on review rows is not charged separately. maxItems is per-company URL.

Can I skip the proxy? No. AmbitionBox runs Akamai with explicit per-region rules. Direct connections and US/GB residential get a 2.3 KB cookie-challenge interstitial. The actor defaults to Apify Residential IN — leave it alone unless you know you have a working IN residential pool elsewhere.

Why are some review fields null? workDescription and benefits are optional reviewer fields and are often empty. helpfulCount / notHelpfulCount aren't always sent in AmbitionBox's payload. These are surfaced when present, never synthesized.

Support

  • Bugs / feature requests — open an issue on the GitHub repo
  • Custom exports / tailored fields — drop a note via the Apify Store contact form
  • Other actors — see my Apify Store profile for the rest of the catalog

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by AmbitionBox, Info Edge (India) Ltd., Naukri, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly visible content rendered server-side by AmbitionBox — no login bypass, no authenticated endpoints, no API-key forgery, no CAPTCHA solving. The actor honours AmbitionBox's /jobs/* hard-block (we reject those URLs rather than try to bypass them).

Users are responsible for:

  • Complying with AmbitionBox's Terms of Service
  • Respecting reviewer privacy — most reviewers post anonymously (reviewerName: "Anonymous", reviewerId: 0); do not attempt to de-anonymize
  • Following the Indian DPDP Act 2023 + your jurisdiction's data-protection laws (GDPR, CCPA, etc.) when storing, processing, or republishing review data
  • Not using the scraper to contact or harass reviewers
  • Not republishing scraped data in a way that competes commercially with AmbitionBox

SEO Keywords

ambitionbox scraper, scrape ambitionbox, ambitionbox reviews scraper, ambitionbox api, ambitionbox.com scraper, Apify ambitionbox, employee reviews scraper india, glassdoor india alternative, tcs reviews scraper, infosys reviews scraper, wipro reviews scraper, india tech company reviews, employer ratings india, work-life balance ratings india, indian it company reviews, work culture ratings, salary reviews india, employee review aggregator, employer reputation data india, akamai bot manager bypass, apify residential proxy india, next.js data extraction