Glassdoor Interviews Universal Scraper
Pricing
from $2.04 / 1,000 results
Glassdoor Interviews Universal Scraper
π§βπΌ Scrape Glassdoor interview experiences by company name or URL. Get the job title, difficulty, outcome, how the interview was obtained, the full process description, the questions asked, negotiation notes & dates. No login and no proxy needed.
Pricing
from $2.04 / 1,000 results
Rating
5.0
(1)
Developer
Scrapifier
Maintained by CommunityActor stats
0
Bookmarked
40
Total users
20
Monthly active users
5 days ago
Last modified
Categories
Share
Glassdoor Interviews Scraper
Scrape interview experiences and interview questions from Glassdoor by company name or Glassdoor URL and export them as JSON, CSV or Excel, or pull them straight from the API.
β‘ For every interview you get the job title, the overall experience, the difficulty, the outcome (offer accepted, declined or no offer), how the interview was obtained, the length of the process in days, the full process description, the list of questions asked with their answer counts, negotiation notes, the candidate's advice, helpful votes, the employer's official response and the interview and posting dates. Filter by job title, difficulty, outcome and language, on any Glassdoor country site, with no login, no cookies and no proxy. You pay per interview.
π― Why scrape Glassdoor interviews?
- Interview preparation: pull the interview questions asked at a company for a given role, sorted by most recent, and see which rounds candidates describe and how long the process took.
- Recruiting and HR benchmarking: compare difficulty, outcome mix and process length across competitors to calibrate your own hiring funnel.
- Career platforms and coaching: feed interview questions and experiences into prep tools, newsletters or course material, refreshed on a schedule.
- Research and journalism: analyse hiring practices at scale: offer rates, negotiation notes, candidate sentiment over time.
- Talent intelligence: track how a company's interview process changes after a reorg, a hiring freeze or a leadership change.
π What data does Glassdoor Interviews Scraper extract?
| Field | Description |
|---|---|
interviewId | Unique Glassdoor interview id |
url | Link to the company's interviews page on Glassdoor |
employerId, employerName | Glassdoor employer id and company name |
jobTitle | Job title the candidate interviewed for |
location, locationType | Interview location and its type (CITY, STATE...) |
experience | Overall experience: POSITIVE, NEGATIVE or NEUTRAL |
difficulty | VERY_EASY, EASY, AVERAGE, DIFFICULT or VERY_DIFFICULT |
outcome | ACCEPT_OFFER, DECLINE_OFFER or NO_OFFER |
source, otherSource | How the interview was obtained (EMPLOYEE_REFERRAL, APPLIED_ONLINE...), free text when "other" |
durationDays | Length of the interview process in days |
processDescription | Full description of the process, as written by the candidate |
negotiationDescription, advice | Negotiation notes and advice from the candidate |
declinedReason, otherSteps | Why the offer was declined, other steps in the process |
isCurrentEmployee, featured | Written by a current employee, featured interview |
countHelpful, countNotHelpful | Helpful and not-helpful votes |
interviewDateTime, reviewDateTime | When the interview took place and when it was posted (ISO 8601) |
questions[], questionCount | Questions asked (question, answerCount), when includeQuestions is on, and their number |
companyResponses[] | The employer's official responses (text, author, dateTime), when includeCompanyResponses is on |
With flatten enabled the nested questions and companyResponses are dropped and the questions are joined into one questionsText column, so the CSV or Excel export stays flat.
π How to scrape Glassdoor interviews
- Open the Actor and type one or more company names in
companyNames(for exampleGoogle,Microsoft,Airbnb), or paste Glassdoor company URLs (Interviews page or any company page, any country site) instartUrls. - Optionally type a job title (
Software Engineer,Data Scientist) to keep one role only, pick a difficulty, one or more outcomes, and the sort order (most relevant or most recent). - Set Max interviews per company.
0collects as many as Glassdoor exposes; keep a cap for a first run. - Click Start. The Actor collects interviews page by page.
- Open the Storage tab to preview the interviews and export them as JSON, CSV, Excel or XML, or read them from the dataset API.
The same run can be started from the Apify API, the Python or JavaScript client, or put on a schedule to refresh the questions every week.
π₯ Input parameters
| Field | Key | Type | Default | Description |
|---|---|---|---|---|
| Glassdoor company URLs | startUrls | array of URLs | none | Interviews page (https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm) or any company page, any Glassdoor country domain. |
| Company names | companyNames | array of strings | ["Google"] | Company names resolved automatically on the chosen Glassdoor domain. |
| Job title | jobTitle | string | none | Keep only interviews for this role, matched the way Glassdoor's own job-title filter does (closely related titles included). Empty = all roles. |
| Max interviews per company | maxInterviewsPerCompany | integer | 100 | Interviews to collect per company. 0 = as many as Glassdoor exposes. |
| Sort interviews by | sort | select | relevance | relevance (most relevant / helpful) or recent (most recent). |
| Difficulty | difficulty | select | "" (Any) | VERY_EASY, EASY, AVERAGE, DIFFICULT or VERY_DIFFICULT. Empty = all. |
| Outcome | outcomes | array of strings (multi-select) | none | Any of ACCEPT_OFFER, DECLINE_OFFER, NO_OFFER. Empty = all. |
| Interview language (ISO-3) | interviewLanguage | string | eng | ISO-639-2 code: eng, fra, deu, spa, ita, por, nld. |
| Glassdoor domain (for company names) | country | select | www | Domain used to resolve company names: www (glassdoor.com), co.uk, ca, com.au, co.in or ie. Pasted URLs keep their own domain. |
| Include interview questions | includeQuestions | boolean | true | Attach the list of questions asked during each interview. |
| Include company responses | includeCompanyResponses | boolean | true | Attach the employer's official responses to each interview. |
| Flat columns (CSV-friendly) | flatten | boolean | false | Questions joined into one text column, nested objects dropped, for clean CSV and Excel exports. |
| Report empty inputs | emitInputStatus | boolean | true | Add an input_status report (which input returned nothing and why) to the run's OUTPUT record. |
| Page load retries | maxChallengeRetries | integer | 6 | Retries when a page fails to load. Increase only if runs report being blocked. |
| Proxy | proxyConfiguration | object | off | Leave off. A proxy usually makes Glassdoor runs fail; only add one if you have your own clean, ISP-grade IPs. |
Example input:
{"companyNames": ["Google"],"jobTitle": "Software Engineer","sort": "recent","difficulty": "DIFFICULT","maxInterviewsPerCompany": 100,"includeQuestions": true}
Type the job title in full as Glassdoor spells it (Software Engineer, not SWE). To target one country office, paste that country's Glassdoor URL in startUrls instead of the company name, and set interviewLanguage to match.
π€ Output example
Each interview is one dataset item, exportable as JSON, CSV, Excel or via the API.
{"interviewId": 4168541,"url": "https://www.glassdoor.com/Interview/Employer-Interview-Questions-E9079.htm","employerId": 9079,"employerName": "Google","jobTitle": "Software Engineer","location": "Mountain View, CA","experience": "POSITIVE","difficulty": "DIFFICULT","outcome": "ACCEPT_OFFER","source": "EMPLOYEE_REFERRAL","durationDays": 30,"processDescription": "Phone screen, then 5 onsite rounds covering data structures, algorithms and system design.","questions": [ { "question": "Reverse a linked list in place.", "answerCount": 3 } ],"questionCount": 5,"interviewDateTime": "2026-04-01T07:00:00"}
The run's OUTPUT record also holds the run statistics, the job title actually sent to Glassdoor (resolved_job_title) and, per company, an input_status entry (ok, empty, not_found or no_employer_id) so you can see at a glance which input produced nothing.
π‘ Ready-to-run examples
Google: latest interview questions and experiences
{ "companyNames": ["Google"], "maxInterviewsPerCompany": 200, "sort": "recent", "includeQuestions": true }
Google Software Engineer: latest interview questions
{ "companyNames": ["Google"], "jobTitle": "Software Engineer", "maxInterviewsPerCompany": 200, "sort": "recent", "includeQuestions": true }
Meta, Amazon, Apple: difficult interviews that led to an offer
{ "companyNames": ["Meta", "Amazon", "Apple"], "maxInterviewsPerCompany": 100, "sort": "relevance", "difficulty": "DIFFICULT", "outcomes": ["ACCEPT_OFFER", "DECLINE_OFFER"], "includeQuestions": true }
Deloitte, PwC, KPMG, EY (UK): recent interview experiences, flat CSV
{ "companyNames": ["Deloitte", "PwC", "KPMG", "EY"], "country": "co.uk", "maxInterviewsPerCompany": 50, "sort": "recent", "flatten": true }
π° Pricing: how much does it cost to scrape Glassdoor interviews?
From $3.00 per 1,000 interviews on the free plan, with automatic volume discounts down to $2.04 per 1,000 on higher Apify plans. You pay only for the results you receive, there is no subscription and no start fee. New Apify accounts get free monthly platform credits to try it.
Cost is driven purely by the number of interviews stored: use maxInterviewsPerCompany to cap each company, and jobTitle, difficulty or outcomes to narrow the set before you pay for it.
βοΈ Performance, proxies and limits
- No proxy needed, and not recommended. The Actor runs reliably without one, so Apify Proxy is off by default. A proxy usually makes Glassdoor runs fail; only add one if you have your own clean, ISP-grade IPs.
- Paging: interviews are fetched 20 per request with a 1.2 second pause between pages and pushed to the dataset in batches of 200. Each page is retried up to 3 times.
- Server-side filters:
jobTitleandinterviewLanguageare applied by Glassdoor before pagination, so a run for one role is as fast and as cheap as the number of results you ask for. The job title is first resolved to Glassdoor's canonical title; if no exact title matches, it is sent as typed and the log lists the closest Glassdoor titles. - Difficulty and outcome: Glassdoor treats them as hints, so the Actor checks every interview strictly before storing it. You only pay for matching interviews, but the run still reads through the non-matching ones, so a narrow filter on a large company takes longer.
- Volume: very large employers list tens of thousands of interviews.
0inmaxInterviewsPerCompanycollects everything Glassdoor exposes; the default run has a 60 minute timeout, so raise it for uncapped runs on big companies. - Deduplication: interviews are deduplicated by
interviewIdwithin each company, duplicates are counted in the run statistics. - Blocked runs: if a page cannot be loaded after
maxChallengeRetriesattempts, the run ends with ablockederror in the OUTPUT record: retry later or raisemaxChallengeRetries. Theinput_statusreport tells you which company came back empty or was not found.
π Integrations and API
Run Glassdoor Interviews Scraper from the Apify API, the Python or JavaScript client, or on a schedule. Connect it to Make, Zapier, n8n, Google Sheets, Slack or any webhook through Apify integrations. Every run's dataset is available as JSON, CSV, Excel or XML from the dataset API.
curl -X POST "https://api.apify.com/v2/acts/scrapifier~glassdoor-interviews-universal-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{ "companyNames": ["Google"], "jobTitle": "Software Engineer", "sort": "recent", "maxInterviewsPerCompany": 100, "includeQuestions": true }'
β FAQ
Is it legal to scrape Glassdoor interviews?
The Actor only reads interview experiences that Glassdoor publishes to anyone without logging in. They may contain personal data (job titles, locations), so process them in line with GDPR and other privacy laws, respect Glassdoor's terms of use, and stay responsible for how you use the data. This is not legal advice.
Do I need a Glassdoor account, login or cookies?
No. Nothing to log in to, no cookies to paste, no proxy to configure. The Actor works anonymously.
Which Glassdoor URLs are supported?
Any Glassdoor company URL: the Interviews page (.../Interview/Company-Interview-Questions-E12345.htm) or the company Overview or Reviews page. The Actor reads the employer id from the URL, and any country domain works (.com, .fr, .de, .co.uk...).
Can I get interview questions for a specific job title?
Yes. Keep includeQuestions on (the default) and type the role in jobTitle (Software Engineer, Product Manager, Data Scientist). Use the full title as Glassdoor spells it (case does not matter); abbreviations such as SWE or PM are not recognised, and the run log then lists the closest Glassdoor titles. The OUTPUT record shows the title actually used (resolved_job_title). Glassdoor groups closely related titles together (a Product Manager search also returns some Project Manager interviews); each item still carries its exact jobTitle if you need a stricter cut.
Can I keep only difficult interviews, or only the ones that ended with an offer?
Yes. Set difficulty to one of the five levels and outcomes to any combination of ACCEPT_OFFER, DECLINE_OFFER and NO_OFFER. Both are checked on every interview before it is stored, so non-matching interviews are never billed.
How many interviews can I scrape per company?
As many as Glassdoor lists: set maxInterviewsPerCompany to 0 to collect everything. Large companies have tens of thousands of interviews, so start with a few hundred to check the data before going wide.
How do I target a specific country or office?
Paste that country's Glassdoor URL in startUrls (any domain), or pick the matching country (glassdoor.co.uk, .ca, .com.au, .co.in, .ie) when using company names, and set interviewLanguage to match (eng, fra, deu...).
Can I export Glassdoor interviews to Excel or Google Sheets?
Yes. Every run's dataset downloads as CSV, XLSX, JSON or XML from the Storage tab. Turn on flatten for a clean spreadsheet (questions in one questionsText column), and the Google Sheets integration can push new interviews to a sheet automatically.
π Related scrapers
- Glassdoor Reviews Scraper: employee reviews with ratings, pros, cons, advice and company responses.
- Glassdoor Salaries Scraper: salary estimates per job title and company.
- Glassdoor Jobs Scraper: job listings by keyword and location, with salary estimates.
- Glassdoor Company Overview Scraper: the full company profile (ratings, CEO approval, size, HQ, revenue) by name or URL.
- Glassdoor Company Search Scraper: find companies by location, industry, minimum rating and size.
- Welcome to the Jungle Jobs Scraper: jobs and company profiles in France and Europe.
π¬ Support
Questions, bugs or a feature request? Open an issue in the Issues tab of this Actor, I answer quickly. If Glassdoor Interviews Scraper saves you time, a rating on the Store helps others find it.
