TheHub Nordic Startup Directory Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| 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
- Open the Actor input page.
- Keep the prefilled VhAT profile for a one-company test, or add
https://thehub.io/startupsfor discovery. - Add optional keywords or exact filters.
- Set a low
maxItemsvalue for the first run. - Set
maxPageshigh enough for selective directory filters. - Click Start.
- Review the Nordic startups dataset table.
- 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/startupshttps://thehub.io/startups?page=2https://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
maxPagesfor narrow filters. - π Use direct profile URLs for deterministic enrichment.
- π Store
scrapedAtwhen comparing snapshots over time. - π§Ή Deduplicate downstream on
profileUrlif 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 ApifyClientclient = 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().itemsprint(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.
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
- Company Domain Finder
- Email Pattern Finder
- 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.