# Glassdoor Interviews Scraper — No Login, No API Key (`jamhimself/glassdoor-interviews-scraper`) Actor

Scrape Glassdoor interview experiences and questions to JSON — jobTitle, difficulty, outcome, questions, process writeups. No API key, no login, bulk, pay per result.

- **URL**: https://apify.com/jamhimself/glassdoor-interviews-scraper.md
- **Developed by:** [Jaime Martinez](https://apify.com/jamhimself) (community)
- **Categories:** Lead generation, Agents, AI
- **Stats:** 16 total users, 12 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$7.00 / 1,000 interviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Glassdoor Interviews Scraper — No Login, No API Key

Scrape Glassdoor interview experiences and interview questions into clean, structured JSON — no API key, no login, no account. Point it at any company's Glassdoor interview page and it returns every candidate's interview writeup: the `jobTitle` interviewed for, `difficulty` rating, overall `experience`, the `outcome`, the full `processDescription`, the actual `questions` asked (with `questionCount`), plus `location`, `date`, `durationDays`, and `advice`. Built for developers, data analysts, recruiters, and talent-intelligence teams who need Glassdoor interview data in bulk to feed dashboards, datasets, or an AI/RAG pipeline. Pay per result — no subscription.

Reliability: the scraper uses Chrome TLS impersonation (rotating Chrome 116–131 fingerprints) over residential US proxies with per-request session rotation to clear Glassdoor's anti-bot walls, so runs stay consistent at scale.

### ⚡ Quick start

Paste this into the Actor's **Input** (JSON view) and hit **Start**:

```json
{
  "startUrls": [
    { "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm" }
  ],
  "maxInterviews": 50
}
```

Each result row looks like:

```json
{
  "employerId": 9079,
  "jobTitle": "Software Engineer",
  "location": "Mountain View, CA",
  "difficulty": "DIFFICULT",
  "experience": "POSITIVE",
  "outcome": "ACCEPT",
  "date": "2026-04-18T00:00:00",
  "processDescription": "Recruiter screen, then a technical phone interview, then a five-round virtual onsite covering coding, system design, and behavioral questions. Heard back about a week after the final round.",
  "questions": [
    "Design a URL shortener that handles millions of requests per day.",
    "Tell me about a time you disagreed with a teammate."
  ]
}
```

Or run it from the API:

```
POST https://api.apify.com/v2/acts/jamhimself~glassdoor-interviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
```

### What you get

Each interview experience is returned as one row with these fields:

| Field | Description |
|---|---|
| `employerId` | Glassdoor employer ID parsed from the URL |
| `interviewId` | Unique ID of the interview experience |
| `jobTitle` | The role the candidate interviewed for |
| `location` | Interview location |
| `difficulty` | Reported difficulty (e.g. EASY / AVERAGE / DIFFICULT) |
| `experience` | Overall sentiment (POSITIVE / NEUTRAL / NEGATIVE) |
| `outcome` | Result — offer accepted, declined, or no offer |
| `durationDays` | Length of the interview process in days |
| `date` | When the interview took place |
| `currentEmployee` | Whether the reviewer was a current employee |
| `processDescription` | The candidate's full writeup of the interview process |
| `questions` | Array of the interview questions the candidate was asked |
| `questionCount` | Number of questions captured |
| `advice` | Advice the candidate left for future applicants |
| `negotiation` | Notes on salary/offer negotiation, when provided |
| `helpfulCount` | How many users marked the experience helpful |
| `reviewUrl` | Link back to the company's Glassdoor interview page |

### Use cases

- **Interview prep datasets** — collect real interview questions and process descriptions by company and role to build study guides or a candidate-prep product.
- **Competitor & employer intelligence** — monitor how candidates describe interviewing at rival companies, tracking difficulty, sentiment, and outcomes over time.
- **Recruiting & sourcing research** — see how your own hiring process is perceived and benchmark candidate experience against peers.
- **Talent-market analysis** — aggregate difficulty and experience signals across companies to spot hiring trends and role-level patterns.
- **LLM / RAG knowledge feed** — pipe `processDescription` and `questions` into an embeddings store to power an interview-coaching or Q\&A assistant.
- **Structured dataset building** — export thousands of interview experiences as JSON/CSV for analytics, NLP, or academic research.

### Input

| Param | Description |
|---|---|
| `startUrls` | One or more Glassdoor interview page URLs, e.g. `https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm`. |
| `companyUrls` | Alternative to `startUrls`: a plain list of Glassdoor interview URLs. |
| `maxInterviews` | Max interview experiences to return per company. Default `100`, up to `50000`. Pagination is automatic. |

Example:

```json
{
  "startUrls": [
    { "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm" }
  ],
  "maxInterviews": 200
}
```

### Pricing

Pay per interview delivered. No subscription — you only pay for the interview experiences you receive.

If the actor works well for you, a quick review on the Apify Store really helps. Part of the Employer Intelligence suite — pair it with the Glassdoor and Indeed reviews & salaries scrapers.

# Actor input Schema

## `startUrls` (type: `array`):

One or more Glassdoor interview pages, e.g. https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm

## `companyUrls` (type: `array`):

Alternative to startUrls: a plain array of Glassdoor interview URLs.

## `maxInterviews` (type: `integer`):

Maximum interview experiences to return per company.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm"
    }
  ],
  "maxInterviews": 100
}
```

# Actor output Schema

## `interviews` (type: `string`):

One row per interview: difficulty, outcome, process, questions, job title, date.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jamhimself/glassdoor-interviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm" }] }

# Run the Actor and wait for it to finish
run = client.actor("jamhimself/glassdoor-interviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm"
    }
  ]
}' |
apify call jamhimself/glassdoor-interviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jamhimself/glassdoor-interviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qnpVqEzUevwbLBvde/builds/lBHN2RaMInDAmOk3X/openapi.json
