# Wellfound Featured Lists with Funding and Curator Notes (`gubidonius/wellfound-featured-lists`) Actor

Wellfound's curated company lists and everything in them: the curator's own write-up of each company, total funding raised, social links, size, stage and open jobs today. Ask for a list by name, or take the newest from the directory of about 200.

- **URL**: https://apify.com/gubidonius/wellfound-featured-lists.md
- **Developed by:** [Gregory Bolshakov](https://apify.com/gubidonius) (community)
- **Categories:** Lead generation, Business, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Wellfound Featured Lists with Funding and Curator Notes

Reads Wellfound's curated company lists and everything in them. The curator's own write-up of
each company, total funding raised, social links, size, stage and open jobs today. No key and
no login.

### What is in a list that is nowhere else

Wellfound publishes about 200 featured lists. Each one holds five to twenty five companies
that a person picked, in an order that person chose, with a paragraph they wrote about each.

That paragraph is `curatorComment` and it exists on no other Wellfound page. So does
`totalRaisedUsd`, the funding total, which the startup index does not carry.

You also get Twitter, LinkedIn, Facebook, blog and Product Hunt links where Wellfound has
them.

### These lists are historical

A list from 2022 still says 2022. The companies in it are read today, so `openJobs` and
`activelyHiring` are current while the curation is not. On an older list most companies have
stopped hiring, and `openJobs` comes back zero.

Zero means zero. Empty means Wellfound published no count. Set `hiringOnly` to keep only the
companies hiring right now, and the run summary says how many that dropped.

### A list name it does not know

Ask for a list that does not exist and Wellfound answers with HTTP 200, the page furniture,
and nothing where the list should be. Every detail page also carries a strip of four other
lists at the bottom, so a tool reading the first list-shaped thing on the page finds four
lists and looks like it worked.

This Actor reads the collection by the name you asked for, treats an empty one as missing
rather than as empty, says so in the run summary, and charges you nothing for it.

### Where the job count comes from

Wellfound puts the company's open job total in a different place on a list page than on the
startup index. On a list page the count object holds only the split by role, and the total
sits on the job list. `openJobsFrom` on every row says which of its own numbers answered.

### Input

| Field | What it does |
|---|---|
| `listSlugs` | List names or links. Leave empty to take them from the directory |
| `maxLists` | How many lists to read when you name none |
| `maxResults` | Upper bound for the whole run, across every list |
| `hiringOnly` | Keep only companies hiring today |

### Output

One row per company per list. A company in two lists gives you two rows, because the curator's
comment is different.

`RUN_SUMMARY` in the key value store holds how many lists Wellfound publishes, which ones were
read, how many companies each gave, and any name that does not exist.

### Price

0.002 dollars per run and 0.003 dollars per company. Both are charged after the rows exist, so
a run that finds nothing costs nothing.

# Actor input Schema

## `listSlugs` (type: `array`):

List names or links, for example yc-startups-that-are-aggressively-hiring. Leave empty to take the first lists from the directory instead. A name Wellfound does not publish is skipped and reported, never charged.

## `maxLists` (type: `integer`):

Used only when no lists are named. Wellfound publishes about 200 and the run summary says how many it found.

## `maxResults` (type: `integer`):

Upper bound on companies for the WHOLE run, across every list. You are never charged for more than this.

## `hiringOnly` (type: `boolean`):

Keep only companies carrying the Actively Hiring badge now. These lists are historical, so this drops a lot on an older one. The count dropped is in the run summary.

## Actor input object example

```json
{
  "listSlugs": [],
  "maxLists": 3,
  "maxResults": 60,
  "hiringOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "listSlugs": [],
    "maxLists": 3,
    "maxResults": 60
};

// Run the Actor and wait for it to finish
const run = await client.actor("gubidonius/wellfound-featured-lists").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "listSlugs": [],
    "maxLists": 3,
    "maxResults": 60,
}

# Run the Actor and wait for it to finish
run = client.actor("gubidonius/wellfound-featured-lists").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "listSlugs": [],
  "maxLists": 3,
  "maxResults": 60
}' |
apify call gubidonius/wellfound-featured-lists --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gubidonius/wellfound-featured-lists"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5OF3M9O1hdtZyNoPh/builds/QiauwM8QPygxN7VZP/openapi.json
