Wellfound Startups | Hiring Company Research avatar

Wellfound Startups | Hiring Company Research

Pricing

$3.00 / 1,000 companies

Go to Apify Store
Wellfound Startups | Hiring Company Research

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

Nick McNemar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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

  1. Open Input, switch to JSON and paste the example below. Replace the example roles with your own research targets when ready.
  2. Check the live Pricing tab and set a run spending limit.
  3. Run the Actor, then open the Workflow output view. Inspect name, slug, url.
  4. 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:

FieldMeaning
name, slug, urlCompany name and its Wellfound company page
logoUrlCompany logo
pitchThe company's one-line description
sizeHeadcount band, e.g. 11-50, 51-200
stageFunding stage badge, e.g. Seed, Series A, Public
activelyHiringWhether Wellfound shows the actively-hiring badge
ycFundedWhether the company shows the Y Combinator badge
businessModelB2B, B2C or both
badgesEvery badge label Wellfound shows for the company
openJobsFound, openJobsHow 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, searchRemoteWhich feed the company was found in
sourceUrl, scrapedAtThe 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

  1. Enter one or more Job roles — Wellfound slugs like software-engineer, product-manager, data-scientist, or plain names, which are converted for you.
  2. Optionally add Locations (new-york, london, san-francisco) and choose whether you want Remote roles only.
  3. 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.
  • openJobsFound counts 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