Export public startup job listings into a structured dataset for recruiting research, talent-market tracking, and job discovery. This Wellfound Jobs Scraper accepts a role, optional location, or specific public company job pages and returns deduplicated job records with source-page provenance.
It is also a practical Wellfound scraper for recurring job-market workflows: schedule a search, export results to a spreadsheet, or call it from your application. The Actor only handles public job-listing information; it does not apply to jobs, access candidate profiles, or require a personal session.
What you get
Each dataset row is a public job listing. The output is useful for an Angel.co jobs scraper migration or a startup jobs scraper workflow because it includes both normalized job values and the page/search URL that produced them.
{
"source": "wellfound",
"searchUrl": "https://wellfound.com/role/r/software-engineer",
"jobUrl": "https://wellfound.com/jobs/example",
"jobId": "example",
"title": "Software Engineer",
"companyName": "Example Startup",
"location": "New York, NY",
"remote": true,
"salary": "$120k–$160k",
"page": 1,
"scrapedAt": "2026-08-29T00:00:00.000Z"
}
Input settings
| Input | Description |
|---|---|
role |
Wellfound role slug or plain role name, such as software-engineer. |
location |
Optional location phrase or slug that narrows a role search. |
companyUrls |
Public Wellfound company job-page URLs; these take precedence over role/location. |
maxItems |
Maximum jobs to save, from 1 to 1,000. Start with 20. |
includeDescription |
Include visible public job-description text. |
runTimeSecs |
Shared run time budget from 60 to 270 seconds; the default is 240 seconds. |
Who is it for?
- Recruiters and sourcers building a public startup hiring watchlist.
- Talent-market analysts comparing roles, compensation, remote availability, and company demand.
- Job boards and product teams collecting public listings for a research or matching workflow.
- Automation builders who need a repeatable, target-bound public job dataset rather than a manual export.
Pagination, limits, and partial output
Results are saved progressively and deduplicated by public job ID. The Actor follows pages until it reaches maxItems, no new jobs are available, a page repeats, or the shared time budget reaches its persistence reserve.
A completed run can contain fewer than maxItems when the requested public target has fewer results. If the source serves a challenge or a request fails after some rows were saved, the saved rows remain available and RUN-SUMMARY records the outcome and warnings.
API usage
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/wellfound-jobs-scraper').call({
role: 'software-engineer',
maxItems: 20,
includeDescription: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("fetch_cat/wellfound-jobs-scraper").call(run_input={
"role": "software-engineer", "maxItems": 20, "includeDescription": True
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~wellfound-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H 'content-type: application/json' \
-d '{"role":"software-engineer","maxItems":20,"includeDescription":true}'
MCP and AI-agent usage
Add this Actor to the Apify MCP Server to let an MCP-compatible client run a public Wellfound job search with structured input and dataset output.
claude mcp add apify -- npx -y @apify/mcp-server --tools fetch_cat/wellfound-jobs-scraper
Or add the server to an MCP configuration:
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/mcp-server", "--tools", "fetch_cat/wellfound-jobs-scraper"],
"env": { "APIFY_TOKEN": "<APIFY_TOKEN>" }
}
}
}
Example prompts: “Find 20 remote software-engineer jobs on Wellfound” or “Export jobs from this public Wellfound company URL.” Start with a small result limit and provide a role, location, or explicit public company URL.
Support
For help, open an issue from the Actor page and include your input (without secrets), approximate run time, and the RUN-SUMMARY value when available.