yc-reader
himself65/finance-skills
Query Y Combinator company data, batches, and portfolio insights from a daily-updated public API.
What is yc-reader?
Read-only access to Y Combinator's public company database via the yc-oss API. Fetch company profiles, batch rosters, industry/tag breakdowns, hiring status, and founder-diversity data. Use this when researching YC-backed startups, specific batches, portfolio sectors, or startup ecosystem trends.
- Fetch all YC companies or filter by batch, industry, tag, hiring status, or diversity
- Look up individual company profiles with team size, status, website, and one-liner
- Query top-performing YC companies and non-profit portfolio
- Discover companies currently hiring and founder-diversity lists
- Search companies by name and sort/filter results with jq
How to install yc-reader
npx skills add https://github.com/himself65/finance-skills --skill yc-reader- curl (pre-installed on most systems)
- jq for JSON parsing and filtering (install via brew or apt-get if missing)
How to use yc-reader
- 1.Verify curl and jq are available on your system
- 2.Identify the appropriate endpoint based on the user's request (batch, industry, tag, company list, etc.)
- 3.Execute a curl request to https://yc-oss.github.io/api/ with the correct path and pipe through jq for filtering
- 4.Use jq filters to narrow results (e.g., select hiring companies, search by name, extract specific fields)
- 5.Summarize results with company names, one-liners, batches, team sizes, and websites rather than raw JSON dumps
Use cases
- Research which YC companies operate in fintech or AI to identify competitors or partners
- Find all companies from a specific batch (e.g., Winter 2025) to track cohort progress
- Identify YC-backed startups that are actively hiring for market intelligence
- Analyze founder diversity across the YC portfolio for DEI research
- Discover top-performing YC companies by team size or status for investment research
- Venture capitalists and startup researchers
- Founders researching the YC ecosystem and cohort peers
- Recruiters sourcing YC-backed companies
- Business analysts tracking startup trends and portfolio composition
yc-reader FAQ
No. The yc-oss API is public and free; no API key or login is needed.
The dataset is refreshed daily via GitHub Actions, so company hiring status and portfolio changes are current.
No. This is a read-only API. You can only fetch and query existing YC company data.
Use the industries/{industry}.json or tags/{tag}.json endpoints. Check meta.json for valid industry and tag names (lowercase with hyphens, e.g., 'developer-tools').
Fetch companies/all.json or a batch endpoint and use jq with select and test filters: jq '[.[] | select(.name | test("query"; "i"))]'
Full instructions (SKILL.md)
Source of truth, from himself65/finance-skills.
name: yc-reader description: > Look up Y Combinator companies and batches from the public yc-oss API, a static JSON dataset refreshed daily: company profiles, batch rosters (e.g. W25, S24), companies by industry or tag, top companies, who is hiring, founder-diversity lists, and overall YC stats. Use this skill whenever the user asks about YC-backed startups, a YC batch, YC companies in a sector or tag or that are hiring, the Y Combinator portfolio, or startup and venture research that draws on YC data. Read-only.
Y Combinator Reader (Read-Only)
Fetches Y Combinator company data from the yc-oss/api, an unofficial open-source API that indexes all publicly launched YC companies. The data is sourced from YC's Algolia search index and updated daily via GitHub Actions.
This is a read-only data source. It provides company profiles, batch listings, industry/tag breakdowns, hiring status, and diversity data. No write operations exist — the API serves static JSON files.
No authentication required. The API is public and free. Just use curl to fetch JSON endpoints.
Step 1: Verify Prerequisites
This skill only needs curl (to fetch data) and jq (to parse/filter JSON). Both are pre-installed on most systems.
!`(command -v curl > /dev/null && echo "CURL_OK" || echo "CURL_MISSING") && (command -v jq > /dev/null && echo "JQ_OK" || echo "JQ_MISSING")`
If JQ_MISSING, install it:
# macOS
brew install jq
# Linux (Debian/Ubuntu)
sudo apt-get install jq
If jq is unavailable, you can still fetch raw JSON with curl and parse it inline with Python or other tools — but jq makes filtering much easier.
Step 2: Identify What the User Needs
Match the user's request to the appropriate endpoint. See references/api_reference.md for full details.
| User Request | Endpoint | Notes |
|---|---|---|
| Overall YC stats | meta.json | Company count, batch list, industry/tag lists |
| All companies | companies/all.json | Full dataset (~5,700 companies) — large response |
| Top companies | companies/top.json | ~91 top-performing YC companies |
| Companies hiring | companies/hiring.json | ~1,400 currently hiring |
| Non-profit companies | companies/nonprofit.json | YC-backed non-profits |
| Diversity data | companies/black-founded.json, hispanic-latino-founded.json, women-founded.json | Founder diversity |
| Specific batch | batches/{batch-name}.json | e.g., winter-2026.json, spring-2026.json, fall-2025.json |
| Single company profile | batches/{batch-name}/{slug}.json | e.g., batches/summer-2009/stripe.json, batches/winter-2009/airbnb.json |
| By industry | industries/{industry}.json | e.g., fintech.json, healthcare.json |
| By tag | tags/{tag}.json | e.g., ai.json, developer-tools.json |
Batch name format
Batches use {season}-{year} format: winter-2026, spring-2026, summer-2026, fall-2025. Older batches follow the same pattern back to summer-2005. The short form (w09, s21) also works for the per-company endpoint.
Industry and tag name format
Use lowercase with hyphens for multi-word names: real-estate, developer-tools, machine-learning.
Step 3: Execute the Request
Base URL
https://yc-oss.github.io/api/
General pattern
# Fetch and pretty-print
curl -s https://yc-oss.github.io/api/companies/top.json | jq .
# Count companies in a result
curl -s https://yc-oss.github.io/api/batches/winter-2025.json | jq length
# Filter by field (e.g., hiring companies in a batch)
curl -s https://yc-oss.github.io/api/batches/winter-2025.json | jq '[.[] | select(.isHiring == true)]'
# Extract specific fields
curl -s https://yc-oss.github.io/api/companies/top.json | jq '.[] | {name, one_liner, batch, team_size, website}'
# Search by name (case-insensitive)
curl -s https://yc-oss.github.io/api/companies/all.json | jq '[.[] | select(.name | test("stripe"; "i"))]'
Key rules
- Use
-sflag with curl to suppress progress output - Pipe through
jqfor readable output and filtering - Avoid fetching
companies/all.jsonunless necessary — it's a large response (~5,700 companies). Prefer more specific endpoints (batches, industries, tags) when possible - Use
jqselect/filter to narrow results client-side when the API doesn't have a specific endpoint for what the user wants - Batch names are lowercase with hyphens —
winter-2025notWinter 2025orW25 - Tag and industry names are lowercase with hyphens —
developer-toolsnotDeveloper Tools
Common jq filters
| Filter | Purpose |
|---|---|
jq length | Count results |
jq '.[0]' | First company |
jq '.[:10]' | First 10 companies |
jq '[.[] | select(.isHiring == true)]' | Only hiring companies |
jq '[.[] | select(.status == "Active")]' | Only active companies |
jq '[.[] | select(.team_size > 100)]' | Companies with 100+ employees |
jq '.[] | {name, one_liner, batch, website}' | Select specific fields |
jq '[.[] | select(.name | test("query"; "i"))]' | Search by name |
jq 'sort_by(-.team_size) | .[:10]' | Top 10 by team size |
Step 4: Present the Results
Summarize rather than dump JSON. For each company, give the name, one-liner, batch, team size, status, hiring status (a growth signal), and website. For a batch, lead with its size and notable companies; for an industry or tag, the count and which companies are top or hiring; for research questions, aggregate stats such as counts, common industries, and team-size distribution. Mention that the dataset refreshes daily.
Step 5: Diagnostics
If a request fails:
| Error | Cause | Fix |
|---|---|---|
404 Not Found | Invalid batch, industry, or tag name | Check meta.json for valid names |
Empty array [] | No companies match the query | Broaden the search or check spelling |
curl: Could not resolve host | No internet connection | Check network connectivity |
| Large/slow response | Fetching companies/all.json (5,700+ entries) | Use a more specific endpoint or add jq filters |
To discover valid batch, industry, and tag names:
# List all batches
curl -s https://yc-oss.github.io/api/meta.json | jq '.batches[].name'
# List all industries
curl -s https://yc-oss.github.io/api/meta.json | jq '.industries[].name'
# List all tags (there are 333+)
curl -s https://yc-oss.github.io/api/meta.json | jq '.tags[].name'
Reference Files
references/api_reference.md— Complete endpoint reference with company schema, all endpoint URLs, and research workflow examples
Read the reference file when you need the exact company field schema, valid batch/industry/tag names, or detailed research workflow patterns.
Related skills
More from himself65/finance-skills and the wider catalog.

yfinance-data
Fetch stock quotes, financials, options, and market data from Yahoo Finance via yfinance.

company-valuation
Estimate intrinsic value via DCF, peer multiples, and sum-of-parts methods with sensitivity analysis.

discord-reader
Read Discord servers, channels, and messages for financial research via opencli.

earnings-preview
Pre-earnings briefing with consensus estimates, beat/miss history, and analyst sentiment from Yahoo Finance.

hithink-finance
Query, analyze, sync, and export A-share stocks, indices, funds, futures, and options data from Tonghuashun Finance via CLI, MCP, or REST API.

cli-anything
Build, refine, test, and validate CLI harnesses for GUI applications using the CLI-Anything methodology.