Skip to content
    ↑↓ to choose · Enter to open

    · 13 min read

    The Hub Startup Jobs Scraper: 19 Data Fields per Record (2026)

    By CrawlerBros Engineering Team

    Each record carries 19 output fields, including job title, company, salary, location, remote flag, and a direct apply URL. This collector scrapes TheHub.io, a European startup job board. A thousand results cost $5.00 on the free plan. Apify's free plan includes $5.00 of monthly usage, which covers up to 1,000 results of this Actor. This Actor is for hiring managers and developers building niche aggregators; it is not for those needing recruiter email addresses or contact details, as these are not available in the public data.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open The Hub Startup Jobs Scraper on Apify and run the prefilled example.

    How reliable is The Hub Startup Jobs Scraper in production?

    Across the last 30 days of public runs on the Apify platform, The Hub Startup Jobs Scraper recorded 63 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 37 58.7%
    Failed 26 41.3%
    Aborted by the user 0 0.0%
    Timed out 0 0.0%
    Total 63 100.0%

    In the last 30 days, about 41 in a hundred runs failed or timed out. This suggests you should implement retries in your workflow when scheduling this Actor unattended. Failures indicate an inability to complete the run as requested, and a retry can often resolve transient issues.

    What does it cost to run The Hub Startup Jobs Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. With 41.3% of runs failing or timing out in the last 30 days, budget for re-running a portion of those batches rather than assuming every run completes.

    The maxItems control directly influences your result charges, as these are calculated per dataset item. For example, a run with maxItems set to 50 will cost at most $0.25 in result charges. This makes it affordable to run a small test to confirm the output structure before running larger extractions. Each run start also incurs a fee, and platform usage is billed separately.

    How do you run The Hub Startup Jobs Scraper from the API?

    The schema marks 1 of its 5 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~thehub-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"searchJobs","query":"developer","remoteOnly":false,"maxItems":50}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "searchJobs",
      "query": "developer",
      "remoteOnly": False,
      "maxItems": 50
    }
    
    run = client.actor("crawlerbros~thehub-jobs-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "searchJobs",
      "query": "developer",
      "remoteOnly": false,
      "maxItems": 50
    }
    
    const run = await client.actor('crawlerbros~thehub-jobs-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

    Which The Hub Startup Jobs Scraper inputs matter, and which can you skip?

    The mode control defines the search strategy: 'searchJobs' for keyword queries or 'browseByRole' for category-based browsing. The 'query' field is used with 'searchJobs' for specific keywords, while 'jobRole' is used with 'browseByRole' for predefined categories. For initial runs, it's best to leave 'remoteOnly' as its default 'false' to survey the full range of listings before applying filters.

    • mode (string): What to fetch. Default: "searchJobs".
    • query (string): Keyword or job title to search (mode=searchJobs). E.g. 'developer', 'data scientist', 'designer'. Default: "developer".
    • jobRole (string): Role category to browse.
    • remoteOnly (boolean): Only return remote-eligible jobs. Default: false.
    • maxItems (integer): Hard cap on emitted records. Default: 50.

    Fixed-choice controls: mode accepts searchJobs (Search jobs by keyword), browseByRole (Browse jobs by role); jobRole accepts 12 values, including software-engineer (Software Engineer), frontend-developer (Frontend Developer), backend-developer (Backend Developer), fullstack-developer (Full Stack Developer).

    What does The Hub Startup Jobs Scraper return?

    The returned records are suitable for job aggregators and market analysis, providing structured fields like jobTitle, companyName, salaryMin, and salaryMax when available. These records conspicuously do not contain any recruiter contact details or direct company phone numbers.

    • jobId: Unique TheHub job ID
    • jobKey: URL-friendly job key
    • jobTitle: Job title
    • companyName: Hiring company name
    • companyLogoUrl: Company logo image URL
    • location: Location string (city, country or "Remote")
    • countryCode: ISO country code
    • isRemote: Boolean - whether the job is remote-eligible
    • jobRole: Role category slug (software-engineer, data-scientist, etc.)
    • salaryRange: Formatted salary range
    • salaryMin: Minimum salary (raw number)
    • salaryMax: Maximum salary (raw number)
    • equity: Equity percentage if offered
    • jobDescription: Plain-text job description
    • expirationDate: Job listing expiration date
    • createdAt: Date the listing was created
    • jobUrl: Direct link to the job on TheHub
    • recordType: Always "job"
    • scrapedAt: UTC timestamp of when the record was scraped

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open The Hub Startup Jobs Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Choose between 'searchJobs' and 'browseByRole' using the mode selector, based on whether you have a keyword or a job role category.
    2. If 'searchJobs' is selected for mode, enter your keyword or job title into the query field, for example, 'developer'.
    3. If 'browseByRole' is selected for mode, select an option from the jobRole dropdown such as 'software-engineer' or 'data-scientist'.
    4. Enable the remoteOnly boolean if you specifically need jobs that are marked as remote-eligible.
    5. Set maxItems to a value like 50 for your initial run to verify the output structure before scaling up.
    6. Run the Actor and inspect the dataset to confirm that key fields like jobTitle and jobUrl are consistently present.
    7. Check that salaryRange and equity fields appear for relevant job types, understanding they may be omitted if not provided by the employer.

    How do you apply it? Three worked playbooks

    These are The Hub Startup Jobs Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Startup job boards

    Outcome: Aggregate European startup job listings

    Configure: Set mode to "searchJobs", query to "developer", and maxItems to 500.

    Working method: Execute a run with a broad search term to gather a wide range of current European startup job listings. Review the returned companyName and jobUrl fields to ensure they can be successfully integrated into your external job board platform.

    Deliverable: A JSON dataset containing up to 500 job records, each with a job title, company name, location, and a direct application URL.

    Stop condition: The dataset contains fewer than 10 results for a general keyword, indicating a potential change in the underlying data source or API response.

    Use case 2: Salary benchmarking

    Outcome: Track salary and equity ranges for tech roles

    Configure: Set mode to "browseByRole", jobRole to "software-engineer", and maxItems to 100.

    Working method: Run the Actor targeting a specific jobRole like 'software-engineer' to collect salary data. Filter the output to records that include salaryMin, salaryMax, and equity to calculate market compensation trends for tech roles in Europe.

    Deliverable: A CSV file summarizing job titles, salary ranges (min/max), and equity percentages for selected tech roles.

    Stop condition: More than 70% of the collected records for a specific role are missing salary or equity data, making the sample unreliable for benchmarking.

    Use case 3: Remote job aggregators

    Outcome: Filter and surface remote-first opportunities

    Configure: Set mode to "browseByRole", jobRole to "product-manager", remoteOnly to true, and maxItems to 200.

    Working method: Execute a run with the remoteOnly filter enabled to isolate remote-eligible opportunities within a specific jobRole. Examine the location field to differentiate fully 'Remote' roles from those that are remote within a specific country.

    Deliverable: A structured list of remote-first job postings, including job descriptions and application links, suitable for a remote job aggregator.

    Stop condition: The isRemote field is 'false' for more than 5% of the results, despite the remoteOnly filter being activated.

    What breaks, and how do you design around it?

    • Over the last 30 days, 41.3% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    If your run hits the 500-item maximum, consider running multiple Actor instances with different search criteria. Since salary and equity fields are optional, they are omitted entirely from records where employers do not provide them; your processing should account for their potential absence.

    When should you not use The Hub Startup Jobs Scraper?

    Do not use this Actor if your primary target markets are outside of Europe, as TheHub focuses on Scandinavian and European startups. For broader coverage across multiple European sources, UK Jobs Aggregator might be a better option, as it pulls from several UK and EU job boards. If your application requires transparent tech role data with a a stronger emphasis on global remote work, the Himalayas Remote Jobs Scraper may be a better fit, covering over 100k listings on Himalayas.app. Additionally, if your integration demands a very high success rate for critical, real-time job alerts, you may need to look for an official partner API that offers stronger uptime guarantees or a different data source that is less prone to the fluctuations of web scraping.

    What should you check before trusting the output?

    • Check that the equity field is present only when stock options are offered by the company, as it is omitted otherwise.
    • Verify that the isRemote field accurately reflects 'true' for remote-eligible jobs and is omitted when this status is not specified by TheHub.
    • Confirm that the countryCode field consistently contains valid ISO country codes, such as 'DK' or 'DE', for your target regions.
    • Set up an alert if more than 50% of the returned job records are missing both salaryMin and salaryMax, which may indicate a data source issue.
    • Monitor the createdAt and expirationDate fields to ensure the job listings are current and not significantly older than expected.

    None of this proves a record is correct. It gives a scheduled The Hub Startup Jobs Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the total cost for 1,000 job listings?

    On Apify's free plan, 1,000 results cost $5.00 in result charges. This is in addition to a run-start fee charged every time a run begins, and platform usage billed according to your Apify plan. The result charges apply only to results actually written to the dataset.

    What does the 58.7% success rate mean for my use?

    The telemetry shows that about 41 in a hundred runs failed or timed out in the last 30 days. This means you should build your workflow with retries or smaller input sizes. While the Actor works for many, some runs may not complete successfully, requiring a robust system to handle these outcomes.

    Can I get recruiter contact details with this scraper?

    No. The records returned by this Actor include job metadata such as title, salary, equity, and the direct apply URL. Recruiter names and direct email addresses are not included, as this information is not made available via TheHub's public API.

    How many results can I get for free?

    Apify's free plan includes $5.00 of monthly usage, which covers up to 1,000 results of this Actor at $0.005 per result. This allows you to perform initial testing or small-scale data collection without needing a credit card.

    How often is the job data updated?

    The Actor was last updated on 2026-06-06. It uses TheHub's public JSON API, which generally reflects current active job listings on the platform at the time of the run.

    Where to go next

    When you are ready to run it, open The Hub Startup Jobs Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the The Hub Startup Jobs Scraper Actor page for the current input schema, pricing tier, and run history.

    If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

    Other Actors we maintain for related data:

    • Jobicy Remote Jobs Scraper: Scrape Jobicy.com - a curated remote job board with 1,000+ active listings.
    • NoFluffJobs Remote Tech Jobs Scraper: Scrape NoFluffJobs.com - a transparent IT job board with 3,800+ active remote tech listings.
    • Remote Jobs Scraper: Scrape remote job listings from Jobicy - a curated remote job board with 1,000+ active remote jobs.
    • Himalayas Remote Jobs Scraper: Scrape Himalayas.app, a remote-first startup job board with 100k+ listings.
    • ZipRecruiter Jobs Scraper: Extract job postings from ZipRecruiter.com including title, company, location, salary range, city, state, and apply URL.
    • UK Jobs Aggregator: Aggregate UK and EU job listings from RemoteOK, Arbeitnow, Reed.co.uk, and Adzuna (optional API key for extra countries).
    • Hiring Cafe Jobs Scraper: Extract global job postings from hiring.cafe including title, company, salary, location, remote status, seniority, visa sponsorship, and more.
    • Workable Jobs Scraper: Scrape Workable job boards - search 50,000+ remote and on-site jobs globally, or scrape specific company boards by slug.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-25.

    • Actor last updated by its maintainers on 2026-06-06.

    • Run outcome figures cover the 30 day public window ending 2026-09-25.

    • The Hub Startup Jobs Scraper on Apify

    Featured actors

    The Hub Startup Jobs Scraper

    Scrape TheHub.io - a leading European startup job board with 1,000+ active listings. Search by keyword or browse by job role. Returns job title, company, salary, location, remote flag, and a direct apply URL. Uses the public TheHub JSON API.

    Run on Apify ↗