# TheHub Nordic Startup Directory Scraper (`automation-lab/thehub-nordic-startup-directory-scraper`) Actor

🚀 Build structured Nordic startup prospect lists from public TheHub.io profiles. Export websites, locations, industries, team sizes, funding states, and social links for VC, sales, recruiting, and ecosystem research.

- **URL**: https://apify.com/automation-lab/thehub-nordic-startup-directory-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## TheHub Nordic Startup Directory Scraper

Build a structured Nordic startup database from public company profiles on [TheHub.io](https://thehub.io/startups).

This Apify Actor discovers startup profiles or accepts exact profile URLs, then extracts company descriptions, websites, locations, founding years, team sizes, industries, business models, funding states, and public links.

Use the results for repeatable venture research, Nordic sales prospecting, recruiting market maps, ecosystem analysis, and company-data enrichment.

- 🇩🇰 Cover public startups listed across the Nordic ecosystem
- 🎯 Filter by keywords, location, industry, funding state, and team size
- 🔗 Keep source URLs and public company websites for verification
- 📦 Export clean records to JSON, CSV, Excel, XML, or RSS
- ⚡ Run with lightweight HTTP extraction instead of a browser

### What does TheHub Nordic Startup Directory Scraper do?

The Actor crawls the public `thehub.io/startups` directory and its company profile pages.

It can start from the full directory, a paginated directory URL, or one or more exact startup profile URLs.

For every matching company it creates one typed dataset record.

Directory discovery and profile extraction are deduplicated by canonical TheHub profile URL.

The Actor stops as soon as `maxItems` matching profiles have been saved.

It does not scrape TheHub jobs or the separate investor directory in version 1.

### Who is it for?

#### Venture capital and corporate innovation teams

Create a repeatable Nordic startup sourcing feed by market, industry, maturity, and team size.

#### B2B sales and partnerships teams

Find relevant companies, then pass public websites and social profiles to your enrichment or CRM workflow.

#### Recruiters and talent intelligence teams

Map startup cohorts by location, industry, founding year, and employee range before researching open roles.

#### Data vendors and ecosystem researchers

Create timestamped snapshots for market maps, directories, trend research, and longitudinal monitoring.

#### Founders and accelerators

Benchmark nearby companies and discover potential partners operating in adjacent Nordic sectors.

### Why use this TheHub startup scraper?

Manual directory browsing does not create a reusable dataset.

Copying profiles into spreadsheets is slow, inconsistent, and difficult to repeat.

This Actor makes the same workflow programmable and auditable.

- ✅ Public profile data only
- ✅ No TheHub login or API key required
- ✅ Source URL included on every row
- ✅ Typed years and list fields
- ✅ Fail-closed filters
- ✅ Direct profile and directory workflows
- ✅ Hard item and page limits
- ✅ Pay only for saved startup profiles

### What startup data can I extract?

| Field | Description |
|---|---|
| `name` | Public startup/company name |
| `description` | Public company description |
| `profileUrl` | Canonical TheHub profile URL |
| `website` | Public external company website |
| `country` | Public location value |
| `location` | Public location value as displayed |
| `foundedYear` | Four-digit founding year when available |
| `employeeRange` | Public team-size range |
| `industries` | Array of public industry labels |
| `markets` | Array of public market labels when present |
| `businessModel` | Public business model, such as B2B |
| `fundingState` | Public funding state or stage |
| `socialLinks` | Public social profile URLs found on the page |
| `contactLinks` | Public `mailto:` or `tel:` links when present |
| `logoUrl` | Public company logo image URL when available |
| `scrapedAt` | ISO timestamp for snapshot provenance |

Fields not published by a company are omitted instead of invented.

Arrays remain arrays in JSON exports and can be transformed downstream.

### How much does it cost to scrape TheHub startups?

The Actor uses pay-per-event pricing.

A small one-time `start` event covers fixed run setup.

An `item` event is charged for each startup profile saved to the dataset.

The exact tiered item prices are shown in the Apify pricing panel and decrease on higher subscription tiers.

The initial prefill saves only five profiles, so you can inspect the output cheaply.

Use `maxItems` to control the maximum dataset size before starting a run.

Filtered searches may inspect more directory pages, but only saved profiles trigger item events.

### How to scrape Nordic startup profiles

1. Open the Actor input page.
2. Keep the prefilled VhAT profile for a one-company test, or add `https://thehub.io/startups` for discovery.
3. Add optional keywords or exact filters.
4. Set a low `maxItems` value for the first run.
5. Set `maxPages` high enough for selective directory filters.
6. Click **Start**.
7. Review the **Nordic startups** dataset table.
8. Export the data or connect it to another Apify integration.

For a broad run, start without filters and increase `maxItems` gradually.

For a selective run, increase `maxPages` because non-matching profiles do not count toward `maxItems`.

### Input parameters

#### TheHub startup URLs

`startUrls` accepts request-list entries pointing to:

- `https://thehub.io/startups`
- `https://thehub.io/startups?page=2`
- `https://thehub.io/startups/vhat`

Other hosts and non-startup paths are rejected.

If omitted, the Actor starts from the main startup directory.

#### Keywords

`keywords` uses case-insensitive OR matching across names, descriptions, locations, industries, markets, business models, and funding states.

#### Countries or locations

`countries` matches the public Location value exactly, ignoring case.

Examples include `Denmark`, `Sweden`, `Norway`, `Finland`, and `Iceland`.

#### Industries

`industries` matches at least one exact public industry label.

Examples include `SaaS`, `Legal`, `Fintech`, and `Healthcare & Life Science`.

#### Funding states

`fundingStates` matches exact public values such as `Seed`, `Bootstrapping`, or `Pre-seed`.

#### Employee ranges

`employeeSizes` matches exact values such as `1-10` or `11-50`.

#### Limits

`maxItems` limits saved company records.

`maxPages` limits directory pages inspected per directory URL.

### Example input

```json
{
  "startUrls": [{ "url": "https://thehub.io/startups" }],
  "keywords": ["artificial intelligence", "machine learning"],
  "countries": ["Denmark", "Sweden"],
  "industries": ["SaaS", "Fintech"],
  "fundingStates": ["Seed"],
  "employeeSizes": ["1-10", "11-50"],
  "maxItems": 100,
  "maxPages": 100
}
````

Values within one filter use OR logic.

Different filter groups combine with AND logic.

### Example output

```json
{
  "name": "VhAT",
  "description": "VhAT ApS is a Danish legal-tech SaaS company...",
  "profileUrl": "https://thehub.io/startups/vhat",
  "website": "http://www.vhat.io/",
  "country": "Denmark",
  "location": "Denmark",
  "foundedYear": 2023,
  "employeeRange": "1-10",
  "industries": ["SaaS", "Legal"],
  "markets": [],
  "businessModel": "B2B",
  "fundingState": "Seed",
  "socialLinks": [],
  "contactLinks": [],
  "scrapedAt": "2026-07-18T00:00:00.000Z"
}
```

Actual optional fields depend on what each startup publishes.

### Tips for reliable results

- 🧪 Begin with 5–20 records and inspect the dataset.
- 🎯 Copy exact filter labels from known profiles when possible.
- 📄 Raise `maxPages` for narrow filters.
- 🔗 Use direct profile URLs for deterministic enrichment.
- 🕒 Store `scrapedAt` when comparing snapshots over time.
- 🧹 Deduplicate downstream on `profileUrl` if combining runs.
- 📊 Export JSON when preserving arrays matters.

A no-match input fails rather than silently returning a successful empty dataset.

That behavior helps monitors and automated pipelines detect stale filters or source changes.

### Integrations and workflow patterns

#### Google Sheets prospect list

Send new dataset rows to Google Sheets, then review and qualify the public company websites.

#### CRM enrichment

Use `website` or `profileUrl` as a stable lookup key before creating accounts in HubSpot or Salesforce.

#### Slack startup alerts

Schedule a filtered run and send newly discovered records to Slack through Make or Zapier.

#### Data warehouse snapshots

Export JSON to Amazon S3, BigQuery, Snowflake, or another warehouse and compare cohorts by `scrapedAt`.

#### Recruiting market maps

Group companies by country, industry, and employee range before researching open roles.

#### Apify webhooks

Trigger downstream jobs when a run succeeds or fails.

### Run with the Apify API in JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/thehub-nordic-startup-directory-scraper').call({
  startUrls: [{ url: 'https://thehub.io/startups' }],
  countries: ['Denmark'],
  maxItems: 25,
  maxPages: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Run with the Apify API in Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/thehub-nordic-startup-directory-scraper').call(run_input={
    'startUrls': [{'url': 'https://thehub.io/startups/vhat'}],
    'maxItems': 1,
    'maxPages': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### Run with cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~thehub-nordic-startup-directory-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://thehub.io/startups/vhat"}],"maxItems":1,"maxPages":1}'
```

Fetch output from the run's default dataset after completion.

### Use with Apify MCP and AI assistants

Connect the Actor to Claude Code:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/thehub-nordic-startup-directory-scraper"
```

For Claude Desktop, Cursor, or VS Code, add an HTTP MCP server:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/thehub-nordic-startup-directory-scraper"
    }
  }
}
```

Example prompts:

- “Extract 20 public Danish startup profiles from TheHub.”
- “Build a CSV-ready list of Nordic SaaS startups with websites and team sizes.”
- “Look up this TheHub startup URL and summarize its public funding and industry data.”

### Scheduling and monitoring

Create an Apify schedule for weekly or monthly cohort snapshots.

Use stable filters and save each run's dataset ID.

Compare records by `profileUrl` to find newly listed companies or changed public details.

Configure a webhook for failed runs so source changes do not go unnoticed.

The Actor does not maintain historical state by itself.

Your destination dataset or warehouse should own snapshot comparisons.

### Data quality and limitations

The Actor returns public information displayed by TheHub and participating companies.

It cannot guarantee that company-submitted details are complete, current, or independently verified.

Some profiles omit founding year, website, markets, funding state, social links, or contact links.

Optional missing values are omitted; list fields remain empty arrays.

Location is currently the public profile Location value and may represent a country or a more specific place.

Filtering occurs against extracted profile values, not an inferred taxonomy.

TheHub can change its HTML structure, labels, or availability.

### Is it legal to scrape TheHub startup data?

This Actor accesses publicly available pages without login circumvention.

Web scraping laws and contractual rules vary by jurisdiction and use case.

You are responsible for reviewing TheHub's terms, applicable privacy law, database rights, and your lawful basis for processing data.

Do not use the output for spam, harassment, discrimination, or unlawful profiling.

Respect deletion requests, purpose limitation, retention rules, and outreach regulations.

This documentation is not legal advice.

### FAQ

#### Does the Actor require a TheHub account?

No. Version 1 uses anonymous public startup directory and profile pages.

#### Can it scrape TheHub jobs or investors?

No. This Actor intentionally emits only startup/company records. Use a dedicated workflow for different entity types.

#### Why did my filtered run find no startups?

Check exact industry, funding, location, and employee labels. Increase `maxPages` for selective filters. A no-match run fails visibly instead of returning an empty success.

#### Why is an optional field missing?

The company may not publish that field. The Actor does not fabricate values.

#### Can I scrape one company only?

Yes. Supply its exact `https://thehub.io/startups/<slug>` URL and set `maxItems` to `1`.

#### How do I avoid duplicates across scheduled runs?

Use `profileUrl` as the unique key in your database, spreadsheet automation, or data warehouse.

#### Does it use a browser or residential proxy?

No. The current public pages expose the useful data in server-rendered HTML, so the Actor uses lightweight direct HTTP requests.

### Related scrapers

Combine this Actor with other automation-lab tools when your workflow expands:

- [Company Domain Social Links Finder](https://apify.com/automation-lab/company-domain-social-links-finder)
- [Company Domain Finder](https://apify.com/automation-lab/company-domain-finder)
- [Email Pattern Finder](https://apify.com/automation-lab/email-pattern-finder)
- [Universal ATS Career Page Scraper](https://apify.com/automation-lab/universal-ats-career-page-scraper)

Use only data you are authorized to collect and process.

### Support

If a run fails, include its run URL, input, expected startup profile, and a short description of the mismatch in an Apify issue.

For extraction changes, one concrete public profile URL is especially useful.

Do not include private credentials or personal data in support messages.

The Actor logs directory pages, discovered profile counts, saved records, and profile-level extraction failures to support diagnosis.

# Actor input Schema

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

Add TheHub startup directory pages or direct /startups/<slug> profile URLs. Leave empty to browse the main directory.

## `keywords` (type: `array`):

Keep profiles whose name, description, industries, markets, business model, location, or funding state contains at least one keyword.

## `countries` (type: `array`):

Keep exact public Location values, for example Denmark, Sweden, Norway, Finland, or Iceland.

## `industries` (type: `array`):

Keep profiles sharing at least one exact industry, for example SaaS, Legal, Fintech, or Healthcare & Life Science.

## `fundingStates` (type: `array`):

Keep exact public funding states, for example Seed, Bootstrapping, Pre-seed, or Series A.

## `employeeSizes` (type: `array`):

Keep exact public team-size ranges, for example 1-10, 11-50, or 51-100.

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

Stop after this many matching startup company records are saved.

## `maxPages` (type: `integer`):

Maximum number of 15-profile directory pages to inspect per directory URL. Raise this for selective filters.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://thehub.io/startups/vhat"
    }
  ],
  "keywords": [],
  "countries": [],
  "industries": [],
  "fundingStates": [],
  "employeeSizes": [],
  "maxItems": 5,
  "maxPages": 5
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://thehub.io/startups/vhat"
        }
    ],
    "keywords": [],
    "countries": [],
    "industries": [],
    "fundingStates": [],
    "employeeSizes": [],
    "maxItems": 5,
    "maxPages": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/thehub-nordic-startup-directory-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://thehub.io/startups/vhat" }],
    "keywords": [],
    "countries": [],
    "industries": [],
    "fundingStates": [],
    "employeeSizes": [],
    "maxItems": 5,
    "maxPages": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/thehub-nordic-startup-directory-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://thehub.io/startups/vhat"
    }
  ],
  "keywords": [],
  "countries": [],
  "industries": [],
  "fundingStates": [],
  "employeeSizes": [],
  "maxItems": 5,
  "maxPages": 5
}' |
apify call automation-lab/thehub-nordic-startup-directory-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/thehub-nordic-startup-directory-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TheHub Nordic Startup Directory Scraper",
        "description": "🚀 Build structured Nordic startup prospect lists from public TheHub.io profiles. Export websites, locations, industries, team sizes, funding states, and social links for VC, sales, recruiting, and ecosystem research.",
        "version": "0.1",
        "x-build-id": "BR33JS7jdWSVyT2Uz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~thehub-nordic-startup-directory-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-thehub-nordic-startup-directory-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automation-lab~thehub-nordic-startup-directory-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-thehub-nordic-startup-directory-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automation-lab~thehub-nordic-startup-directory-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-thehub-nordic-startup-directory-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "🔗 TheHub startup URLs",
                        "type": "array",
                        "description": "Add TheHub startup directory pages or direct /startups/<slug> profile URLs. Leave empty to browse the main directory.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Keep profiles whose name, description, industries, markets, business model, location, or funding state contains at least one keyword.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "countries": {
                        "title": "Countries or locations",
                        "type": "array",
                        "description": "Keep exact public Location values, for example Denmark, Sweden, Norway, Finland, or Iceland.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "industries": {
                        "title": "Industries",
                        "type": "array",
                        "description": "Keep profiles sharing at least one exact industry, for example SaaS, Legal, Fintech, or Healthcare & Life Science.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fundingStates": {
                        "title": "Funding states",
                        "type": "array",
                        "description": "Keep exact public funding states, for example Seed, Bootstrapping, Pre-seed, or Series A.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "employeeSizes": {
                        "title": "Employee ranges",
                        "type": "array",
                        "description": "Keep exact public team-size ranges, for example 1-10, 11-50, or 51-100.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum startup profiles",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop after this many matching startup company records are saved.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Maximum directory pages",
                        "minimum": 1,
                        "maximum": 737,
                        "type": "integer",
                        "description": "Maximum number of 15-profile directory pages to inspect per directory URL. Raise this for selective filters.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
