Startup.jobs Scraper
Pricing
from $0.80 / 1,000 results
Startup.jobs Scraper
Extract comprehensive job data from Startup.jobs instantly. Ideal for tracking startup hiring trends and opportunities. This actor is optimized for stability and works great without proxy, ensuring seamless data collection at no extra cost.
Pricing
from $0.80 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
3
Bookmarked
102
Total users
14
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Startup Jobs Scraper do?
Startup Jobs Scraper collects live job listings from startup.jobs, a job board for startups and tech companies. Run it with a location such as Remote, a country, or a city, and it returns job titles, companies, salaries, locations, posting dates, tags, and application links in one dataset.
The default run collects 20 remote jobs. You can search by keyword, paste a filtered startup.jobs listing URL, or filter by country and city. Each record keeps the original job link, so you can open the posting or send it to another tool.
Why use Startup Jobs Scraper?
Job boards change, listings expire, and copying rows by hand does not scale. This actor turns the board into a repeatable dataset you can schedule, export, and connect to your own systems.
- Collect startup roles across engineering, product, design, sales, marketing, operations, finance, and support.
- Filter by remote work, country, city, employment type, posting age, and experience level when the source exposes those filters.
- Keep salary fields, company details, location parts, and role tags that the listing page shows.
- Run the same search on a schedule to track new openings and hiring trends.
- Export to CSV, Excel, JSON, or XML from the Apify dataset.
It is useful for recruiting research, compensation checks, job alerts, market maps, and datasets for internal dashboards.
What data can you extract from Startup Jobs?
| Field | Description |
|---|---|
title | Job title |
company | Hiring company |
location | Job location, or Remote when the listing is remote |
job_type | Human-readable employment type, such as Full Time |
salary | Salary range in the format shown by the source |
posted_at | Publication date in ISO format |
url | Job page on startup.jobs |
apply_link | Application link, normally the same job page |
company_logo | Company logo URL when available |
tags | Role, function, and seniority tags |
workplace_type | Remote, hybrid, or on-site |
employment_type | Published employment type code |
experience_bucket | Experience range when the listing provides one |
salary_min, salary_max | Numeric salary bounds |
salary_currency | Salary currency code |
salary_interval | Pay period, such as year or month |
salary_min_usd, salary_max_usd | USD conversions when available |
has_salary | Whether the listing publishes a salary |
city, country, country_code | Location details |
location_parts | Structured city, state, and country parts |
company_slug, company_id | Company identifiers |
role_ids | Role category identifiers |
published_at_unix, created_at_unix | Unix timestamps for sorting |
geo_lat, geo_lng | Coordinates when the source provides them |
highlighted | Whether the listing is promoted |
description_text | Cleaned full description from the job page, or a short feed summary |
description_source | job-page, feed-summary, or absent when no description is available |
ai_overview | Listing summary when the source provides one |
fetched_at | Time the actor collected the record |
source | Which source produced the record |
missing_fields | Core fields that were unavailable for that listing |
How to use Startup Jobs Scraper
- Open the actor in Apify Console.
- Leave
locationas Remote, or enter a country name, a two-letter country code, or a city. - Add a keyword if you want a narrower search.
- Set
results_wantedand, if needed,max_pages. - Start the run and open the dataset when it finishes.
You do not need an account on startup.jobs or an API key. Full descriptions are read from each job page by default.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | A startup.jobs listing URL with filters such as q, w, c, since, or exp. Its filters replace keyword and location. |
keyword | String | No | "" | Job title or skill to search for. |
location | String | No | Remote | Remote, a country name, a two-letter country code, or a city. |
results_wanted | Integer | No | 20 | Maximum number of jobs to save, from 1 to 500. |
max_pages | Integer | No | 3 | Maximum result pages to request. Each page holds up to 100 jobs. |
include_descriptions | Boolean | No | true | Fetch full descriptions from job pages as cleaned text. Adds one request per job. |
proxyConfiguration | Object | No | {} | Apify Proxy, custom proxy URLs, or no proxy. |
Usage Examples
Collect remote jobs
This run uses the default remote filter and saves 20 jobs.
{"location": "Remote","results_wanted": 20}
Search a role in a country
This run searches for data engineer roles in Germany and saves up to 50.
{"keyword": "data engineer","location": "Germany","results_wanted": 50,"max_pages": 3}
Collect descriptions without a key
This run reads each job page once and saves the full description as cleaned text.
{"location": "Remote","results_wanted": 20,"include_descriptions": true}
Use a listing URL
This run follows the filters already present in the URL. The keyword and location inputs are ignored.
{"startUrl": "https://startup.jobs/remote-jobs?w=remote&q=product+manager&since=7d","results_wanted": 30}
Sample Output
{"id": "6654883","title": "Senior Full Stack Engineer","company": "Solace","location": "Remote","job_type": "Full Time","salary": "$150k – $200k","posted_at": "2026-10-22T16:50:56Z","company_logo": "https://startup.jobs/logos/34127","apply_link": "https://startup.jobs/senior-full-stack-engineer-solace-6654883","url": "https://startup.jobs/senior-full-stack-engineer-solace-6654883","source": "listing-api","fetched_at": "2026-10-29T06:13:52.968Z","tags": ["Engineer", "Full Stack", "Senior"],"description_text": "You are an experienced engineer who can identify problems and architect the highest-quality solutions.","description_source": "job-page","workplace_type": "remote","employment_type": "full-time","salary_min": 150000,"salary_max": 200000,"salary_currency": "USD","salary_interval": "year","salary_min_usd": 150000,"salary_max_usd": 200000,"has_salary": true,"country": "United States","country_code": "US","company_slug": "solace","published_at_unix": 1792687856,"compact_salary_range": "$150k – $200k"}
Tips for best results
Start with 20 jobs to check the fields and the location behavior. Raise results_wanted after that.
Remote searches use the source's remote filter, so every page is already remote. Country names and codes are resolved to a country filter, and cities use a distance filter around the city center. Very small towns may return few jobs because the source may not have a matching place record.
Keep max_pages at 3 for a 300 job ceiling, or raise it to 5 for the full 500 job ceiling. The source stops returning results after 500 hits for a single query, so larger page counts do not add more.
If a listing has no salary, the source did not publish one. The actor leaves the field out and adds it to missing_fields instead of inventing a value.
A few listings have no description on their page. Those records keep their listing fields, and the run log reports how many pages had no readable description.
The run log reports Full descriptions: X/Y so you can confirm the descriptions arrived before exporting. Description pages add one request per job; keep test runs small or set include_descriptions to false for a listing-only run.
Integrations
- Google Sheets - Send each run to a spreadsheet for review.
- Airtable - Build a searchable job database.
- Webhooks - Trigger job alerts or internal workflows after a run.
- Make or Zapier - Route new listings to Slack, email, or a CRM.
- Apify API - Pull datasets into your own application.
Export formats
Datasets can be downloaded as JSON, CSV, Excel, XML, and other formats supported by Apify.
Frequently Asked Questions
Do I need an account or API key?
No. The actor collects public listings and reads job pages without credentials. There is no key or login input.
How many jobs can one run collect?
Up to 500. The source caps a single query at 500 hits, and the actor requests at most 100 jobs per page. results_wanted sets the final limit.
Can I collect full job descriptions?
Yes. The actor reads each job page once and saves the description as cleaned text in description_text, with description_source set to job-page. No key is required, and the description HTML is not stored.
Does the actor visit each job page?
Only when full descriptions are enabled. The actor fetches each job page once and parses its structured data. It does not render the page in a browser. Set include_descriptions to false for a listing-only run.
Why does a city search return fewer jobs than a country search?
City searches use a radius around the city center, so nearby towns are not mixed in. Country searches use the source's country filter, so the radius limit does not apply.
Why are some salary fields empty?
Some employers do not publish pay. When that happens, salary, salary_min, and salary_max are absent, and missing_fields lists the gaps.
Can I run the actor on a schedule?
Yes. Create an Apify schedule with the input you want to repeat. Scheduled runs keep the same filters and result limit.
Can I export the dataset to CSV or Excel?
Yes. Open the dataset in Apify Console and choose the export format, or use the Apify API to download it.
Is it legal to collect these jobs?
Startup.jobs publishes these listings for public viewing and offers an API and RSS feeds for reuse. Keep the job link and credit Startup Jobs when you republish listings, and follow the site's terms and applicable law.
Support
For issues or feature requests, use the Issues tab on the actor page or contact the developer through Apify.
Legal Notice
This actor is designed for legitimate collection of publicly available job data. Users are responsible for complying with applicable laws, website terms, and data usage rules. When you republish a listing, keep the url field pointing to the original startup.jobs page and credit Startup Jobs as the source.