for_your_agents
Everything the jobs board knows, readable by machines: live open roles across the speedrun and a16z portfolios, hiring companies, curated collections, and aggregate comp data. Two doors, same data, same freshness. No auth, no keys, no cost.
/api/v1
Versioned JSON over HTTPS at https://speedrun-talent-network.com/api/v1. Read-only. Open CORS, so it
works straight from a browser or an agent runtime. Responses are edge-cached for 1 to 5
minutes. The spec at /api/v1/openapi.json
is complete and accurate to the implementation.
| Endpoint | What it returns |
|---|---|
GET /api/v1/jobs | Search open roles: q, fn, sen, emp, loc, remote, comp, portfolio, cohort, company, stealth, scope, sort, page. Returns jobs + live facet counts + total. |
GET /api/v1/jobs/{id} | One role: full description text, posted pay band, how to apply. Closed roles return status:"closed". |
GET /api/v1/companies | Every portfolio company with at least one live role, most open roles first. |
GET /api/v1/companies/{slug} | Company profile + all of its live roles. |
GET /api/v1/collections | Curated collections: portfolio tiers, core industries, hubs, investors, signals. Live counts. |
GET /api/v1/collections/{slug} | One collection with ranked member companies. |
GET /api/v1/stats/hiring | Aggregate hiring data: demand mix, posted pay bands by function, remote share, top cities. |
GET /api/v1/openapi.json | The complete OpenAPI 3.1 spec. |
Try it:
curl "https://speedrun-talent-network.com/api/v1/jobs?fn=engineering&loc=remote&comp=200000&source=my-agent" - Errors come back as
{"error":{"code","message"}}with a matching HTTP status. - Every list is capped and paginated; responses carry
page,page_size,total_pages. - Jobs search speaks the board's exact filter vocabulary, and every response includes live facet counts so you can discover valid values instead of guessing.
- Pass
?source=your-agent-nameon any call. It is optional, echoed back in the response, and how we notice (and prioritize) your integration. - Unannounced companies appear as
"Stealth"with masked titles. That masking happens in the query layer; there is no parameter that reveals them. scope=everywhereon jobs search widens results past the portfolio into the broader startup universe when that scope is live on the site.
mcp.speedrun-talent-network.com
A remote MCP server (streamable HTTP, no auth) for Claude and any other MCP client. Same data and guards as the REST API, packaged as tools with descriptions agents can use well.
https://mcp.speedrun-talent-network.com/mcp claude.ai / Claude Desktop: Settings > Connectors > Add custom connector, then paste the URL above.
Claude Code:
claude mcp add --transport http speedrun-talent https://mcp.speedrun-talent-network.com/mcp Any client that reads an mcpServers config:
{
"mcpServers": {
"speedrun-talent": {
"type": "http",
"url": "https://mcp.speedrun-talent-network.com/mcp"
}
}
} | Tool | Does |
|---|---|
search_jobs | mirrors /api/v1/jobs: full-text + facet search over every live role |
get_job | one role with description and how to apply |
get_company | company profile + open roles |
list_collections | curated collections with live counts |
get_collection | ranked members of one collection |
get_hiring_stats | aggregate hiring + comp data |
list_companies | raw roster of hiring companies |
fair_use
- Reads only, today. Agent-assisted actions (signing candidates up, submitting to roles) are on the roadmap and will require auth when they land.
- Link people to the canonical
urlfields on speedrun-talent-network.com rather than re-hosting listings; that is where roles stay live and current. - Data refreshes continuously from each company's own job board; cached responses can lag a few minutes.
- Please identify yourself with
?source=. Heavy anonymous scraping gets rate-limited at the edge; the API is the better deal.
Also machine-readable: /llms.txt,
/jobs.md (every open role as markdown), and
/jobs.rss.
Building something on this? The talent team reads talent@a16zspeedrun.com.