mcp

Search live roles across hundreds of a16z portfolio startups and join the speedrun talent network.

使うべきか

品質と安全性

B
説明の品質
100%
スキーマの完全性
77%
命名の品質
96%
ポイズニングのリスク
20%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainsearch_jobs 内
  • MEDIUMTool description contains URL to non-standard domainget_job 内
  • MEDIUMTool description contains URL to non-standard domainget_company 内
  • MEDIUMTool description contains URL to non-standard domainget_hiring_stats 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,912トークン数(ツール定義)
~3.1 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.06%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.speedrun-talent-network.com/mcp"
    }
  }
}

リモートエンドポイント

https://mcp.speedrun-talent-network.com/mcpstreamable-http

できること

ツール一覧

ツール(10)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_jobs(q, fn, spec, sen, lvl, ...)

Search live open roles across the a16z speedrun talent network jobs board (speedrun portfolio + the wider a16z portfolio; data syncs continuously from each company's own job board). Full-text search plus facet filters, with live facet counts in every response — read the facets to discover valid filter values. Results are paginated (50 per page, 0-based page). Every job carries a canonical url on https://speedrun-talent-network.com; link users there to view or apply. By default results cover the portfolio only; pass scope='speedrun' to narrow to speedrun portfolio companies only, or scope='everywhere' to also include the wider startup universe when that scope is live (the response then reports beyond_portfolio, the count of extra matches past the scope boundary: universe roles in portfolio scope, roles beyond speedrun within the a16z portfolio in speedrun scope; in everywhere scope it counts the universe-tier roles already included in the results — never add it to total). Mirrors GET https://speedrun-talent-network.com/api/v1/jobs exactly.

入力スキーマ

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Free-text query over title, company, and location. Synonyms expand (ml, ai, swe, pm, gtm, nyc, sf, la).",
      "type": "string",
      "maxLength": 120
    },
    "fn": {
      "description": "Function filter, comma-separated. Values: engineering, research, product, design, sales, marketing, operations, other; while classified crafts are enabled also data, growth, customer, finance, legal, people, business_development, strategy, executive, hardware_manufacturing (read facets.fn for the live set).",
      "type": "string"
    },
    "spec": {
      "description": "Specialty filter, comma-separated slugs; meaningful with exactly ONE fn value (specialties are scoped to a craft). Read facets.spec in a one-craft response for the live vocabulary. Ignored while classified crafts are disabled.",
      "type": "string"
    },
    "sen": {
      "description": "Seniority filter, comma-separated. Values: founding, exec, staff, senior, junior, intern, plus _ for roles with no stated level (facets.senUnspecified counts them). Remapped onto lvl while the classified level ladder is enabled.",
      "type": "string"
    },
    "lvl": {
      "description": "Classified level filter, comma-separated, ladder order: intern, new_grad, junior, mid, senior, staff_principal, lead_manager, director, vp, c_level, founder, plus _ for roles with no level label (facets.lvlUnspecified counts them). Live counts in facets.lvl. Ignored while classified crafts are disabled.",
      "type": "string"
    },
    "yoe": {
      "description": "Classified minimum-experience band, comma-separated, band order: 0 (none required), under_1, 1_2, 3_5, 6_9, 10_14, 15_plus, plus _ for roles with no experience label (facets.yoeUnspecified counts them). Live counts in facets.yoe. Ignored while classified crafts are disabled.",
      "type": "string"
    },
    "eng": {
      "description": "Classified engagement type, comma-separated: full_time, part_time, contract, internship, cofounder, advisor, plus _ for roles with no engagement label (facets.engUnspecified counts them). Live counts in facets.eng. Prefer this over emp (the raw ATS field, ~half empty) for part-time / contract / internship asks. Ignored while classified crafts are disabled.",
      "type": "string"
    },
    "founding": {
      "description": "true = only roles classified as founding roles (founding team, first hires). facets.founding counts them under the other filters; unlabelled roles never match (facets.foundingUnspecified). Ignored while classified crafts are disabled.",
      "type": "boolean"
    },
    "ai": {
      "description": "true = only roles classified as AI-native (the day job is building with or on models). facets.aiRole counts them under the other filters; unlabelled roles never match (facets.aiUnspecified). Ignored while classified crafts are disabled.",
      "type": "boolean"
    },
    "emp": {
      "description": "Employment type, comma-separated. Values: FullTime, PartTime, Intern, Contract, Temporary.",
      "type": "string"
    },
    "loc": {
      "description": "Location filter: comma-separated city names (see facets.loc in any response for the live vocabulary), plus the special value \"remote\".",
      "type": "string"
    },
    "remote": {
      "description": "true = only roles open to remote candidates (alias of wp=remote).",
      "type": "boolean"
    },
    "wp": {
      "description": "Workplace filter, comma-separated (OR within the group): remote, hybrid, onsite. Live counts in facets.workplace.",
      "type": "string"
    },
    "metro": {
      "description": "Metro filter, comma-separated keys (max 5): sf, nyc, la, sv, dc, chi, sea, bos, aus, lon, oc, dal, atl, tor, sd. Expands to each metro's cities server-side; ORs with loc/remote. Live counts in facets.metro.",
      "type": "string"
    },
    "comp": {
      "description": "Minimum annual compensation in USD: matches roles whose posted pay band reaches this number. Only roles with posted comp match unless comp_any is true.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "comp_max": {
      "description": "Maximum annual compensation in USD: matches roles whose posted pay band starts at or below this number. Combine with comp for a range.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "comp_any": {
      "description": "true = alongside comp/comp_max, ALSO include roles without posted comp (hidden by default; facets.compHidden counts them).",
      "type": "boolean"
    },
    "posted": {
      "description": "Posted-date preset: published in the past day, week or month. Live counts in facets.posted.",
      "type": "string",
      "enum": [
        "24h",
        "7d",
        "30d"
      ]
    },
    "stage": {
      "description": "Company stage filter, comma-separated; read facets.stage for the live vocabulary (e.g. seed, series_a, series_b, growth). While company facets are enabled the stage is the roster stage with a classified stage filling gaps, and facets.stageUnspecified counts roles at companies with no stage.",
      "type": "string"
    },
    "size": {
      "description": "Company size filter, comma-separated employee bands: 1_10, 11_50, 51_200, 201_500, 501_1000, 1001_5000, 5000_plus. Live counts in facets.size; facets.sizeUnspecified counts roles at companies with no size label. Ignored while company facets are disabled.",
      "type": "string"
    },
    "industry": {
      "description": "Company industry filter, comma-separated slugs of LinkedIn industry names (e.g. computer_software, financial_services, hospital_health_care = Hospital & Health Care); read facets.industry in any response for the live top-24 vocabulary. Ignored while company facets are disabled.",
      "type": "string"
    },
    "lab": {
      "description": "true = only roles at frontier AI labs (facets.frontierLab counts them). Ignored while company facets are disabled.",
      "type": "boolean"
    },
    "bigtech": {
      "description": "true = only roles at big tech companies (facets.bigTech counts them). Ignored while company facets are disabled.",
      "type": "boolean"
    },
    "portfolio": {
      "description": "Portfolio tier, comma-separated: speedrun (the a16z speedrun accelerator portfolio) and/or a16z (the wider a16z portfolio).",
      "type": "string"
    },
    "cohort": {
      "description": "speedrun cohort tag(s), comma-separated, e.g. SR007.",
      "type": "string"
    },
    "company": {
      "description": "Exact company key (as returned in job.company).",
      "type": "string"
    },
    "stealth": {
      "description": "'only' = unannounced (stealth) roles only; 'hide' = exclude them.",
      "type": "string",
      "enum": [
        "only",
        "hide"
      ]
    },
    "scope": {
      "description": "'speedrun' narrows the search to a16z speedrun portfolio companies only; 'everywhere' widens it past the a16z portfolio into the broader startup universe. Server-gated: while the scope machinery is dark this is inert.",
      "type": "string",
      "enum": [
        "speedrun",
        "portfolio",
        "everywhere"
      ]
    },
    "sort": {
      "description": "rel = relevance (default when q is set), new = newest first (default otherwise), comp = highest posted comp first.",
      "type": "string",
      "enum": [
        "rel",
        "new",
        "comp"
      ]
    },
    "page": {
      "description": "0-based page number, 50 jobs per page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_job(id)

Fetch one role by id: a job UUID, the first 8 hex characters of one, or the canonical slug from a https://speedrun-talent-network.com/jobs/... URL. Returns the full posting: plain-text description, posted pay band, how to apply (apply.kind 'onsite' = the candidate applies right on the job url; 'external' = the url hands off to the company's own careers page), the canonical url to send users to, and, while classified labels are enabled, job.labels (function, specialty, seniority, minimum experience band, workplace, engagement, founding-role and AI-native flags as display strings; null when the role has no classification). Closed roles come back with status:'closed' rather than an error.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 4,
      "description": "Job UUID, 8-hex id prefix, or canonical job slug."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_company(slug)

Fetch one company profile by slug (from job.company_slug or a https://speedrun-talent-network.com/companies/... URL): name, portfolio tier, cohort, location, industries, one-line blurb, every live open role with canonical urls, and, while company facets are enabled, company.labels (stage, size band, business model, industry as LinkedIn's industry name, frontier-lab / big-tech / AI-native / hardware flags as display strings; null when the company has no classification yet). Use search_jobs or list_collections to discover companies; use this for the full picture of one employer.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "description": "Company slug, e.g. \"anthropic\" in /companies/anthropic."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_collections

List the published curated collections of hiring companies, grouped as: pinned (portfolio tiers), industries (the 12-sector vocabulary, e.g. ai-infra, defense, fintech), hubs (cities + remote), investors, and signals (new-this-week, founding-roles, remote-first, hiring-in-volume). Each carries live company/role counts and a canonical url. Start here when a user asks "who's hiring in X" — then drill in with get_collection.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_collection(slug, page)

Fetch one published collection by slug with its ranked member companies: name, tier, cohort, open-role count, location, stage, investors, and which functions/cities they're hiring in. Members are paginated (100 per page). Follow up with get_company or search_jobs (company filter) for a specific member's roles.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "description": "Collection slug from list_collections, e.g. \"ai-infra\" or \"new-york\"."
    },
    "page": {
      "description": "0-based member page, 100 per page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 200
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_hiring_stats

Aggregate hiring data across the whole board, recomputed live: open-role and hiring-company counts, demand mix by function, posted pay-band midpoints by function (p25/median/p75, annual USD), remote share, top hiring locations, and the speedrun vs a16z portfolio split. Use this to answer "what do a16z portfolio startups pay" or "how many startup jobs are open" — the human-readable version lives at https://speedrun-talent-network.com/network.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_network_info

What the a16z speedrun talent network is, why a candidate would join, how joining works, and what happens after. Use this before pitching the network to a candidate so the description is accurate; joining itself is the join_network tool.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡join_network(full_name, email, linkedin_url, region, current_company, ...)

Add a candidate to the a16z speedrun talent network, with their consent. Requires full_name, email, and linkedin_url; every other field strengthens the profile. Idempotent and always safe to retry: an existing profile is never modified, and the response is identical whether or not the email was already in the network (membership is never disclosed). On success, relay the returned message and finish_url to the candidate so they can add a resume. Never call this without the candidate's explicit go-ahead.

入力スキーマ

{
  "type": "object",
  "properties": {
    "full_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Candidate's full name."
    },
    "email": {
      "type": "string",
      "minLength": 5,
      "maxLength": 200,
      "description": "Candidate's email address."
    },
    "linkedin_url": {
      "type": "string",
      "minLength": 5,
      "maxLength": 300,
      "description": "LinkedIn profile URL, e.g. https://linkedin.com/in/handle."
    },
    "region": {
      "description": "Where they are based, e.g. \"SF Bay Area\" or \"NYC\".",
      "type": "string",
      "maxLength": 200
    },
    "current_company": {
      "description": "Current employer.",
      "type": "string",
      "maxLength": 200
    },
    "craft": {
      "description": "Primary craft, e.g. engineering, design, product, research, sales, marketing, operations.",
      "type": "string",
      "maxLength": 100
    },
    "portfolio_links": {
      "description": "Portfolio / GitHub / personal site URLs, comma-separated.",
      "type": "string",
      "maxLength": 2000
    },
    "is_founding": {
      "description": "True if they want founding-team roles.",
      "type": "boolean"
    },
    "is_student": {
      "description": "True if they are currently a student.",
      "type": "boolean"
    },
    "graduation_date": {
      "description": "Expected graduation, if a student.",
      "type": "string",
      "maxLength": 50
    },
    "work_arrangements": {
      "description": "Work arrangements they are open to, comma-separated, e.g. \"In person, Hybrid, Remote\".",
      "type": "string",
      "maxLength": 300
    },
    "accomplishments": {
      "description": "The thing they are proudest of having built or shipped.",
      "type": "string",
      "maxLength": 2000
    },
    "currently_building": {
      "description": "What they are building or working on now.",
      "type": "string",
      "maxLength": 2000
    },
    "polarity": {
      "description": "A strongly held opinion about how they like to work.",
      "type": "string",
      "maxLength": 2000
    },
    "work_links": {
      "description": "Links to work samples, comma-separated.",
      "type": "string",
      "maxLength": 2000
    },
    "agent_client_id": {
      "description": "Identifier for the calling agent/integration, e.g. \"claude-code\" or \"career-ops\". Used for attribution only.",
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "full_name",
    "email",
    "linkedin_url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡express_interest(job_id, email, linkedin_url, full_name, agent_client_id)

Record a candidate's interest in one live role (with their consent) and get back the canonical apply info. This does NOT submit an application anywhere: apply.kind 'onsite' means the candidate applies on the returned job url; 'external' means the url hands off to the company's own careers page. A candidate not yet in the a16z speedrun talent network is also added as a partial profile; always relay the returned finish_url so they can add a resume (the response is identical whether or not they were already in the network — membership is never disclosed). Idempotent per candidate; safe to retry.

入力スキーマ

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "minLength": 4,
      "description": "Job UUID, 8-hex id prefix, or canonical job slug (same ids as get_job/search_jobs)."
    },
    "email": {
      "type": "string",
      "minLength": 5,
      "maxLength": 200,
      "description": "Candidate's email address."
    },
    "linkedin_url": {
      "description": "LinkedIn profile URL. Optional but strongly recommended.",
      "type": "string",
      "maxLength": 300
    },
    "full_name": {
      "description": "Candidate's full name.",
      "type": "string",
      "maxLength": 200
    },
    "agent_client_id": {
      "description": "Identifier for the calling agent/integration. Attribution only.",
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "job_id",
    "email"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_companies(page)

List every portfolio company with at least one live open role, most open roles first (paginated, 100 per page). Prefer list_collections for browsing by industry/hub/signal; use this for a raw roster.

入力スキーマ

{
  "type": "object",
  "properties": {
    "page": {
      "description": "0-based page, 100 companies per page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 10 件
検証済みバージョンは記録されていませんツール 10 件