Wellfound Jobs API and MCP — Startup Jobs by Role and Location
Send a role slug and a location slug, and get the matching Wellfound jobs back as a list. Each record has the job title, pay range, locations, remote type, years of experience, posted date, the description and the hiring company's name, size, stage, tags and active-hiring flag.
- You send
- a role slug and a location slug (for example software-engineer and san-francisco), plus a max_items cap
- You get back
- for each job, title, pay, locations, remote type, experience range, posted date, description and the hiring company's size, stage and tags
- Coverage
- Wellfound records with a public page.
- Price
- 1 point per returned record — $1 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Wellfound directly | Type the query into Wellfound and read the results | Free, and slow | Fine for one record, useless across a list, and the layout differs on every platform |
| Building a scraper | Write it, host it, and repair it when Wellfound changes its pages | Engineering time | A maintenance commitment for something that isn't your product |
| NeuralVerge | One request, the same shape as every other source in the catalog | $1 per 1,000, misses not billed | Returns what Wellfound publishes at request time. Other platforms are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response, here wellfound_jobs_search. |
max_items | number | The cap you sent on returned records. |
start_page | number | The page the run started from. |
partial | boolean | True if the run stopped before it finished. |
human | string | Readable summary of the run. |
machine.total_items | number | Number of records returned in this response. |
machine.first_item | object | Copy of the first record in items, for quick access. |
machine.items | array | The returned records, one object each. |
machine.total_found | number | null | Total matches reported by the platform, or null when it does not report one. |
machine.page_count | number | Number of result pages read. |
machine.blocked | boolean | Whether the platform refused the request. |
total_points | number | Points charged for the run. |
role | string | The role slug you sent. |
location | string | The location slug you sent. |
machine.items[].id | string | Job id. |
machine.items[].name | string | Job name, same as the title. |
machine.items[].url | string | Link to the job. |
machine.items[].title | string | Job title. |
machine.items[].role | string | Role category. |
machine.items[].job_type | string | Employment type, for example full-time. |
machine.items[].compensation | string | Pay range as written on the listing. |
machine.items[].locations | array | Job locations. |
machine.items[].remote | boolean | Whether the job is remote. |
machine.items[].remote_kind | string | Remote setup, for example ONSITE. |
machine.items[].years_experience_min | number | null | Minimum years of experience. |
machine.items[].years_experience_max | number | null | Maximum years of experience. |
machine.items[].posted_at | string | Posting date, YYYY-MM-DD. |
machine.items[].description | string | Job description in Markdown. |
machine.items[].company | object | Hiring company: id, name, slug, url, tagline, logo_url, company_size, stage, tags and actively_hiring. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "wellfound_jobs_search",
"role": "software-engineer",
"location": "san-francisco",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Wellfound — jobs search\n\n- **Query:** role=software-engineer, location=san-francisco\n- **Results:** 2 of 761 found\n- **Proxy traffic:** 701.7 KB",
"machine": {
"total_items": 2,
"first_item": {
"id": "4787364",
"name": "Software Engineer",
"url": "https://wellfound.com/jobs/4787364-software-engineer",
"title": "Software Engineer",
"role": "Software Engineer",
"job_type": "full-time",
"compensation": "$170k – $250k",
"locations": [
"New York City",
"San Francisco"
],
"remote": false,
"remote_kind": "ONSITE",
"years_experience_min": 4,
"years_experience_max": null,
"posted_at": "2026-09-30",
"description": "**About Chalk**\n\nChalk is building the data platform that powers the future of machine learning applications. We tear down complexity, latency, and scale barriers that have traditionally constrained M",
"company": {
"id": "8887646",
"name": "Chalk",
"slug": "chalk-ai",
"url": "https://wellfound.com/company/chalk-ai",
"tagline": "Building machine learning infrastructure to answer the world’s hardest questions",
"logo_url": "https://photos.wellfound.com/startups/i/8887646-f35c5c1d88595ca051fddbec6e486edd-medium_jpg.jpg?buster=1652299292",
"company_size": "51-200",
"stage": "Early Stage",
"tags": [
"B2B"
],
"actively_hiring": true
}
},
"items": [
{
"id": "4787364",
"name": "Software Engineer",
"url": "https://wellfound.com/jobs/4787364-software-engineer",
"title": "Software Engineer",
"role": "Software Engineer",
"job_type": "full-time",
"compensation": "$170k – $250k",
"locations": [
"New York City",
"San Francisco"
],
"remote": false,
"remote_kind": "ONSITE",
"years_experience_min": 4,
"years_experience_max": null,
"posted_at": "2026-09-30",
"description": "**About Chalk**\n\nChalk is building the data platform that powers the future of machine learning applications. We tear down complexity, latency, and scale barriers that have traditionally constrained M",
"company": {
"id": "8887646",
"name": "Chalk",
"slug": "chalk-ai",
"url": "https://wellfound.com/company/chalk-ai",
"tagline": "Building machine learning infrastructure to answer the world’s hardest questions",
"logo_url": "https://photos.wellfound.com/startups/i/8887646-f35c5c1d88595ca051fddbec6e486edd-medium_jpg.jpg?buster=1652299292",
"company_size": "51-200",
"stage": "Early Stage",
"tags": [
"B2B"
],
"actively_hiring": true
}
},
{
"id": "4787352",
"name": "Forward Deployed Engineer",
"url": "https://wellfound.com/jobs/4787352-forward-deployed-engineer",
"title": "Forward Deployed Engineer",
"role": "Software Engineer",
"job_type": "full-time",
"compensation": "$170k – $250k",
"locations": [
"New York City",
"San Francisco"
],
"remote": false,
"remote_kind": "ONSITE",
"years_experience_min": 4,
"years_experience_max": null,
"posted_at": "2026-09-30",
"description": "**About Chalk**\n\nChalk is building the data platform that powers the future of machine learning applications. We tear down complexity, latency, and scale barriers that have traditionally constrained M",
"company": {
"id": "8887646",
"name": "Chalk",
"slug": "chalk-ai",
"url": "https://wellfound.com/company/chalk-ai",
"tagline": "Building machine learning infrastructure to answer the world’s hardest questions",
"logo_url": "https://photos.wellfound.com/startups/i/8887646-f35c5c1d88595ca051fddbec6e486edd-medium_jpg.jpg?buster=1652299292",
"company_size": "51-200",
"stage": "Early Stage",
"tags": [
"B2B"
],
"actively_hiring": true
}
}
],
"total_found": 761,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 718550
},
"total_points": 2
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged. max_items caps how many records are returned and billed.
curl -X POST https://api.neuralverge.ai/functions/v1/run-wellfound-jobs-search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"role":"software-engineer","location":"san-francisco","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Count openings by role and city to see where startups are hiring.
Collect pay ranges for one role across locations.
Find companies hiring for a role your product serves, with size and stage attached.
Build a list of startups with open roles in a niche for staffing outreach.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Wellfound records with a public page.
Read at request time, so the answer reflects the platform as it stands when you ask.
This source returns information Wellfound shows publicly. Every response carries the session id you can trace.
- —Pay is free text from the listing and can be missing.
- —The role and location arguments are slugs; use Wellfound locations to find valid location slugs.
- —Descriptions are long text; set max_items with that in mind.
Questions, answered
From Wellfound locations, which lists each place with the slug to use here.
Related sources
Try wellfound job search on your own data
One request format across every source in the catalog.