TheHub.io Scraper avatar

TheHub.io Scraper

Pricing

from $2.49 / 1,000 results

Go to Apify Store
TheHub.io Scraper

TheHub.io Scraper

Scrape job listings from TheHub.io — the leading Nordic startup job board. Filter by keyword, country, job type and remote. $2.49 per 1,000 results.

Pricing

from $2.49 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Extract job listings from TheHub.io — the leading job board for Nordic startup careers (Denmark, Sweden, Norway, Finland and beyond). Collect job title, company info, location, salary, description and more with no browser required.

TheHub.io Scraper

Features

  • 🔍 Keyword search — filter by role, skill or any keyword
  • 🌍 Country filter — scope results to any country (DK, SE, NO, FI, DE, …)
  • 🏠 Remote filter — show only remote-friendly positions
  • 💼 Job type filter — full-time, part-time, freelance, internship, cofounder
  • 🔁 Cross-run deduplication — skip jobs already seen in previous runs (90-day TTL)
  • 💰 Structured salary data — numeric salaryMin/salaryMax fields, no regex required
  • Fast & lightweight — HTTP-only, no browser overhead

Pricing

$2.49 per 1,000 results. TheHub.io currently lists ~1,000+ jobs. A full crawl costs under $0.25.

Input parameters

ParameterTypeDefaultDescription
searchstring""Keyword filter (e.g. "backend engineer")
countryCodestring""2-letter ISO country code (e.g. "DK", "SE")
isRemotebooleanfalseShow only remote positions
jobTypesarray[]Employment type: full-time, part-time, freelance, internship, cofounder
maxItemsinteger0Max results to return (0 = no limit)
skipRepostsbooleantrueSkip jobs seen in previous runs

Example input — full-time engineering jobs in Denmark

{
"search": "engineer",
"countryCode": "DK",
"jobTypes": ["full-time"],
"maxItems": 100,
"skipReposts": true
}

Example input — all remote jobs

{
"isRemote": true,
"skipReposts": false
}

Output format

Each item in the dataset represents one job listing:

{
"id": "69c4e1e58bf9c4879b0a650b",
"url": "https://thehub.io/jobs/69c4e1e58bf9c4879b0a650b",
"title": "Senior Backend Engineer",
"companyId": "604737252852bb5ec098a86a",
"companyName": "Acme Startup",
"companyWebsite": "https://acme.io",
"companySize": "11-50",
"companyStage": "Series A",
"companyFunding": "series-a",
"companyIndustries": ["SaaS", "FinTech"],
"city": "Copenhagen",
"country": "Denmark",
"countryCode": "DK",
"locationAddress": "Copenhagen, Denmark",
"isRemote": false,
"jobTypes": ["full-time"],
"equity": null,
"description": "<p>We are looking for...</p>",
"salary": "range",
"salaryMin": 50000,
"salaryMax": 70000,
"salaryCurrency": null,
"salaryPeriod": null,
"publishedAt": "2026-03-26T13:59:40.136Z",
"createdAt": "2026-03-26T07:36:05.031Z",
"scrapedAt": "2026-04-09T11:00:00.000Z"
}

Field reference

FieldTypeDescription
idstringTheHub.io internal job ID
urlstringDirect link to the job listing
titlestringJob title
companyIdstringCompany ID
companyNamestringCompany name
companyWebsitestringCompany website URL
companySizestringEmployee count range (e.g. "11-50")
companyStagestringStartup stage (e.g. "Series A")
companyFundingstringFunding stage key
companyIndustriesarrayIndustry tags
citystringCity
countrystringCountry name derived from countryCode (always consistent with it)
countryCodestringISO 2-letter country code (company country — consistent with country)
locationAddressstring|nullFull location string from source (may differ from company country for remote roles)
isRemotebooleanWhether the role is remote
jobTypesarrayEmployment types (full-time, part-time, freelance, internship, cofounder)
equitystring|nullEquity offering, or null if undisclosed
descriptionstringFull job description (HTML)
salarystring|nullSalary type string from source (competitive, range, unpaid)
salaryMinnumber|nullMinimum salary (numeric)
salaryMaxnumber|nullMaximum salary (numeric)
salaryCurrencynullCurrency not exposed by source
salaryPeriodnullPeriod not exposed by source
publishedAtstringISO 8601 publication date
createdAtstringISO 8601 creation date
scrapedAtstringISO 8601 scrape timestamp

Note on location fields: TheHub.io allows remote jobs to specify where candidates can work from, which may differ from the company's country. country and countryCode always reflect the company's country (used for API filtering). city and locationAddress reflect what the employer entered as the job location — for fully-remote jobs this may be a candidate country/city, or empty.

💰 Structured salary data — machine-ready

Salary is returned as numeric fields — no regex required on your end:

FieldTypeExample
salaryMinnumber|null50000
salaryMaxnumber|null70000
salaryCurrencynullSource does not expose currency
salaryPeriodnullSource does not expose period

Most competing scrapers return salary as a raw string, leaving the parsing to you. This scraper delivers numeric fields directly — ready for WHERE salaryMin > 50000 queries or salary distribution analysis. Note: TheHub.io does not publish currency or period in its data feed; the numeric values are in the company's local currency.

Cross-run deduplication

When skipReposts is true (default), jobs already collected in previous runs are skipped using a 90-day fingerprint cache. This is useful for incremental pipelines where you want only new postings.

Performance

MetricValue
Full crawl (~1,000 jobs)~2 minutes
Memory256 MB
Requests1 per 15 jobs (no detail fetches needed)

Notes

  • TheHub.io is primarily a Nordic startup job board; most listings are in Denmark, Sweden, Norway and Finland.
  • Salary numbers are present only when the company chooses to disclose them. The salary field indicates the type: competitive (no figures), range (min/max available), or unpaid (internship/volunteer).
  • The jobTypes filter only supports a single value per run (API limitation).