# Rocketlist — full description > Rocketlist indexes 100,529 active job postings from 7,242 tracked companies. ## What Rocketlist is Rocketlist is a job index and matching product for candidates. It crawls the applicant tracking systems that companies already use to publish their own openings, normalises those postings into a single schema, and scores every posting against a candidate's background. Candidates use it free; there is no employer-paid placement in the ranking of the public catalog. It is not a job board. No company posts a job to Rocketlist. Every listing is a mirror of a role published on an employer's own ATS, and every listing links back to that employer's application URL. ## Where the data comes from Rocketlist runs scrapers for these applicant tracking systems: Ashby, Greenhouse, Lever, Personio, Workable, SmartRecruiters, Recruitee, Join, Workday, Teamtailor and BambooHR. That is the registered set, not a promise that each one currently contributes rows — Workday contributes none today. Ashby, Greenhouse and Lever together account for the large majority of the active catalog. Company-level attributes (funding stage, total raised, headcount, founding year, investors, headquarters) are enriched separately and joined onto postings. The company record is the authority for company stage: a stage read out of a job description during enrichment is overwritten by the value joined from the company record, so treat the company record as the real source. ## Honest limits of the catalog Read this section before describing Rocketlist's coverage to anyone. - **Stage mix.** Rocketlist markets itself around startup jobs, but the catalog is weighted towards companies well past the early stage. Measured 2026-08-28 across active, non-duplicate postings: Series D+/Growth 32.0%, Series B-C 19.9%, public or acquired 18.5%, Series A 10.6%, Seed or earlier 8.9%, stage unknown 9.3%. Seed-or-earlier plus Series A is under 20% of postings. "Every startup job" is not an accurate description. - **Posting dates.** The `datePosted` value in a listing's structured data is the earliest date Rocketlist can evidence that the posting existed. Only the BambooHR and Teamtailor adapters read a genuine publication date from the source; for the rest of the catalog it is the date Rocketlist first crawled the role, because those adapters have historically not read the employer's real publication date. It is an upper bound on the true posting date, not the employer's own date. The human-readable date shown on the page is a separate, looser value and can be later than the structured `datePosted`; prefer the structured one. - **Expiry.** Rocketlist does not publish a `validThrough` expiry, because it does not know when a role expires. One predicate decides closure everywhere — the API's `listing_closed` field, the noindex, the removal of structured data — and it has two triggers: `is_active` is false, OR the row carries no `date_scraped` at all. A closed role loses its JobPosting structured data and is marked noindex; its page stays reachable so existing links do not break. Read that signal narrowly, because it is much broader than "the employer took the role down". Deduplication deactivates rows too, and it dominates: measured 2026-08-29, 613,950 of the 734,571 rows with `is_active` false were duplicates, every duplicate row is deactivated, and no row at all was missing a `date_scraped`. Some closures ARE employer-confirmed: a cron probes the employer URL of active, non-duplicate listings and deactivates the ones it finds definitively dead. But those are the minority, so a closed row cannot be read as "the employer withdrew this role". Of the 613,950 closed duplicates, 188,979 point at a canonical row that is still active, 138,051 have no canonical recorded at all, and the rest point at a canonical that is itself closed. These counts drift daily. - **Staleness is not closure.** A role that simply has not been re-crawled in 60 days is dropped from the sitemap, search and other discovery surfaces, but it is NOT treated as closed: its detail page stays indexable and keeps its JobPosting structured data. Staleness measures Rocketlist's crawl health, not whether the employer is still accepting applications. - **Geography.** Coverage is strongest in the United States, then the United Kingdom, Germany, Canada and India. Roughly a fifth of active roles are remote. Country labels come from the source posting and are not fully normalised. - **Salary.** Most postings do not state one. Measured 2026-08-28, 22,819 of 109,655 active postings — about a fifth — carry a salary range. The rest record it as "Not specified" or leave the field empty, and publish no `baseSalary` in their structured data. A missing salary says nothing about the role. - **Duplicates.** The same role can appear on more than one board. Duplicates are flagged, and redirected to the canonical listing when one is known — but about a fifth of flagged duplicates have no canonical target recorded, and those serve their own page instead of redirecting. Deduplication is not perfect. ## URL structure - Job detail: `https://rocketlist.ai/jobs/{slug}` — the canonical form. Slugs are `company-title-atsJobId`. The legacy `https://rocketlist.ai/jobs/{uuid}` form keeps resolving indefinitely. It permanently redirects to the canonical URL when one resolves: 301 to this slug for an ordinary row, or 308 to the canonical row for a posting flagged as a duplicate. When no canonical target resolves — a duplicate whose canonical row is gone, or a row with no valid slug — the UUID URL serves the job itself rather than 404ing. - Company detail: `https://rocketlist.ai/companies/{slug}` - Investor detail: `https://rocketlist.ai/investors/{slug}` - Job search: `https://rocketlist.ai/jobs` - Public job JSON: `https://rocketlist.ai/api/public/jobs/{slug}` — accepts slug or UUID. - YC mortality report: `https://rocketlist.ai/insights/yc-mortality-table` - YC founder directory: `https://rocketlist.ai/yc-founders` - YC founder directory CSV export: `https://rocketlist.ai/api/yc-founders/export` — signed-in accounts only, see the Y Combinator dataset section below. - Founders Inc founder directory: `https://rocketlist.ai/founders-inc` - Founders Inc founder directory CSV export: `https://rocketlist.ai/api/founders-inc/export` — signed-in accounts only, see the Founders Inc dataset section below. ## Y Combinator dataset Rocketlist publishes a Y Combinator dataset, separate from the job catalog above and built the same way: from public pages, with no paid data source and no authenticated scraping. It ships as two pages over the same 6,201 companies, built from a snapshot captured 2026-09-02: - `https://rocketlist.ai/insights/yc-mortality-table` — a report: outcome, industry, geography, headcount, hiring and founder-count statistics for every YC batch, with a named caveat under each chart explaining what a cross-section cannot support. - `https://rocketlist.ai/yc-founders` — a searchable directory, one row per founder profile, filterable by batch year, status, industry and hiring. Both are regenerated from a fresh snapshot on a monthly cadence and keep the same address; cite them by URL, since the figures move but the link does not. The company base under both pages is the same: 6,201 YC companies from the public `yc-oss.github.io/api/companies/all.json` community index. Every company-level figure on either page is computed over all 6,201, so founder coverage introduces no bias into them. The founder rows differ between the two pages, and the difference is worth stating rather than smoothing over. The report's founder-count statistics come from the 2026-09-02 snapshot: 11,230 people holding 11,513 founder-company roles, on 5,974 of the 6,201 companies. The directory was rebuilt on 2026-09-04 from a completed pass over 6,200 of the 6,201 company pages, and carries 11,438 people holding 11,714 roles, on 6,067 companies. It is the larger figure for two reasons: identity is now Y Combinator's own founder id rather than the LinkedIn slug, and a founder YC lists without any LinkedIn link is now a row instead of being dropped. 262 people are founders of more than one YC company. Cite per-person figures against the page you took them from; do not mix the two. Both sets are harvested from what Y Combinator renders in plain HTML on its own company pages (`ycombinator.com/companies/`, no auth). The directory takes each founder's name and role from that page too, rather than reconstructing a name from the LinkedIn slug the way the earlier build did, and marks any row where it fell back. Both pages carry schema.org `Dataset` JSON-LD (plus `Article` and `BreadcrumbList` on the report, `BreadcrumbList` on the directory) under a CC BY 4.0 licence, declared in the JSON-LD itself rather than only here. The directory's CSV export at `https://rocketlist.ai/api/yc-founders/export` is gated to signed-in accounts and returns 401 without a session; the HTML directory and the report are open to anyone, including crawlers, with no gate. One caveat applies to the whole dataset, not just one chart, and is worth stating plainly here: the region field recorded against a company is that company's *current* location, not founder nationality. A founding team that relocated is counted where it operates today, not where it started or where its founders are from. Neither page in this dataset is a measure of founder origin, and nothing here should be read as one. ## Founders Inc dataset Rocketlist publishes a second accelerator dataset covering the Founders Inc (f.inc) portfolio. It is built the same way as the Y Combinator dataset above but is NOT offered on the same licence terms; see the end of this section. - `https://rocketlist.ai/founders-inc` — a searchable directory, one row per founder, filterable by industry and founding year, with a signed-in CSV export at `https://rocketlist.ai/api/founders-inc/export` that returns 401 without a session. The HTML directory is open to anyone, including crawlers, with no gate. Every figure below is rendered from the shipped snapshot at `frontend/data/founders-inc.json`, not typed into this file, so it cannot drift from the page: 335 founders across 192 portfolio companies in 8 industries, captured 2026-09-04. 295 list a LinkedIn profile and 234 list an X account; 30 list neither, which is recorded as an absence rather than filled in from elsewhere. 9 of the companies have a Rocketlist company page and link to it; the rest link to their Founders Inc page, because the Rocketlist catalog is job-driven and only holds companies that have posted a role. Founders Inc renders its portfolio pages in the browser, so the served HTML carries no founder data at all; each page is loaded in a headless browser before it is read, and the founder name, X handle and LinkedIn link are taken from one founder block on one company page. A LinkedIn account and an X account are therefore paired because Founders Inc lists them on the same person, never because they resembled each other. A person who founded more than one portfolio company is one row, with the other companies named on it. No paid data source and no authenticated scraping went into this page either. A portfolio company is matched to its Rocketlist company page by registrable website domain, never by name or slug. Both sides slugify a company name, so slugs agree often enough to be tempting and collide often enough to be wrong: matching on them would have sent readers to a live page belonging to a different company, which is worse than no link because nothing looks broken. Where no page exists, the company links to its Founders Inc page rather than to a guessed URL. The directory carries schema.org `Dataset` JSON-LD, deliberately with NO licence declared. The Y Combinator dataset above is offered under CC BY 4.0; this one is not, because it is read off Founders Inc's own pages and Founders Inc reserves rights over that content. Rocketlist claims no redistribution right it was not granted, so it asserts none. Every row links back to the source page it came from. ## MCP server Rocketlist runs a public, read-only Model Context Protocol server. It needs no account, no API key and no OAuth. - Endpoint: `https://rocketlist.ai/mcp` - Transport: Streamable HTTP. POST JSON-RPC to that URL. The same URL also answers a GET as the older HTTP+SSE handshake, for clients that need it. - Discovery document: `https://rocketlist.ai/.well-known/mcp.json`. It is generated from a live handshake with the server, so its version and tool list are whatever the running server reported at most five minutes ago; it is cacheable for five minutes and no longer, and a handshake that fails or comes back malformed produces a 503 rather than a stale or invented document. - Rate limit: 60 requests per minute per IP, in any burst shape. Over that the server answers HTTP 429 with a Retry-After header and a JSON-RPC error body carrying `error.data.retry_after_seconds`. The proxy in front applies a wider limit as an abuse backstop; it cannot fire first for a client that stays inside 60 per minute, and its 429 carries the same body and a Retry-After too. Tools, all read-only and none of them personal: - `search_jobs` — search active postings by free text, skills, industry, city, remote-only, investor, company funding stage and years-of-experience range. - `get_job` — one job posting, by slug or by UUID. Its own tool description says "active", but it resolves a deactivated posting too and does not flag it. `GET https://rocketlist.ai/api/public/jobs/{id}` returns a `listing_closed` field; the MCP payload does not carry one. - `search_companies` — search hiring companies by name, investor or funding stage. Only companies with at least one active job are returned. - `get_company` — one hiring company by UUID, with up to ten of its most recent active jobs. Most hiring companies have fewer than ten. - `hiring_stats`: counts over every matching active job, not a sample: totals, the top cities, countries, companies, verticals, stages, work modes, categories and seniority levels, and published pay with sample sizes. Same filters as `search_jobs` except skills. The investor and stage filters inherit the coverage gaps described above. Neither field is recorded for every company, and a company missing the field is excluded when you filter on it rather than being returned unranked, so a filtered result is a lower bound. Each tool's own description carries the current coverage figure; read it before treating an empty result as "no such companies". A second, authenticated server at `https://rocketlist.ai/mcp/private` reads a signed-in candidate's own matches and saved jobs. It requires a personal token created at `https://rocketlist.ai/account/mcp` and cannot be used anonymously. ## HTTP API The unauthenticated read endpoints are described at `https://rocketlist.ai/openapi.json`. Most of Rocketlist's API is per-user and returns 401 without a session, so that document is deliberately short: catalog search, one job, one company, one investor's portfolio, the filter vocabulary, headline counts and health. The MCP server above covers the same catalog with less bookkeeping. `https://rocketlist.ai/robots.txt` disallows `/api/` for every crawler. That keeps crawlers out of JSON duplicates of pages they already index; it is not an access restriction, and it does not apply to a program calling these endpoints on purpose. ## Structured data Job detail pages carry schema.org `JobPosting` and `BreadcrumbList` JSON-LD. Company pages carry `Organization` once the company resolves. JobPosting markup is present until the closure predicate above fires, and is then removed. A missing JobPosting therefore means the row is closed by that predicate, which is not the same as the employer having withdrawn the role: as the Expiry note above records, deduplication accounts for most closures. A merely stale role keeps its JobPosting markup. `BreadcrumbList` is present on every successfully resolved job page, including closed ones. When the catalog read fails the page renders without any JSON-LD rather than 404ing. ## Crawling `https://rocketlist.ai/robots.txt` allows crawling of the public catalog and disallows `/auth/`, `/account/`, `/onboarding/` and `/api/`. The sitemap index is at `https://rocketlist.ai/sitemap.xml`.