TheHub Nordic Startup Directory Scraper avatar

TheHub Nordic Startup Directory Scraper

Pricing

Pay per event

Go to Apify Store
TheHub Nordic Startup Directory Scraper

TheHub Nordic Startup Directory Scraper

πŸš€ 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.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Build a structured Nordic startup database from public company profiles on TheHub.io.

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?

FieldDescription
namePublic startup/company name
descriptionPublic company description
profileUrlCanonical TheHub profile URL
websitePublic external company website
countryPublic location value
locationPublic location value as displayed
foundedYearFour-digit founding year when available
employeeRangePublic team-size range
industriesArray of public industry labels
marketsArray of public market labels when present
businessModelPublic business model, such as B2B
fundingStatePublic funding state or stage
socialLinksPublic social profile URLs found on the page
contactLinksPublic mailto: or tel: links when present
logoUrlPublic company logo image URL when available
scrapedAtISO 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

{
"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

{
"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

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

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

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:

$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:

{
"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.

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.

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

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.