Wellfound Startups | Hiring Company Research
Pricing
$3.00 / 1,000 companies
Wellfound Startups | Hiring Company Research
Find unique Wellfound companies from public job feeds by role, location and remote filter. Export company profiles for startup research. This is a hiring-company sample, not a complete directory of startups.
Pricing
$3.00 / 1,000 companies
Rating
0.0
(0)
Developer
Nick McNemar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Find startups hiring for a selected role
Wellfound Startups: Find unique Wellfound companies from public job feeds by role, location and remote filter. Export company profiles for startup research. This is a hiring-company sample, not a complete directory of startups.
Start with a small example
- Open Input, switch to JSON and paste the example below. Replace the example roles with your own research targets when ready.
- Check the live Pricing tab and set a run spending limit.
- Run the Actor, then open the Workflow output view. Inspect
name,slug,url. - Export JSON for nested data or CSV for a spreadsheet. Review a small sample before increasing the scope.
{"roles": ["software-engineer"],"maxItems": 20,"remoteOnly": true}
At the rate checked September 9, 2026, 20 saved rows cost $0.060 in Actor event fees ($3.00 per 1,000 rows). Actual returned rows determine the event fee. Taxes and other account services may be separate.
What can I use it for?
- Startup lead generation. Companies actively hiring are companies spending money — on tools, recruiting, payroll, benefits, offices. Filter by size and stage to match your ideal customer.
- Investor and market research. See which sectors and stages are growing headcount, and which startups are hiring for what.
- Recruiting and talent marketplaces. Find the startups hiring for the roles you place, with the roles themselves attached.
- Competitive intelligence. Track which competitors are hiring, for which functions, and how fast their open-role count moves.
- Job seekers and career sites. Build curated lists of companies hiring remotely for a given role, updated on a schedule.
What data does it return?
One record per startup, aggregated across every listing page the actor reads, so a company hiring for five roles appears once with all five attached:
| Field | Meaning |
|---|---|
name, slug, url | Company name and its Wellfound company page |
logoUrl | Company logo |
pitch | The company's one-line description |
size | Headcount band, e.g. 11-50, 51-200 |
stage | Funding stage badge, e.g. Seed, Series A, Public |
activelyHiring | Whether Wellfound shows the actively-hiring badge |
ycFunded | Whether the company shows the Y Combinator badge |
businessModel | B2B, B2C or both |
badges | Every badge label Wellfound shows for the company |
openJobsFound, openJobs | How many open roles were found for the company in this run, and each role's id, title, URL, compensation text, remote flag and location |
searchRole, searchLocation, searchRemote | Which feed the company was found in |
sourceUrl, scrapedAt | The listing page it came from and when |
Illustrative output
Values explain the output shape; they are not a live result or guaranteed field coverage.
{"name": "Constructor.io","slug": "constructor-io","url": "https://wellfound.com/company/constructor-io","logoUrl": "https://photos.wellfound.com/startups/i/...-medium_jpg.jpg","pitch": "AI-first product discovery for ecommerce","size": "201-500","stage": "Series A","activelyHiring": true,"ycFunded": false,"businessModel": "B2B","badges": ["Actively Hiring", "B2B", "Series A", "Growth Stage"],"openJobsFound": 2,"openJobs": [{ "id": "4263159", "title": "Software Engineer: Core", "url": "https://wellfound.com/jobs/4263159-software-engineer-core", "compensation": "$150k – $230k • 0.05% – 0.2%", "remote": true, "location": "Remote" }],"searchRole": "software-engineer","searchLocation": null,"searchRemote": true,"scrapedAt": "2026-09-05T06:40:12.104Z"}
How to use it
- Enter one or more Job roles — Wellfound slugs like
software-engineer,product-manager,data-scientist, or plain names, which are converted for you. - Optionally add Locations (
new-york,london,san-francisco) and choose whether you want Remote roles only. - Set Max companies and click Start. Download from the Output tab as JSON, CSV or Excel, or read the dataset via the API.
Input example
{"roles": ["software-engineer", "product-manager"],"locations": [],"remoteOnly": true,"maxItems": 200}
How it works
Wellfound's role and location pages are server-rendered with the full search payload embedded in the page, including every company shown and the roles it is hiring for. The actor requests each page of a feed once, parses that payload, and merges companies across pages so each one is returned once with all its open roles. Nothing is executed, no session is created and no company profile pages are fetched — those sit behind a security check and stay out of scope, so the fields returned are exactly the ones Wellfound shows in its listings.
Wellfound serves at most 47 pages per feed. For broader coverage, run several roles or locations in one input; results are still deduplicated across feeds.
Pricing
You pay per company saved. There are no subscriptions or minimums, and you can cap the maximum spend of any run before it starts. Because companies are deduplicated across pages and feeds, you do not pay twice for the same startup within that run in one run.
Scope and responsible use
The actor reads only the public listing pages Wellfound serves to any visitor. It does not log in, does not use cookies or credentials, does not fetch company profile or job detail pages, and does not attempt to bypass any security check. You are responsible for using the results in accordance with the laws that apply to you and the terms of the websites involved.
Limitations
- Fields are limited to what the listing payload contains: there is no founder list, funding total, website URL or headquarters — those live on company profile pages, which are out of scope.
- A feed returns at most 47 pages; use several roles or locations to widen coverage.
openJobsFoundcounts the roles seen in the feeds you searched, not every role the company has open.- An unknown role or location slug is reported as a warning and skipped; check the slug against the URL of the matching Wellfound page.
Something missing?
Open an issue on this actor's Issues tab with the role or company and the field you expected. Include a small public input and expected behavior so the issue can be investigated.
Interpret empty results and errors
Check the run status and log if no records are returned. Restrictive filters, inaccessible content or a changed source page can produce an empty result; empty output does not prove there are no matching records on the source.
Billing follows saved job or company rows. Disclosed salary and optional fields may be missing. Proxy selection and run duration can affect operating costs. Do not increase concurrency or enable a more expensive proxy merely to work around an unclear result.
For a reproducible problem, open this Actor’s Issues tab with a small public input, expected behavior and relevant error text. Remove tokens and confidential information. No response-time or uptime guarantee is offered.
Use the result in an automation
In Make or n8n, use the Apify integration to run this Actor with the same JSON input, wait for completion, then retrieve its default dataset. Route failed runs and error rows to a review step before sending valid results to your spreadsheet or CRM. Scheduling does not make these Actors emit only new records: deduplicate downstream using the source URL or record ID.
For Node.js, install the official apify-client package and set your own APIFY_TOKEN environment variable. The following example starts a paid run with a small spending limit.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"roles": ["software-engineer"],"maxItems": 20,"remoteOnly": true};const run = await client.actor('keystonelabs/wellfound-startups-scraper').call(input, {memory: 512, timeout: 180, maxTotalChargeUsd: 0.10});if (run.status !== 'SUCCEEDED') throw new Error('Run did not succeed: ' + run.id);const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 100 });console.log(items);
The first 100 rows are retrieved in this example. Use the dataset API pagination for a larger result. Keep credentials out of shared inputs and source files.
A useful next step
- Wellfound Jobs Scraper | Remote Roles & Salaries: build a remote startup-job shortlist. This is a separate Actor with its own input and price.