Startup.jobs Scraper — Jobs API for startup.jobs
Pricing
Pay per usage
Startup.jobs Scraper — Jobs API for startup.jobs
Extract job listings from startup.jobs in real time. Filter by location, role, and date. JSON output. Built for developers.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shaheer Sarfaraz
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
startup-jobs-scraper
startup-jobs-scraper is a Node.js and TypeScript scraper library for startup.jobs. It gives you importable functions for fetching startup job listings, remote jobs, and enriched startup job details, and the same codebase also runs as an Apify Actor.
Why use it
- Scrape
startup.jobsfrom Node.js with a small importable API - Fetch startup job listings with Algolia-backed search
- Optionally enrich each listing by opening the job detail page
- Reuse the same shared code in local scripts, apps, and an Apify Actor
Install
$npm install startup-jobs-scraper
Browser binaries are not downloaded automatically on install. If you want detail-page enrichment, install them explicitly:
$npx playwright install
Usage
import { scrapeStartupJobsViaAlgolia } from 'startup-jobs-scraper';const jobs = await scrapeStartupJobsViaAlgolia({query: 'software engineer',requestedCount: 20,enrichDetails: true,});
This works well for searches like startup software engineer jobs, design jobs, product jobs, remote startup jobs, and location-filtered startup job listings.
API
scrapeStartupJobsViaAlgolia(options) returns an array of normalized job records.
Supported options include:
queryrequestedCountenrichDetailslocationaroundLatLngaroundRadiuspagehitsPerPagesincehasSalarysalaryMinUsdsalaryMaxUsdworkplaceTypeemploymentTypeexperienceBucketfacetFiltersfilters
The scraper now builds Algolia filters for the common startup.jobs fields and still lets you pass raw filters and facetFilters when you need an escape hatch.
const jobs = await scrapeStartupJobsViaAlgolia({query: 'software engineer',location: 'London, United Kingdom',aroundLatLng: '51.5074,-0.1278',aroundRadius: 'all',since: '7d',hasSalary: true,salaryMinUsd: 100000,workplaceType: ['remote'],employmentType: ['full-time'],experienceBucket: ['3-6'],hitsPerPage: 50,page: 0,enrichDetails: false,});
When enrichDetails is false, the library returns records built directly from Algolia hits without loading each job page.
If you pass location without aroundLatLng, the scraper resolves the place name through the startup.jobs Algolia Places index and uses the returned coordinates automatically. If you pass both, aroundLatLng wins.
Returned records include fields such as:
titleemployerjobUrlemployerUrllocationsalarydisciplinesapplicationLinkjobDescription
Example output
[{title: 'Senior Software Engineer',employer: 'Example Startup',jobUrl: 'https://startup.jobs/example-job',employerUrl: 'https://startup.jobs/company/example-startup',location: 'Remote | Europe',salary: '$120,000 - $150,000 per year',disciplines: 'Engineering | full-time',applicationLink: 'https://startup.jobs/apply/example-job',jobDescription: '...'}]
Apify Actor
The same codebase can also run as an Apify Actor, so you can use the shared library locally and deploy the actor version separately.
For local actor-style runs:
$npm run actor:start:dev
Useful environment variables for local runs:
STARTUPJOBS_QUERY="software engineer" \STARTUPJOBS_LOCATION="London, United Kingdom" \STARTUPJOBS_AROUND_RADIUS=25000 \STARTUPJOBS_MAX_RESULTS=70 \npm run actor:start:dev
Keywords
If you found this package while searching for terms like startup jobs scraper, startup.jobs API, remote jobs scraper, startup job listings, or Apify startup.jobs actor, you’re in the right place.