{
  "markdown": "# 💼 Wellfound Jobs API: A Startup Jobs API for Salary and Equity Data\n\nA startup jobs API for **Wellfound** (formerly AngelList Talent). Search by role, location, and remote status, and get one clean JSON row per job: the full description, **parsed salary and equity** ranges, and the hiring startup's signals including **Y Combinator** backing, top investors, and funding stage.\n\n**Actor:** https://apify.com/johnvc/wellfound-jobs-api?fpr=9n7kx3\n\n## Video Walkthrough\n\n[![Watch the walkthrough](https://img.youtube.com/vi/jREWahDGhJM/0.jpg)](https://www.youtube.com/watch?v=jREWahDGhJM)\n\n### Text walkthrough\n\nThis jobs API turns Wellfound's public startup listings into structured data. You give it `roles` (Wellfound slugs like `software-engineer`, or plain words like \"software\" and \"pm\", which are mapped for you) and optionally `locations` such as `san-francisco`, `new-york`, or `london`. Each role and location pair becomes its own search, and the API walks the paginated results for you.\n\nEvery row comes back with `title`, `url`, the full markdown `description`, and compensation parsed into real numbers: `salaryMin`, `salaryMax`, `salaryCurrency`, `equityMin`, and `equityMax`. The attached `company` object carries `name`, `size`, `tagline`, `stage`, and the badges Wellfound publishes, so you can keep only **remote startup jobs**, only **YC startup jobs**, or only companies actively hiring.\n\nA concrete use case: set `remoteOnly` with `minSalary` to build a weekly feed of remote startup jobs above a pay floor, then turn on `fetchJobDetails` to add benefits, industry, the company's own website, and geo coordinates for the shortlist you care about.\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.11 or newer\n- [uv](https://docs.astral.sh/uv/) for package management\n- An Apify API token. Get your free API key at https://apify.com?fpr=9n7kx3\n\n```bash\ngit clone https://github.com/johnisanerd/Apify-Wellfound-Jobs-API.git\ncd Apify-Wellfound-Jobs-API\nuv sync\ncp .env.example .env       # then paste your token into .env\nuv run python wellfound-jobs-api-example.py\n```\n\n### Alternative: set the API key directly\n\n```bash\nexport APIFY_API_TOKEN=\"your_apify_api_token_here\"\nuv run python wellfound-jobs-api-example.py\n```\n\n## Why use this Wellfound Jobs API?\n\n- **Full descriptions included.** The complete job description comes back in the listing row, not behind an extra fetch.\n- **Salary and equity as numbers.** Wellfound publishes pay as a string like `$135k - $175k * 0.05% - 0.25%`. This API parses it into `salaryMin`, `salaryMax`, `equityMin`, and `equityMax` so you can sort and filter.\n- **Startup signals you can filter on.** `ycOnly`, `topInvestorsOnly`, `activelyHiringOnly`, and `companyStage` come straight from the badges Wellfound shows.\n- **Pay only for what you get.** Billing is per delivered job, with separate small charges for the description and for optional detail enrichment. Jobs removed by your filters are never charged.\n\n## Features\n\n### Core capabilities\n\n- Search by role, location, and remote status, with automatic pagination\n- Free-text role input mapped onto real Wellfound slugs (\"software\" to `software-engineer`)\n- Keyword include and exclude filters over title, description, company, and location\n- Salary, equity, job type, and experience filters\n- Startup-signal filters: Y Combinator, top investors, actively hiring, funding stage\n- Optional detail enrichment: benefits, industry, company website, geo, structured salary\n- Paste any Wellfound search URL directly with `startUrls`\n\n### Data quality\n\n- One row per job, deduplicated across every search thread in the run\n- ISO timestamps for when each job went live\n- Runs that return nothing explain why in the dataset, not just in the log\n\n## Usage examples\n\n### Basic example\n\n```python\nrun_input = {\"roles\": [\"software-engineer\"], \"maxItems\": 5}\n```\n\n### Remote startup jobs\n\n```python\nrun_input = {\"roles\": [\"software-engineer\"], \"remoteOnly\": True, \"maxItems\": 25}\n```\n\n### YC startup jobs over $150k\n\n```python\nrun_input = {\n    \"roles\": [\"software-engineer\"],\n    \"ycOnly\": True,\n    \"minSalary\": 150000,\n    \"maxItems\": 25,\n}\n```\n\n### Startup jobs in a city, with enrichment\n\n```python\nrun_input = {\n    \"roles\": [\"software-engineer\"],\n    \"locations\": [\"san-francisco\"],\n    \"fetchJobDetails\": True,\n    \"maxItems\": 10,\n}\n```\n\n## Input parameters\n\n| Parameter | Type | Description |\n|---|---|---|\n| `roles` | array | Role categories to search. Wellfound slugs or plain words that get mapped (\"software\" to `software-engineer`). |\n| `locations` | array | Location slugs, for example `san-francisco`, `new-york`, `london`, `india`. |\n| `remoteOnly` | boolean | Only jobs flagged remote. |\n| `keyword` | string | Narrow results to jobs containing this phrase. Wellfound has no site-wide free-text search, so this filters the pages a run fetches. |\n| `excludeKeyword` | string | Drop jobs whose title or description contains this phrase. |\n| `jobType` | string | `full-time`, `part-time`, `contract`, `internship`. |\n| `minSalary` / `maxSalary` | integer | Salary floor and ceiling in USD per year. |\n| `minEquity` | integer | Minimum equity grant percent. |\n| `ycOnly` | boolean | Only Y Combinator-backed companies. |\n| `topInvestorsOnly` | boolean | Only companies flagged as top-investor backed. |\n| `activelyHiringOnly` | boolean | Only companies with the actively-hiring badge. |\n| `companyStage` | string | Funding stage, for example `early_stage`. |\n| `includeDescription` | boolean | Include the full markdown description. Default true. |\n| `fetchJobDetails` | boolean | Fetch each job's detail page for extra fields. Default false. |\n| `maxItems` | integer | Maximum jobs returned across all searches. |\n| `maxPagesPerSearch` | integer | Safety cap on pages per search thread. |\n| `startUrls` | array | Paste Wellfound search URLs to scrape directly. |\n\n## Output format\n\n```json\n{\n  \"result_type\": \"job\",\n  \"id\": \"4353862\",\n  \"title\": \"Product Manager\",\n  \"url\": \"https://wellfound.com/jobs/4353862-product-manager\",\n  \"description\": \"### About the role ...\",\n  \"compensationRaw\": \"$130k - $200k * 0.15% - 0.25%\",\n  \"salaryMin\": 130000,\n  \"salaryMax\": 200000,\n  \"salaryCurrency\": \"USD\",\n  \"equityMin\": 0.15,\n  \"equityMax\": 0.25,\n  \"jobType\": \"full-time\",\n  \"remote\": false,\n  \"remoteKind\": \"ONSITE\",\n  \"locationNames\": [\"San Francisco\"],\n  \"postedAt\": \"2026-07-28T20:58:57+00:00\",\n  \"company\": {\n    \"name\": \"Agave API\",\n    \"slug\": \"agave-api\",\n    \"size\": \"SIZE_11_50\",\n    \"tagline\": \"Unified API for construction software\",\n    \"stage\": \"early_stage\",\n    \"ycFunded\": true,\n    \"topInvestors\": true,\n    \"activelyHiring\": true\n  }\n}\n```\n\nWith `fetchJobDetails` enabled, rows also carry `benefits`, `industry`, `companyWebsite`, `geo`, `detailSalary`, and `applicantLocationRequirements`.\n\n## Schedule it\n\nSave a task with your search, then attach a [schedule](https://docs.apify.com/platform/schedules) to build a history of new postings. Useful cron strings: `0 7 * * *` for daily at 7 AM, `0 6 * * 1` for Mondays.\n\n## People also search for\n\n**How do I get startup jobs data as an API?** Run this Actor from Python, the Apify API, or any MCP client. It returns JSON, CSV, or Excel.\n\n**How do I find remote startup jobs?** Set `remoteOnly` to true. Rows carry `remote`, `remoteKind`, and `acceptedRemoteLocationNames`.\n\n**How do I find Y Combinator startup jobs?** Set `ycOnly` to true, or filter on `topInvestorsOnly` and `companyStage`.\n\n**Can I get startup jobs for a specific city?** Yes. Combine `roles` with `locations` such as `san-francisco`, `new-york`, or `london`.\n\n**Does it include salary and equity?** Yes, both as raw text and parsed into numeric ranges.\n\n**Is Wellfound free for job seekers?** Yes. This API reads the same public pages a visitor sees and returns them as structured data.\n\n## 🪢 Use this from n8n\n\nThis API is available as an n8n community node, **[n8n-nodes-wellfound-jobs-api](https://www.npmjs.com/package/n8n-nodes-wellfound-jobs-api)**. In n8n: **Settings, Community Nodes, Install**, enter `n8n-nodes-wellfound-jobs-api`, accept the risk prompt and restart. The **Wellfound Jobs** node then appears in the node picker, and it works as an AI Agent tool.\n\n---\n\n## Install in Claude Cowork Desktop\n\n![Install in Claude Cowork Desktop](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_desktop.png)\n\nCowork is the desktop app's automation mode. To give it the Wellfound Jobs API as a tool, add the Apify MCP server as a connector.\n\n1. Open the Claude desktop app and go to **Settings → Connectors** (or **Settings → Developer → Edit Config** to edit `claude_desktop_config.json` directly).\n   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n2. Add the Apify MCP server, preloaded with only this Actor:\n\n```json\n{\n  \"mcpServers\": {\n    \"apify\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api\"\n      ]\n    }\n  }\n}\n```\n\n3. Restart the app. When Cowork first calls the tool, complete the OAuth prompt in your browser, or add your Apify API token in the connector settings to skip OAuth.\n4. In a Cowork chat, confirm the tool is available and ask it to run the Wellfound Jobs API.\n\nDownload the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg\nMore help: https://docs.apify.com/platform/integrations/claude-desktop\n\n---\n\n## Install in Claude Code\n\n![Install in Claude Code](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_code.png)\n\nClaude Code is the command-line tool. Add the Actor's MCP server with one command:\n\n```bash\nclaude mcp add --transport http apify \\\n  \"https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api\"\n```\n\nTo use a token instead of browser OAuth:\n\n```bash\nclaude mcp add --transport http apify \\\n  \"https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api\" \\\n  --header \"Authorization: Bearer YOUR_APIFY_TOKEN\"\n```\n\nThen verify with `claude mcp list`, or run `/mcp` inside a session. Ask Claude Code to call the Wellfound Jobs API.\n\nTry Claude Code free: https://claude.ai/referral/uIlpa7nPLg\nClaude Code MCP docs: https://code.claude.com/docs/en/mcp\n\n---\n\n## Install in Claude (website)\n\n![Install in Claude (website)](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_claude_ai.png)\n\nOn claude.ai you add Apify as a connector, then enable just this Actor's tool.\n\n1. Go to **Settings → Connectors → Browse connectors** and search for **Apify MCP server**. Install it (enable or update if prompted).\n2. When connecting, authenticate with your Apify API token, and enable the tool `johnvc/wellfound-jobs-api`.\n3. In any chat, open **+ → Connectors** and turn on **Apify**.\n4. Alternatively, choose **Add custom connector** and paste the full MCP URL `https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api`, using OAuth when prompted.\n5. Ask Claude to run the Wellfound Jobs API.\n\nOpen Claude on the web: https://claude.ai/referral/uIlpa7nPLg\n\n---\n\n## Install in Cursor\n\n![Install in Cursor](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_cursor.png)\n\nCursor reads MCP servers from a project file at `.cursor/mcp.json`.\n\n1. In your project, create `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apify\": {\n      \"url\": \"https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api\"\n    }\n  }\n}\n```\n\n2. If you prefer token auth over browser OAuth, add a header:\n\n```json\n{\n  \"mcpServers\": {\n    \"apify\": {\n      \"url\": \"https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api\",\n      \"headers\": { \"Authorization\": \"Bearer YOUR_APIFY_TOKEN\" }\n    }\n  }\n}\n```\n\n3. Open **Cursor → Settings → MCP** and confirm the **apify** server is connected (green dot).\n4. In Composer or Chat, ask Cursor to call the Wellfound Jobs API.\n\nNew to Cursor? Get it here: https://cursor.com/referral?code=XQP4VBLI3NNX\n\n---\n\n## Install in ChatGPT\n\n![Install in ChatGPT](https://raw.githubusercontent.com/johnisanerd/ApifyPublicData/main/assets/guides/install_mcp_into_ChatGPT.png)\n\nChatGPT connects to the Apify MCP server through Developer mode (available on ChatGPT Pro, Plus, Business, Enterprise, and Education plans).\n\n1. Click your profile icon, then go to **Settings > Apps**. If you do not see a **Create app** button, open **Advanced settings** and enable **Developer mode**.\n2. Click **Create app** and fill out the form:\n   - **Name:** Apify\n   - **MCP Server URL:** `https://mcp.apify.com/?tools=actors,docs,johnvc/wellfound-jobs-api`\n   - **Authentication:** OAuth\n3. Click **Create** and authorize the connection with Apify.\n4. To use the app in a conversation, click **+** in the chat, choose **Developer mode**, and select **Apify**.\n\nMore help: https://docs.apify.com/platform/integrations/mcp\n\n---\n\n[**Made with care**](https://apify.com/johnvc?fpr=9n7kx3)\n\n*Use the Wellfound Jobs API to power your recruiting, market research, and lead generation workflows with reliable, structured results.*\n\n\nLast Updated: 2026.09.07\n",
  "bytes": 13284,
  "sha": "5e44f80e0a315958d46e0119010088062197dff00821f24375cc89c98435777a",
  "repo_slug": "johnisanerd/apify-wellfound-jobs-api",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_johnisanerd_wellfound_jobs_da1ddcc5/readme"
}