TheHub.io Scraper avatar

TheHub.io Scraper

Pricing

from $0.79 / 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. Deep company profiles, structured salary, geo-coordinates, full descriptions, batch searches, and compact mode. Filter by keyword, country, job type and remote. $0.99/1,000 results.

Pricing

from $0.79 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

2

Monthly active users

2 days ago

Last modified

Share

TheHub.io Scraper

Extract job listings from TheHub.io, the leading Nordic startup job board, with structured salary, geo-coordinates, company profiles, and full descriptions. Runs against the public API, no proxy or API key required.


Why this scraper?

🎯 Nordic startups

A dedicated TheHub.io scraper covering the Danish, Swedish, Norwegian, Finnish, and wider European startup ecosystem in one input.

🏢 Deep company data

Every job carries the hiring company's profile: name, website, logo, size, funding stage, founding year, industries, business models, and LinkedIn ID.

💶 Structured salary

Annual, monthly, and hourly ranges are returned as separate fields, with currency and period parsed from the listing where the source publishes them.

📍 Real coordinates

Latitude and longitude come straight from the source, ready for mapping and radius analysis without a separate geocoding step.

🔁 Batch searches

Run several keyword searches in one run. They share one dataset, one dedup state, and one run start, so a batch costs less than the same searches run separately.

📦 Compact mode

Return a reduced core-field payload for AI agents and MCP pipelines, ready to pipe into an ATS or LLM context without stripping extra fields.


Input parameters

ParameterTypeDefaultDescription
searchQuerystringdeveloperJob title, skill, or keyword. Empty returns all jobs.
searchQueriesarray(empty)Several keyword searches in one run, sharing one dataset and dedup state. Overrides searchQuery.
countryCodestring(empty)Two-letter ISO country code (e.g. DK, SE, NO, FI, DE). Empty for all.
isRemotebooleanfalseReturn only remote positions.
jobTypesarray(empty)One or more of full-time, part-time, internship, cofounder, freelance. Empty for all.
compactbooleanfalseReturn a reduced core-field payload for AI agents and MCP pipelines.
skipRepostsbooleanfalseSkip listings seen in earlier runs (90-day window). Enable for new-only feeds.
maxResultsinteger100Maximum results across all searches. 0 for no limit.

Output schema

Every field below is present on every record in full mode. Fields the source does not publish for a given job are returned as null. Compact mode returns a reduced subset.

FieldTypeDescription
idstringTheHub.io job ID.
slugstring|nullURL slug of the listing.
urlstringDirect link to the job.
titlestringJob title.
companyIdstring|nullHiring company ID.
companyNamestring|nullCompany name.
companySlugstring|nullCompany URL slug.
companyWebsitestring|nullCompany website.
companyLogostring|nullCompany logo URL.
companySizestring|nullEmployee-count band (e.g. 1-10).
companyFoundednumber|nullYear the company was founded.
companyStagestring|nullCompany stage (e.g. growth).
companyFundingstring|nullFunding stage (e.g. seed).
companyLinkedinIdnumber|nullCompany LinkedIn ID.
companyIndustriesarrayIndustry tags.
companyBusinessModelsarrayBusiness-model tags.
citystring|nullCity.
routestring|nullStreet name, where published.
postalCodestring|nullPostal code, where published.
countrystring|nullCountry name.
countryCodestring|nullTwo-letter country code.
locationAddressstring|nullFull address string.
latitudenumber|nullLatitude.
longitudenumber|nullLongitude.
isRemoteboolean|nullWhether the role is remote.
jobTypesarrayEmployment types (e.g. full-time).
equitystring|nullEquity offered, where disclosed.
applicationCriteriaarrayRequired application items (e.g. linkedin, cv).
emailstring|nullContact email, where published.
phonestring|nullContact phone, where published.
salarystring|nullRaw salary text, where meaningful.
salaryMinnumber|nullMinimum salary (primary range).
salaryMaxnumber|nullMaximum salary (primary range).
salaryMonthlyMinnumber|nullMinimum monthly salary.
salaryMonthlyMaxnumber|nullMaximum monthly salary.
salaryHourlyMinnumber|nullMinimum hourly rate.
salaryHourlyMaxnumber|nullMaximum hourly rate.
salaryCurrencystring|nullSalary currency (e.g. DKK).
salaryPeriodstring|nullyearly, monthly, weekly, daily, or hourly.
descriptionstring|nullFull job description, HTML.
descriptionMarkdownstring|nullFull description as Markdown.
statusstring|nullListing status (e.g. ACTIVE).
isFeaturedbooleanWhether the listing is featured.
viewsWeeknumber|nullViews in the past week.
viewsTotalnumber|nullTotal views.
socialImageUrlstring|nullSocial share image URL.
publishedAtstring|nullPublish timestamp.
createdAtstring|nullCreation timestamp.
approvedAtstring|nullApproval timestamp.
expirationDatestring|nullListing expiry date.
changeStatusstring|nullChange status across runs (NEW / UPDATED / UNCHANGED).
contentHashstring|nullStable hash of core fields, for change tracking.
sourcestringAlways TheHub.io.
scrapedAtstringISO timestamp when scraped.

Example record

{
"id": "6a2ab4ce37958933f39ce11b",
"slug": "digital-konsulent",
"url": "https://thehub.io/jobs/6a2ab4ce37958933f39ce11b",
"title": "Digital Konsulent",
"companyId": "5bda47fd3adefc9b12854b51",
"companyName": "Gneis Agency",
"companySlug": "xlife-media",
"companyWebsite": "http://www.gneisagency.com",
"companyLogo": "https://thehub-io.imgix.net/files/s3/66f32a58f0095bb22d0fe056",
"companySize": "1-10",
"companyFounded": 2023,
"companyStage": "growth",
"companyFunding": "seed",
"companyLinkedinId": 102352384,
"companyIndustries": ["itsoftware", "saas", "advertising", "sales"],
"companyBusinessModels": ["companies"],
"city": "København",
"route": "Bredgade",
"postalCode": "1260",
"country": "Denmark",
"countryCode": "DK",
"locationAddress": "Bredgade 20A, 1260 København, Denmark",
"latitude": 55.6760968,
"longitude": 12.5683371,
"isRemote": false,
"jobTypes": ["full-time"],
"equity": null,
"applicationCriteria": ["linkedin", "cv"],
"email": "jobs@gneisagency.com",
"phone": null,
"salary": "31000 - 39000 DKK/Monthly",
"salaryMin": 31000,
"salaryMax": 39000,
"salaryMonthlyMin": null,
"salaryMonthlyMax": null,
"salaryHourlyMin": null,
"salaryHourlyMax": null,
"salaryCurrency": "DKK",
"salaryPeriod": "monthly",
"description": "<h4>About the role</h4><p>...</p>",
"descriptionMarkdown": "#### About the role\n\n...",
"status": "ACTIVE",
"isFeatured": false,
"viewsWeek": 78,
"viewsTotal": 2080,
"socialImageUrl": "https://thehub-io.imgix.net/jobs/6a2ab4ce37958933f39ce11b/social.png",
"publishedAt": "2026-05-12T09:17:04.875Z",
"createdAt": "2026-06-11T13:14:54.273Z",
"approvedAt": "2026-06-12T06:42:54.354Z",
"expirationDate": "2026-07-11",
"changeStatus": "NEW",
"contentHash": "9f3c1a2b7e0d4a58",
"source": "TheHub.io",
"scrapedAt": "2026-07-06T14:20:00.000Z"
}

Examples

Developer jobs in Denmark

{
"searchQuery": "developer",
"countryCode": "DK",
"maxResults": 100
}

Remote full-time roles

{
"isRemote": true,
"jobTypes": ["full-time"],
"maxResults": 200
}

Batch of role searches in one run

{
"searchQueries": ["frontend developer", "product designer", "growth"],
"maxResults": 300
}

Compact output for an AI pipeline

{
"searchQuery": "engineer",
"compact": true,
"maxResults": 100
}

Schedule any of these to run daily in the Apify Scheduler, and enable skipReposts to receive only new listings each run.


💰 Pricing

$0.99 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged, and an over-filtered query that returns nothing costs nothing.

ResultsCost
100~$0.10
1,000~$0.99
10,000~$9.90
100,000~$99.00

Use the Max results cap in the input to control your spend exactly.


Performance

Run sizeTypical time
100 resultsunder 1 minute
1,000 results3–5 minutes
Full listing set5–10 minutes

The actor reads TheHub.io's public JSON API directly, so runs are fast and need no proxy.


Known limitations

  • Many listings show "competitive" rather than a numeric salary; those return null salary numbers, though currency and period are still parsed when present.
  • Contact email and phone are only present where the employer publishes them.
  • The source covers startup and scale-up roles, concentrated in the Nordics and Northern Europe; it is not a general job board.

Technical details

  • Source: TheHub.io — Nordic startup job board
  • Coverage: all active job listings, filterable by keyword, country, job type, and remote
  • Deduplication: 90-day repost detection plus a per-record contentHash for change tracking
  • Retry: automatic retry with exponential backoff on network errors

Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl