---
title: "Wellfound API: why every result points inward, and how to get startup job data"
description: "Wellfound has no public jobs API. The old AngelList REST API at api.angel.co answers 404 on every path, and every documented Wellfound key flows inward: Greenhouse, Lever and Workable integrations"
canonical: https://jobspipe.dev/blog/wellfound-api
date_published: 2026-09-02
date_modified: 2026-09-30
author: Dvir Atias
---

# Wellfound API: why every result points inward, and how to get startup job data

Wellfound has no public jobs API. The old AngelList REST API at api.angel.co answers 404 on every path, and every documented Wellfound key flows inward: Greenhouse, Lever and Workable integrations that let employers fill the board. Its robots.txt disallows /\_jobs/ and a Cloudflare challenge blocks non-browser clients, so startup roles are better read upstream from the ATS layer the board itself reads.

Every result for "Wellfound API" is about handing Wellfound your ATS key, not about Wellfound returning data to you. The old AngelList REST API is gone - api.angel.co answers 404 on every path - and the site sits behind a Cloudflare challenge that covers even the sitemap its own robots.txt advertises. Here is what the surviving integrations actually do, why scraping is a worse trade than it looks, and the upstream ATS layer that carries startup roles with salary and company domain attached.

Search for a Wellfound API and you get a directory stub, a row of scraper listings, and three help-centre articles about API keys. The articles look like the real thing until you notice which way the key travels. All three are about handing Wellfound **your** credentials so it can read your applicant tracking system. Not one of them returns a job posting to you.

That is the short answer, and it is worth being precise about, because the AngelList API people half-remember genuinely did exist, which is why the search term is still alive years later. Here is what happened to it, what the surviving integrations actually do, why scraping the site is a worse trade than it looks, and the path that works for the data everyone is really after: live startup roles with the employer attached.

## The AngelList API really is gone

AngelList ran a public REST API at `api.angel.co`, documented well enough to spawn third-party client libraries and its own developer account. It still shows up in API directories and in the dependency lists of old side projects. It no longer answers anything. Probed on the day this post published:

```
curl -s -o /dev/null -w "%{http_code}\n" https://api.angel.co/1/jobs
404

curl -s https://api.angel.co/1/jobs
404 page not found

curl -sI https://angel.co/ | grep -i location
location: https://wellfound.com/
```

The host still resolves, which is exactly why it looks alive from a distance, but every path under it returns a bare `404 page not found` with no JSON envelope and no deprecation notice. There was never a loud shutdown date to point at. The brand moved underneath it instead: `angel.co` now 301s to `wellfound.com`, and `angel.co/api` 301s to `wellfound.com/api`, which is not a developer portal. AngelList Talent became Wellfound, the venture business kept the AngelList name, and the public data API did not survive the split.

Try it without a key

```
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Only `/v1/sandbox/*` needs no key.

## What “Wellfound API” means on today’s results page

Three live things carry the name. All three point inward.

-   **The Greenhouse integration.** Greenhouse’s own documentation marks it legacy and says an updated version exists. Live job posts sync _from_ Greenhouse _to_ Wellfound automatically, and applicants created in Wellfound are matched back as candidates. It authenticates with a Greenhouse Harvest API key - yours, handed over so the sync can run.
-   **The Lever integration key.** The same shape from the other side: a key that switches on the Wellfound integration inside Lever so your roles appear on the board.
-   **Connecting an ATS to Wellfound Reach.** Wellfound’s own help centre walks you through fetching your Workable subdomain and API key and giving both to Wellfound. The instruction is explicit: send the company name and the API key to your customer success manager.

Read together, the pattern is unmistakable. Wellfound is a _consumer_ of ATS APIs, not a producer of one. Every documented key flows toward Wellfound so employers can fill the board. There is no counterpart flowing outward - no public jobs endpoint, no rate card, no developer signup, no partner tier you can apply to.

## Scraping it is a worse trade than it looks

With no API, the scraper listings look like the obvious fallback. Two things argue against it, and both take under a minute to check yourself.

First, the site says no in the file built for saying no. Wellfound’s `robots.txt` disallows precisely the paths a job scraper reaches for:

```
Disallow: /_jobs/
Disallow: /*?jobId=*
Disallow: /*?jobSlug=*
Disallow: /*?role=*
Disallow: /embed/
Disallow: /search
Disallow: /u/
```

`/_jobs/` is the internal JSON path the listing pages call for their data. It is the first endpoint anyone finds in a network tab and the first one the file rules out.

Second, the front door is shut to non-browser clients. Wellfound sits behind a Cloudflare managed challenge, and it makes no exception for the sitemap it advertises in that same `robots.txt`:

```
curl -sI -A "Mozilla/5.0" https://wellfound.com/sitemap.xml
HTTP/2 403
cf-mitigated: challenge
server: cloudflare
```

`cf-mitigated: challenge` is the tell. That is not a misconfigured permission you can talk your way around with a header - it is bot mitigation, and it covers `/api`, `/graphql`, `/_jobs/` and the sitemap alike. Beating it means driving real browsers through rotating residential addresses against a site whose robots file and terms both refuse, to obtain data that is available upstream without any of it. The reasoning is the same one laid out in [job scraping explained](https://jobspipe.dev/blog/what-is-job-scraping), and it lands in the same place here.

## Startups are the easiest companies to track, not the hardest

The urge to scrape Wellfound comes from treating it as a source. It is not one. It is a destination. A startup opens a role in its applicant tracking system, and the ATS fans it out - to the careers page, to Wellfound, to LinkedIn, to whatever else is wired up. The Greenhouse integration above is literally a description of that fan-out.

So the upstream copy is public, structured, and earlier. Early-stage companies concentrate into a handful of ATS platforms, and those platforms publish job endpoints that need no partner review: [Ashby](https://jobspipe.dev/sources/ashby), [Greenhouse](https://jobspipe.dev/sources/greenhouse), Lever and Workable, alongside Y Combinator’s own Work at a Startup board. Which ATS endpoints are genuinely open and which are gated is catalogued in [which ATS APIs are actually public](https://jobspipe.dev/blog/public-vs-gated-ats-apis).

Reading that layer also hands you the field Wellfound’s HTML never gave up cleanly: the employer’s domain, which is the join key for enrichment, tech-stack lookups and CRM matching.

## What the upstream layer actually contains

Measured against an index built from employers and ATS platforms rather than from any one board, on the day this post published, counting only roles still open:

-   **Y Combinator** - 6,495 active postings across 1,551 companies.
-   **Ashby** - 6,981 active postings across 529 companies.
-   **Greenhouse** - 29,254 active postings.

The volume is not the interesting part. The field coverage is. Startup ads are unusually forthcoming about money: **66.8% of the Y Combinator-sourced postings carry a parsed salary range**, against 29.4% across the index as a whole. Greenhouse-sourced roles manage 54.0%. Ashby, where listings tend to be terse, drops to 19.2%. Pay-transparency law explains part of that gap, but not the size of it - early-stage companies compete for candidates on legible compensation.

Company identity resolves far better too. 99.9% of the Y Combinator postings, 6,491 of 6,495, carry the employer’s domain, against 27.1% index-wide. For a sourcing or sales-intelligence product that is the whole difference between a company string you have to fuzzy-match and a key you can join on directly.

Pulling that slice is one request. Everything is normalised on the way in, so a single call filters by extracted skills, ISCO-08 occupation or industry division no matter which ATS the role arrived from:

```
curl -X POST "https://api.jobspipe.dev/v1/jobs/search" \
  -H "Authorization: Bearer jp_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_or": ["ycombinator", "ashby", "lever", "greenhouse"],
    "skills_or": ["python", "kubernetes"],
    "posted_at_max_age_days": 14,
    "limit": 25
  }'
```

Swap `skills_or` for `occupation_code_or` to sweep by occupation, add `job_country_code_or` to pin a market, or drop `source_or` entirely to stop caring which ATS a startup happens to run. Records come back with the company, the domain, the original listing URL, salary fields where the employer published one, and a status plus close date so dead roles leave your pipeline instead of rotting in it. The free tier returns 1,000 jobs to start.

## So which path is yours

-   **You want to post jobs to Wellfound.** The integrations are real and they work. Connect Greenhouse, Lever or Workable and let the ATS fan out. This is the one case where the search term leads somewhere.
-   **You want Wellfound’s listings specifically.** There is no supported way to get them, and the unsupported ways run into robots.txt and a Cloudflare challenge. Reframe the requirement: you almost certainly want startup roles, not Wellfound rows.
-   **You want startup hiring data.** Read the ATS layer the board itself reads. It is earlier, it is structured, it carries the company domain, and nobody has to be talked out of blocking you. If you are building the board rather than buying the data, [how to build a startup job board](https://jobspipe.dev/blog/how-to-build-a-startup-job-board) walks the sourcing decisions end to end.

## Sources

-   [Wellfound robots.txt](https://wellfound.com/robots.txt)
-   [Wellfound help: which ATS providers Wellfound integrates with](https://help.wellfound.com/article/854-what-ats-providers-does-wellfound-integrate-with)
-   [Wellfound help: getting a Workable API key to connect](https://help.wellfound.com/article/1111-how-do-i-get-my-api-from-workable-to-connect-to-recruitercloud)
-   [Wellfound help: how to connect Workable](https://help.wellfound.com/article/738-how-to-connect-workable)

## Frequently Asked Questions

### Does Wellfound have a public API?

No. The three live things carrying the name - the Greenhouse integration, the Lever integration key and connecting an ATS to Wellfound Reach - all involve handing Wellfound your ATS credentials so your job posts sync onto the board. Wellfound is a consumer of ATS APIs, not a producer of one: there is no public jobs endpoint, no rate card, no developer signup and no partner tier you can apply to.

### Is the AngelList API still working?

No. The old public REST API at api.angel.co no longer answers anything: every path returns a bare 404 page not found with no JSON envelope and no deprecation notice, though the host still resolves, which is why it looks alive from a distance. angel.co now 301s to wellfound.com and angel.co/api redirects to wellfound.com/api, which is not a developer portal. AngelList Talent became Wellfound and the public data API did not survive the split.

### Can I scrape Wellfound job listings?

Two checks argue against it. Wellfound's robots.txt disallows exactly the paths a job scraper reaches for, including /\_jobs/, the internal JSON path the listing pages call, plus /search and the jobId and jobSlug query paths. The site also sits behind a Cloudflare managed challenge (cf-mitigated: challenge) covering /api, /graphql, /\_jobs/ and even the advertised sitemap, so beating it means driving real browsers through rotating residential addresses against a site whose robots file and terms both refuse.

Related

## Keep reading

-   [Guide · Jul 25, 2026Job data API: how to evaluate one before you build on it](https://jobspipe.dev/blog/job-data-api)
-   [Guide · Jun 24, 2026Job board API: the data layer for the job board you are building](https://jobspipe.dev/blog/job-board-api-guide)
-   [Comparison · Jul 22, 2026Unified API platforms: the two kinds, and which one job data needs](https://jobspipe.dev/blog/unified-api-job-data)
-   [Guide · Jul 27, 2026O\*NET API: free occupational data from the Department of Labor](https://jobspipe.dev/blog/onet-api)
-   [Guide · Jul 27, 2026Help wanted ads: from newspaper classifieds to structured job data](https://jobspipe.dev/blog/help-wanted-ads)


## Further reading

- [ATS API: one integration across applicant tracking systems](https://jobspipe.dev/blog/ats-api-integration)
- [Job scraper: the build-vs-buy guide for 2026](https://jobspipe.dev/blog/job-scraper-build-vs-buy)
- [Lever API](https://jobspipe.dev/sources/lever)
- [Workable API](https://jobspipe.dev/sources/workable)

---
Try it with no key: `curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search`. AI agents: the full machine-readable index of this site is https://jobspipe.dev/llms.txt?src=md-twin - API quickstart, MCP server, pricing. Free key (1,000 jobs to start): https://jobspipe.dev/signup