# Wellfound Jobs Scraper (`trev0n/wellfound-scraper`) Actor

Scrape Wellfound startup jobs by role and location: salary and equity ranges, experience, remote setup, full descriptions and company size, stage and funding. Optional visa, relocation and Glassdoor details. Monitoring mode emits only new jobs.

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

## Pricing

from $1.99 / 1,000 results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🚀 Wellfound Jobs Scraper

🎯 **Every startup job on Wellfound (formerly AngelList Talent) in one clean dataset: salary, equity, experience, remote setup and the company behind it.**

Pick roles and locations and get each matching job with its full description, salary and equity ranges, required years of experience, remote policy, and the hiring company's size, stage, logo, tagline and funding signals (YC-backed, top investors, $1B+ valuation). If you want more, it also opens each job page for visa sponsorship, relocation, office coordinates, company website, industries, benefits and Glassdoor ratings.

### 🚀 What Does It Do?

This scraper searches Wellfound for you and collects **structured, ready-to-use job data**. You do not have to browse or copy anything by hand. Set your roles, locations and filters, then press Start.

💡 **Two modes of operation:**

1. **🔍 Search Mode**: list roles ("Software Engineer", "Product Manager") and locations ("San Francisco", "London", "Remote"). The scraper runs every role in every location and merges the results without duplicates.
2. **📋 Direct URL Mode**: paste Wellfound search pages or single job pages and get them as they are.

🔁 **Monitoring mode** remembers what earlier runs saw. After the first run, you only get jobs that are new, updated or back online, and you only pay for those.

### 👥 Who Is This For?

| 🏢 Use Case                     | 💬 How It Helps                                                                                                                 |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| 🧑‍💻 **Job seekers**              | Get every new remote ML or backend role with a salary above your minimum in Telegram or Slack every morning, without scrolling. |
| 🎯 **Recruiters & agencies**    | Find out which startups are hiring for which roles right now, together with company size, stage and funding.                    |
| 💸 **VCs & startup analysts**   | Follow hiring by portfolio company, stage or YC batch as a signal of growth.                                                    |
| 📊 **Compensation researchers** | Build salary and equity benchmarks by role, city and company stage from thousands of real offers.                               |
| 🛠️ **Job boards & aggregators** | Add fresh startup jobs to your board with full descriptions, and pull only the changes each day.                                |
| 🤝 **B2B sales teams**          | Target companies that are hiring for a function your product serves, such as data, security or DevOps.                          |

### ✨ Features

- 🔍 **Roles × locations in one run**: every role is combined with every city, country or region you list.
- 🌍 **Global coverage**: US cities, London, Berlin, Bangalore, whole countries, "Europe", or remote-only.
- 💰 **Salary & equity, parsed**: minimum, maximum, currency and period, plus equity percentages, from Wellfound's pay line.
- 🧭 **Remote setup**: remote, on-site or flexible, and the regions a remote role accepts.
- 🏢 **Company intelligence**: size, stage, tagline, logo, YC funding, top-investor and valuation badges.
- 📄 **Full descriptions included**: in Markdown, plain text or HTML.
- 🛂 **Job-page details (optional)**: visa sponsorship, relocation, office coordinates, website, industries, benefits and Glassdoor ratings.
- 🎛️ **Smart filters**: job type, workplace type, minimum salary and currency, equity only, years of experience, company size and stage, YC only, keywords, company allow/deny lists, and posting age in minutes.
- 🔁 **Incremental monitoring**: only new, updated or reappeared jobs after the first run, with repost detection.
- 🔔 **Instant alerts**: Telegram, Slack, Discord or any webhook.
- ⚡ **Fast & Scalable**: hundreds of jobs in under a minute, and thousands per run.
- 🧹 **Deduplication**: a job found by several searches is delivered once.
- 📤 **Export Anywhere**: Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                                    | What It Does                                                                              |
| ----------------------------------------- | ----------------------------------------------------------------------------------------- |
| 🧑‍💼 **Roles**                              | Job roles to search, such as "Software Engineer", "Data Scientist" or "Account Executive" |
| 📍 **Locations**                          | Cities, countries or regions; type "Remote" for remote jobs                               |
| 🏝️ **Remote jobs only**                   | Search only remote roles                                                                  |
| 🔢 **Maximum results**                    | How many jobs to collect in one run (0 = all)                                             |
| 📑 **Maximum pages per search**           | An extra cap for very large searches                                                      |
| ⚙️ **Searches in parallel**               | How many searches run at the same time                                                    |
| 🕒 **Job types**                          | Full-time, part-time, contract, internship or co-founder                                  |
| 🏠 **Workplace types**                    | Remote, on-site or remote, or on-site                                                     |
| 💵 **Minimum salary & currency**          | Keep jobs that pay at least this much per year                                            |
| 🙈 **Keep jobs without a salary**         | Include or drop jobs that show no pay range                                               |
| 📈 **Jobs with equity only**              | Keep only jobs that offer stock options                                                   |
| 🎓 **Years of experience**                | Minimum and maximum experience a job asks for                                             |
| 🔤 **Must / must not contain**            | Keyword filters on title, role, company and description                                   |
| 🏢 **Only / skip these companies**        | Company allow-list and deny-list                                                          |
| 👥 **Company sizes**                      | From 1-10 up to 5,000+ employees                                                          |
| 🌱 **Company stages**                     | Early, growth or scale stage                                                              |
| 🟧 **Y Combinator companies only**        | Keep only YC-funded startups                                                              |
| ⏱️ **Maximum age**                        | Jobs posted within the last N minutes                                                     |
| 📄 **Open every job page**                | Add visa, relocation, office coordinates, industries, benefits and Glassdoor              |
| 📝 **Description format & length**        | Markdown, plain text, HTML or none, optionally shortened                                  |
| 📦 **Compact output / drop empty fields** | A leaner dataset                                                                          |
| 🔁 **Incremental monitoring**             | Get only new, updated, reappeared or expired jobs, with repost detection                  |
| 🔔 **Notifications**                      | Telegram, Slack, Discord or webhook alerts                                                |
| 🔗 **Direct URLs**                        | Paste Wellfound search pages or job pages to scrape them directly                         |

### 📦 What You Get (Output Fields)

Every job includes:

#### Job Basics

| Field       | Example                                                                                |
| ----------- | -------------------------------------------------------------------------------------- |
| jobId       | `4639821`                                                                              |
| title       | `Software Engineer`                                                                    |
| url         | `https://wellfound.com/jobs/4639821-software-engineer`                                 |
| role        | `Software Engineer`                                                                    |
| jobType     | `full-time`                                                                            |
| postedAt    | `2026-08-27T20:06:24.000Z`                                                             |
| description | `As a Software Engineer at Checkr, you will work on high-impact engineering projects…` |
| atsSource   | `Greenhouse`                                                                           |

#### Pay & Equity

| Field              | Example                       |
| ------------------ | ----------------------------- |
| compensation       | `$150k – $176k • 0.1% – 0.5%` |
| salaryMin          | `150000`                      |
| salaryMax          | `176000`                      |
| salaryCurrency     | `USD`                         |
| salaryPeriod       | `YEAR`                        |
| equityMin          | `0.1`                         |
| equityMax          | `0.5`                         |
| hasEquity          | `true`                        |
| yearsExperienceMin | `3`                           |
| yearsExperienceMax | `null`                        |

#### Location & Remote

| Field                   | Example                       |
| ----------------------- | ----------------------------- |
| locations               | `["San Francisco", "Denver"]` |
| workplaceType           | `onsite_or_remote`            |
| remote                  | `false`                       |
| wfhFlexible             | `true`                        |
| acceptedRemoteLocations | `["United States", "Canada"]` |

#### Company

| Field            | Example                                                                                |
| ---------------- | -------------------------------------------------------------------------------------- |
| companyName      | `Checkr`                                                                               |
| companyUrl       | `https://wellfound.com/company/checkr`                                                 |
| companyLogoUrl   | `https://photos.wellfound.com/startups/i/395014-…-medium_jpg.jpg`                      |
| companyTagline   | `The only background check company using artificial intelligence and machine learning` |
| companySize      | `501-1000`                                                                             |
| companyStage     | `Scale Stage`                                                                          |
| isYcFunded       | `true`                                                                                 |
| hasTopInvestors  | `true`                                                                                 |
| companyValuation | `$1B+`                                                                                 |
| companyBadges    | `["Actively Hiring", "B2B", "Scale Stage", "Top Investors"]`                           |

#### Job Page Details (when "Open every job page" is on)

| Field                    | Example                                                                                                             |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| visaSponsorship          | `false`                                                                                                             |
| relocationAllowed        | `true`                                                                                                              |
| remotePolicy             | `In office - WFH flexibility`                                                                                       |
| jobLocations             | `[{"city": "Denver", "region": "Colorado", "country": "United States", "latitude": 39.7392, "longitude": -104.99}]` |
| companyWebsite           | `http://www.checkr.com/`                                                                                            |
| companyIndustries        | `["SaaS", "Legal Tech", "HR Tech"]`                                                                                 |
| companyType              | `Private Company`                                                                                                   |
| jobBenefits              | `Comprehensive Health Plans - We cover 100% of insurance premiums…`                                                 |
| glassdoorRating          | `4.1`                                                                                                               |
| glassdoorWorkLifeBalance | `4.3`                                                                                                               |
| recruiterRecentlyActive  | `true`                                                                                                              |
| jobClosed                | `false`                                                                                                             |

#### Monitoring (when monitoring is on)

| Field       | Example                    |
| ----------- | -------------------------- |
| changeType  | `NEW`                      |
| firstSeenAt | `2026-09-22T08:00:00.000Z` |
| lastSeenAt  | `2026-09-23T08:00:00.000Z` |
| isRepost    | `false`                    |

### 📊 Example Output

```json
{
    "jobId": "4639821",
    "title": "Software Engineer",
    "url": "https://wellfound.com/jobs/4639821-software-engineer",
    "role": "Software Engineer",
    "jobType": "full-time",
    "workplaceType": "onsite",
    "remote": false,
    "wfhFlexible": false,
    "locations": ["Denver", "San Francisco"],
    "acceptedRemoteLocations": [],
    "compensation": "$150k – $176k",
    "salaryMin": 150000,
    "salaryMax": 176000,
    "salaryCurrency": "USD",
    "salaryPeriod": "YEAR",
    "equityMin": null,
    "equityMax": null,
    "hasEquity": null,
    "yearsExperienceMin": 3,
    "yearsExperienceMax": null,
    "postedAt": "2026-08-27T20:06:24.000Z",
    "atsSource": "Greenhouse",
    "description": "As a Software Engineer at Checkr, you will work on high-impact engineering projects that help build a fairer future for all…",
    "companyName": "Checkr",
    "companySlug": "checkr",
    "companyUrl": "https://wellfound.com/company/checkr",
    "companyTagline": "The only background check company using artificial intelligence and machine learning",
    "companySize": "501-1000",
    "companyStage": "Scale Stage",
    "isYcFunded": true,
    "hasTopInvestors": true,
    "companyValuation": "$1B+",
    "companyBadges": [
        "Responds within three weeks",
        "B2B",
        "Scale Stage",
        "Top Investors",
        "YC Funded",
        "Valuation $1B+"
    ],
    "visaSponsorship": false,
    "relocationAllowed": false,
    "jobLocations": [
        {
            "city": "Denver",
            "region": "Colorado",
            "country": "United States",
            "latitude": 39.7392,
            "longitude": -104.99
        },
        {
            "city": "San Francisco",
            "region": "California",
            "country": "United States",
            "latitude": 37.7749,
            "longitude": -122.419
        }
    ],
    "companyWebsite": "http://www.checkr.com/",
    "companyIndustries": ["Internet", "SaaS", "Information Services", "Machine Learning", "Legal Tech", "Hr Tech"],
    "companyType": "Private Company",
    "glassdoorRating": 4.1,
    "glassdoorWorkLifeBalance": 4.3,
    "glassdoorLeadership": 4.1,
    "recruiterRecentlyActive": true,
    "detailFetched": true,
    "jobClosed": false,
    "searchRole": "software-engineer",
    "searchLocation": "san-francisco",
    "scrapedAt": "2026-09-22T20:30:03.952Z"
}
```

### 📋 Dataset Views

| View                      | What You See                                                                |
| ------------------------- | --------------------------------------------------------------------------- |
| 👀 **Overview**           | Job, company, locations, workplace, type, pay, posting date, link           |
| 💰 **Salary & equity**    | Numeric salary and equity ranges plus experience, ready for sorting         |
| 🏢 **Companies**          | Logo, tagline, size, stage, YC and funding signals for every hiring company |
| 🛂 **Job page details**   | Visa, relocation, website, industries, Glassdoor                            |
| 🔁 **Monitoring changes** | What is new, updated or reposted since the last run                         |

### ❓ FAQ

**🤔 Do I need a Wellfound account?**
No. The scraper only reads jobs that anyone can see without logging in.

**🌍 Which locations can I search?**
Any city, country or region Wellfound has a page for. Examples are "San Francisco", "New York", "London", "Berlin", "Bangalore", "United Kingdom", "Europe" and "India". Type "Remote" for remote jobs. If you type a place Wellfound does not know, the run log says so. You never get a wider search in its place without being told.

**📉 Why can the number of jobs differ from the total Wellfound shows?**
On search pages Wellfound shows up to three jobs per company. When one company has more matching openings, the extra ones are not listed there. The run summary shows Wellfound's own total next to what was collected, so you can see the gap. To get more of the same company's jobs, run more specific roles, for example "Backend Engineer" and "Frontend Engineer" instead of only "Software Engineer".

**💸 How does monitoring save money?**
The first run saves a baseline. Later runs deliver only jobs that are new, changed or back online. You pay per delivered job, so a daily run usually costs a small part of a full scrape.

**🔔 Can I get new jobs in Telegram or Slack?**
Yes. Add your Telegram bot token and chat ID, or a Slack or Discord webhook, and turn on monitoring. Each run posts only the new jobs.

**🛂 How do I find jobs with visa sponsorship?**
Turn on "Open every job page". Each job then gets a `visaSponsorship` field, which you can filter in the dataset or in your spreadsheet.

**⏰ Can I run it on a schedule?**
Yes. Use a daily or hourly schedule together with monitoring mode, and you get a steady feed of only fresh startup jobs.

### 🛠️ Need Custom Filters or Features?

Do you need another output format, a specific set of companies, a CRM or ATS integration, or a scraper for a different job board? **Send me a private message.** Custom work is welcome, and most requests are ready within a few days.

### ⚖️ Legal & Ethical Use

This scraper collects only publicly available job listings that anyone can view without logging in. Use the data responsibly and in line with Wellfound's terms and the data protection laws that apply to you. Do not use it to send unsolicited messages to individuals.

# Actor input Schema

## `roles` (type: `array`):

Job roles to search, as you would type them: "Software Engineer", "Product Manager", "Data Scientist", "Account Executive". Wellfound has 500+ role pages. Each role is combined with every location below.

## `locations` (type: `array`):

Cities, countries or regions: "San Francisco", "New York", "London", "Berlin", "United Kingdom", "Europe", "India". Type "Remote" for remote jobs. Leave empty to search a role everywhere.

## `remoteOnly` (type: `boolean`):

Search only remote jobs. The locations list is ignored when this is on.

## `startUrls` (type: `array`):

Paste wellfound.com search URLs (/role/…, /role/l/…/…, /role/r/…, /location/…, /remote) or job URLs (/jobs/123-title). Search URLs are paged through; job URLs are fetched in full.

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

Stop after this many jobs (counted after the filters below). Set 0 for every job the searches return.

## `maxPagesPerSearch` (type: `integer`):

Extra safety cap. Each page holds 20 companies with up to 3 jobs each. 0 means no page cap.

## `maxConcurrency` (type: `integer`):

How many role × location searches run at the same time.

## `jobTypes` (type: `array`):

Keep only these job types. Leave empty for all.

## `workplaceTypes` (type: `array`):

Keep only remote, flexible (on-site or remote) or on-site jobs.

## `minSalary` (type: `integer`):

Drop jobs whose top-of-range salary is below this yearly amount. Hourly pay is converted at 2 080 hours a year.

## `salaryCurrency` (type: `string`):

With a minimum salary set, also require this currency, so €100k and $100k are not compared as equal.

## `includeNoSalary` (type: `boolean`):

Turn off to keep only jobs that show a salary range.

## `equityOnly` (type: `boolean`):

Keep only jobs that offer equity (stock options).

## `maxYearsExperience` (type: `integer`):

Drop jobs that require more experience than this, e.g. 2 for junior roles. 0 means no limit.

## `minYearsExperience` (type: `integer`):

Drop jobs aimed at people with less experience than this, e.g. 5 for senior roles. 0 means no limit.

## `includeKeywords` (type: `array`):

Keep only jobs whose title, role, company or description mentions at least one of these.

## `excludeKeywords` (type: `array`):

Drop jobs whose title, role, company or description mentions any of these.

## `includeCompanies` (type: `array`):

Company names or Wellfound company slugs to keep.

## `excludeCompanies` (type: `array`):

Company names or Wellfound company slugs to drop.

## `companySizes` (type: `array`):

Keep only companies of these sizes (employees).

## `companyStages` (type: `array`):

Keep only companies at these stages, as Wellfound labels them.

## `ycFundedOnly` (type: `boolean`):

Keep only jobs at companies funded by Y Combinator.

## `maxAgeMinutes` (type: `integer`):

Keep only jobs posted within this many minutes (1440 = one day). 0 means no limit.

## `includeDetails` (type: `boolean`):

Adds visa sponsorship, relocation, geo-coded office locations, company website, industries, benefits, exact posting date and Glassdoor ratings. One extra request per job.

## `descriptionFormat` (type: `string`):

The full description is included by default. HTML comes from the job page, so it switches on job-page fetching.

## `descriptionMaxLength` (type: `integer`):

0 keeps the full description.

## `detailConcurrency` (type: `integer`):

How many job pages to open at once when job pages are switched on.

## `compact` (type: `boolean`):

Thirteen essential fields per job instead of the full record.

## `excludeEmptyFields` (type: `boolean`):

Removes fields that came back empty, for a leaner dataset.

## `incrementalMode` (type: `boolean`):

Remember what previous runs saw and emit only new, updated or reappeared jobs. The first run stores a baseline; later runs typically emit 80-95% fewer records, and you pay only for those.

## `stateKey` (type: `string`):

Name the baseline this run compares against. Leave empty to derive one from the searches and filters.

## `emitUnchanged` (type: `boolean`):

Also emit jobs that have not changed since the previous run.

## `emitExpired` (type: `boolean`):

Emit a record for every job that was in the baseline but is gone from this run's results.

## `skipReposts` (type: `boolean`):

Drop jobs that are an expired listing re-posted under a new ID.

## `webhookUrl` (type: `string`):

POSTs the run summary and emitted jobs as JSON.

## `telegramBotToken` (type: `string`):

Bot token from @BotFather. Stored encrypted.

## `telegramChatId` (type: `string`):

The chat or channel the Telegram bot should post into.

## `discordWebhookUrl` (type: `string`):

Discord channel webhook. Stored encrypted.

## `slackWebhookUrl` (type: `string`):

Slack incoming webhook. Stored encrypted.

## `notifyOnlyChanges` (type: `boolean`):

Stay silent when a monitoring run finds nothing new.

## `notificationLimit` (type: `integer`):

How many jobs each notification lists before it summarises the rest.

## `includeRunSummary` (type: `boolean`):

Attach the run statistics (new, updated, expired counts) to the webhook payload.

## `proxyConfiguration` (type: `object`):

Residential proxies are the default and the setting that works: measured on the platform, they delivered every search page and every job page without a block. Without a proxy, or on Apify's shared datacenter pool, Wellfound's bot protection blocks many job pages.

## Actor input object example

```json
{
  "roles": [
    "Software Engineer"
  ],
  "locations": [
    "San Francisco"
  ],
  "remoteOnly": false,
  "startUrls": [],
  "maxResults": 100,
  "maxPagesPerSearch": 0,
  "maxConcurrency": 3,
  "jobTypes": [],
  "workplaceTypes": [],
  "minSalary": 0,
  "salaryCurrency": "",
  "includeNoSalary": true,
  "equityOnly": false,
  "maxYearsExperience": 0,
  "minYearsExperience": 0,
  "includeKeywords": [],
  "excludeKeywords": [],
  "includeCompanies": [],
  "excludeCompanies": [],
  "companySizes": [],
  "companyStages": [],
  "ycFundedOnly": false,
  "maxAgeMinutes": 0,
  "includeDetails": false,
  "descriptionFormat": "markdown",
  "descriptionMaxLength": 0,
  "detailConcurrency": 5,
  "compact": false,
  "excludeEmptyFields": false,
  "incrementalMode": false,
  "stateKey": "",
  "emitUnchanged": false,
  "emitExpired": false,
  "skipReposts": false,
  "webhookUrl": "",
  "telegramChatId": "",
  "notifyOnlyChanges": true,
  "notificationLimit": 10,
  "includeRunSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `salary` (type: `string`):

No description

## `runSummary` (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 = {
    "roles": [
        "Software Engineer"
    ],
    "locations": [
        "San Francisco"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/wellfound-scraper").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 = {
    "roles": ["Software Engineer"],
    "locations": ["San Francisco"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("trev0n/wellfound-scraper").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 '{
  "roles": [
    "Software Engineer"
  ],
  "locations": [
    "San Francisco"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call trev0n/wellfound-scraper --silent --output-dataset

```

## MCP server setup

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

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/ez1wMB9hyAS2jMEuF/builds/jpVxgUHX2RavQJh2Y/openapi.json
