# Kununu Employer Reviews & Ratings Scraper (`fetch_cat/kununu-employer-reviews-scraper`) Actor

Export public Kununu employer ratings and employee reviews for DACH companies from company URLs or employer-name searches.

- **URL**: https://apify.com/fetch\_cat/kununu-employer-reviews-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 item processeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

## Kununu Employer Reviews & Ratings Scraper

This Kununu employer reviews scraper exports public employer ratings and employee-review records for Germany, Austria, and Switzerland. Use it as a Kununu ratings scraper or Kununu company reviews export tool: provide a public company URL or a company search term, then download target-bound company and review rows as JSON, CSV, or Excel.

### What you get

- Employer identity, canonical Kununu profile URL, aggregate rating, review count, recommendation rate, and public category ratings.
- Individual public employee reviews with title, score, dated review text, pros, cons, suggestions, recommendation signal, employment context, department, and location when displayed.
- Canonical source URLs and stable public review IDs for deduplication and monitoring.

### Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

- [Find and export Bosch Gruppe employer reviews](https://apify.com/fetch_cat/kununu-employer-reviews-scraper/examples/bosch-gruppe-employer-search)
- [Export Bosch Gruppe employer reviews](https://apify.com/fetch_cat/kununu-employer-reviews-scraper/examples/bosch-gruppe-employer-reviews)

#### Search for an employer

```json
{
  "searchTerms": ["Bosch Gruppe"],
  "countryCode": "de",
  "maxItems": 10,
  "maxReviewPages": 1
}
```

Search terms are matched against public Kununu company-result labels in the selected locale before any profile is scraped.

#### Scrape known public profiles

```json
{
  "companyUrls": [{ "url": "https://www.kununu.com/de/bosch-gruppe" }],
  "maxItems": 25,
  "maxReviewPages": 3
}
```

### Input settings

| Field | Description |
| --- | --- |
| `companyUrls` | One or more public DACH Kununu company profile URLs. |
| `searchTerms` | Employer names to resolve through public Kununu search. |
| `countryCode` | Search locale: `de`, `at`, or `ch`. |
| `maxItems` | Maximum combined company and review rows to save (1–1000). |
| `maxReviewPages` | Maximum public employee-review pages per company (1–20). |

### Output fields

| Field | Description |
| --- | --- |
| `recordType` | `company` or `review`. |
| `companyName`, `companySlug`, `companyUrl`, `countryCode` | Target-bound employer identity and canonical source URL. |
| `aggregateRating`, `reviewCount`, `recommendationRate`, `categoryRatings` | Public employer rating summary. |
| `reviewId`, `reviewUrl`, `reviewTitle`, `reviewText`, `reviewScore`, `reviewDate` | Public review identity, source, and text. |
| `pros`, `cons`, `suggestions`, `recommended` | Public review feedback and recommendation signal when displayed. |
| `employmentType`, `employmentStatus`, `role`, `department`, `location` | Public employment context when displayed. |

### Example output

```json
{
  "recordType": "review",
  "companyName": "Bosch Gruppe",
  "companyUrl": "https://www.kununu.com/de/bosch-gruppe",
  "reviewId": "public-review-id",
  "reviewUrl": "https://www.kununu.com/de/bosch-gruppe/bewertung/public-review-id",
  "reviewTitle": "Public employee review",
  "reviewScore": 4,
  "reviewText": "What I like: Helpful colleagues",
  "reviewDate": "2026-01-01"
}
```

### Pricing and limits

See the live [Pricing tab](https://apify.com/fetch_cat/kununu-employer-reviews-scraper/pricing) for current rates. Charges apply only to emitted dataset items; set `maxItems` to control the maximum number of saved company and review rows.

### Who is it for?

- **Employer-brand teams** comparing publicly visible employee sentiment across known DACH employers.
- **Recruiters** who need review evidence alongside an employer profile rather than a manually copied web page.
- **HR and market researchers** building repeatable exports for a shortlist of companies or a monitored employer name.

The Actor returns the public fields displayed for each employer and review. It does not infer missing workplace details or create contact records.

### Tips and limits

- Use direct company URLs when you already know the profile; they avoid search matching.
- `maxItems` applies across company and review rows. Increase `maxReviewPages` only when you need more historical reviews.
- This actor processes anonymous public pages only. Login-only content, private account data, and contact enrichment are out of scope.
- Kununu can change public page layouts or omit fields for a specific employer; unavailable values are returned as `null` or empty arrays where applicable.

### API usage

Run the Actor with the [Apify API](https://docs.apify.com/api/v2) and retrieve its default dataset when the run completes. Replace `APIFY_TOKEN` with your token.

#### Node.js

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/kununu-employer-reviews-scraper').call({
  companyUrls: [{ url: 'https://www.kununu.com/de/bosch-gruppe' }],
  maxItems: 10,
  maxReviewPages: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("fetch_cat/kununu-employer-reviews-scraper").call(run_input={
    "searchTerms": ["Bosch Gruppe"], "countryCode": "de", "maxItems": 10
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~kununu-employer-reviews-scraper/runs?token=APIFY_TOKEN' \
  -H 'content-type: application/json' \
  -d '{"searchTerms":["Bosch Gruppe"],"countryCode":"de","maxItems":10}'
```

### MCP

Add this Actor to Claude through [Apify MCP](https://mcp.apify.com/?tools=fetch_cat/kununu-employer-reviews-scraper):

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=fetch_cat/kununu-employer-reviews-scraper"
```

Or add the HTTP server to your MCP client configuration:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=fetch_cat/kununu-employer-reviews-scraper"
    }
  }
}
```

Example prompts:

- “Export 25 public employee-review records for Bosch Gruppe in Germany.”
- “Find the Austrian Kununu profile for Red Bull and return its rating summary plus 10 reviews.”
- “Compare the publicly visible recommendation rates for these Kununu company URLs.”

### FAQ

#### Can I use company names instead of URLs?

Yes. Provide `searchTerms` and a `countryCode`; matching public profile labels are resolved to canonical company URLs.

#### Does it include employee review text?

Yes, when the public review card exposes it. Review factor text is normalized into `reviewText`, with labelled `pros`, `cons`, and `suggestions` returned separately when available.

#### Can I monitor an employer over time?

Yes. Save `companyUrl` and `reviewId` from each export, then compare later datasets by those stable public identifiers. A profile can add reviews or change its aggregate score between runs.

#### Why are some fields empty?

Kununu does not show every field on every public review. The Actor keeps those fields as `null` rather than guessing values, while retaining the available source URL and review identifier.

#### Is this suitable for private employee data?

No. It is limited to anonymously accessible public company and employee-review pages. Do not use it to collect login-only information or to make employment decisions about an individual.

### Related Actors

- [Airbnb Reviews Scraper](https://apify.com/fetch_cat/airbnb-reviews-scraper)
- [Facebook Reviews Scraper](https://apify.com/fetch_cat/facebook-reviews-scraper)
- [Google Maps Reviews Scraper](https://apify.com/fetch_cat/google-maps-reviews-scraper)
- [Trustpilot Reviews Scraper](https://apify.com/fetch_cat/trustpilot-reviews-scraper)
- [Yelp Reviews Scraper](https://apify.com/fetch_cat/yelp-reviews-scraper)

### Support

For help with inputs or output, open an issue from this Actor's Apify page with a public example URL and the affected field name.

# Actor input Schema

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

Public Kununu DACH company URLs, for example https://www.kununu.com/de/bosch-gruppe.

## `searchTerms` (type: `array`):

Public employer names to resolve through Kununu search before scraping. Results are bound to profile URLs returned by that search.

## `countryCode` (type: `string`):

Used to validate DACH company URLs.

## `maxItems` (type: `integer`):

Maximum company and review records saved.

## `maxReviewPages` (type: `integer`):

Maximum public employee-review pages to read (up to 9 reviews per page).

## Actor input object example

```json
{
  "companyUrls": [
    {
      "url": "https://www.kununu.com/de/bosch-gruppe"
    }
  ],
  "searchTerms": [
    "Bosch Gruppe"
  ],
  "countryCode": "de",
  "maxItems": 10,
  "maxReviewPages": 1
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "companyUrls": [
        {
            "url": "https://www.kununu.com/de/bosch-gruppe"
        }
    ],
    "searchTerms": [
        "Bosch Gruppe"
    ],
    "countryCode": "de",
    "maxItems": 10,
    "maxReviewPages": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/kununu-employer-reviews-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 = {
    "companyUrls": [{ "url": "https://www.kununu.com/de/bosch-gruppe" }],
    "searchTerms": ["Bosch Gruppe"],
    "countryCode": "de",
    "maxItems": 10,
    "maxReviewPages": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/kununu-employer-reviews-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "companyUrls": [
    {
      "url": "https://www.kununu.com/de/bosch-gruppe"
    }
  ],
  "searchTerms": [
    "Bosch Gruppe"
  ],
  "countryCode": "de",
  "maxItems": 10,
  "maxReviewPages": 1
}' |
apify call fetch_cat/kununu-employer-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fetch_cat/kununu-employer-reviews-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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