Agent skill
yc-reader
Look up Y Combinator companies, batches, and startup ecosystem data using the yc-oss API (read-only). Use this skill whenever the user wants to research YC-backed startups, find companies in a specific batch or industry, check which YC companies are hiring, explore top YC companies, or analyze startup trends by sector or tag. Triggers include: "YC companies in fintech", "who's in the latest YC batch", "YC startups hiring", "top Y Combinator companies", "find YC companies tagged AI", "W25 batch", "S24 companies", "YC stats", "Y Combinator portfolio", "startup research", "which YC companies do X", "venture research on YC", any mention of Y Combinator, YC batch, or YC-backed companies in the context of startup research, venture analysis, or market intelligence. This is a read-only data source — the API is a static JSON dataset updated daily.
Install this agent skill to your Project
npx add-skill https://github.com/himself65/finance-skills/tree/main/plugins/social-readers/skills/yc-reader
SKILL.md
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-2025.json, summer-2024.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-2025, summer-2024, fall-2025. Older batches use the same pattern back to summer-2005.
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
After fetching data, present it clearly for startup/venture research:
- Summarize key data — company name, one-liner, batch, team size, status, and website
- Highlight hiring status — note which companies are actively hiring (growth signal)
- Include website URLs when the user might want to visit the company
- For batch listings, summarize the batch size and notable companies
- For industry/tag queries, highlight trends (how many companies, which are top/hiring)
- For research queries, provide aggregate stats (count, common industries, team size distribution)
- Note the data freshness — the API updates daily, so data is near-real-time
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.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
finance-sentiment
Fetch structured stock sentiment across Reddit, X.com, news, and Polymarket using the Adanos Finance API. Use this skill whenever the user asks how much people are talking about a stock, how hot a ticker is on social platforms, how many Polymarket bets exist for a company, whether sources are aligned, or to compare stock sentiment across multiple tickers. Triggers include: "social sentiment on TSLA", "how hot is NVDA on X.com", "how many Reddit mentions does AAPL have", "compare sentiment on AMD vs NVDA", "how many Polymarket bets on Microsoft", "is Reddit aligned with X on META", "stock buzz", "bullish percentage", and any mention of cross-source stock sentiment research. This skill is READ-ONLY and does not place trades or modify anything.
hormuz-strait
Check the current status of the Strait of Hormuz — shipping transit data, oil price impact, stranded vessels, insurance risk levels, diplomatic developments, and global trade impact. Use this skill whenever the user asks about the Strait of Hormuz, Hormuz chokepoint, Persian Gulf shipping risk, oil transit disruption, war risk premium in the Gulf, Middle East shipping routes, tanker traffic through Hormuz, oil supply chain risk, or geopolitical risk affecting energy markets. Triggers include: "Hormuz status", "Strait of Hormuz", "is Hormuz open", "shipping through the Gulf", "oil chokepoint", "Persian Gulf tanker traffic", "war risk premium", "Hormuz crisis", "energy supply chain risk", "oil transit disruption", "Middle East shipping", any mention of Hormuz or Persian Gulf in context of oil, shipping, or geopolitical risk.
funda-data
Fetch financial data from the Funda AI API (https://api.funda.ai). Covers quotes, historical prices, financials, SEC filings, earnings transcripts, analyst estimates, options flow/greeks/GEX, supply chain graph, social sentiment, prediction markets, congressional trades, economic indicators, ESG, and news. Triggers: stock quotes, fundamentals, balance sheet, income statement, cash flow, analyst targets, DCF, options chain/flow/unusual activity, GEX, IV rank, max pain, earnings/dividend/IPO calendar, SEC filings (10-K/10-Q/8-K), transcripts, supply chain (suppliers/customers/competitors), congressional trading, insider trades, institutional holdings (13F), Reddit/Twitter sentiment, Polymarket, treasury rates, GDP, CPI, FRED data, ESG scores, commodity/forex/crypto prices, stock screener, sector performance, ETF holdings, news, COT reports. Also triggers for "funda" or "funda.ai". If only a ticker is provided and Funda API can answer, use this skill.
etf-premium
Calculate ETF premium or discount relative to Net Asset Value (NAV) using Yahoo Finance data. Use this skill whenever the user asks about an ETF's premium or discount, NAV comparison, whether an ETF is trading above or below its fair value, or wants to compare market price vs NAV. Triggers: "ETF premium", "ETF discount", "NAV premium", "is SPY trading at a premium", "AGG premium to NAV", "market price vs NAV", "ETF mispricing", "BITO premium", "IBIT premium", "bond ETF discount", "trading above/below NAV", "ETF premium screener", "which ETFs have biggest discount", "compare ETF NAV", "ETF arbitrage", or any request involving the gap between an ETF's market price and its underlying value. Also triggers when analyzing leveraged, inverse, international, bond, commodity, or crypto ETFs where premium/discount is a known concern.
saas-valuation-compression
Analyze SaaS company valuation compression between funding rounds. Use this skill whenever the user asks about: how much a SaaS company's valuation multiple changed between rounds, why the ARR multiple compressed or expanded, comparing a company's compression to macro benchmarks, or explaining what drove valuation changes for any VC-backed software company. Trigger on phrases like "valuation compression", "ARR multiple", "round-to-round valuation", "multiple change", or when the user asks to compare a company's funding rounds. Always use this skill for any multi-round SaaS valuation analysis — do not try to answer from memory alone.
sepa-strategy
Analyze stocks using Mark Minervini's SEPA (Specific Entry Point Analysis) methodology. Use this skill whenever the user mentions SEPA, Minervini, superperformance, trend template, VCP (Volatility Contraction Pattern), Stage 2 uptrend, stage analysis, pivot point breakout, or asks about growth stock screening criteria. Also triggers when the user wants to evaluate whether a stock meets swing trading entry criteria, check moving average alignment (bullish stacking: price above 50MA above 150MA above 200MA), assess breakout quality with volume confirmation, calculate position sizing based on risk percentage, or identify consolidation patterns like cup-with-handle, flat base, bull flag, or high tight flag. Use this skill even when the user simply asks "should I buy this stock" or "is this a good setup" in the context of growth/momentum trading, or when they share a stock chart and want pattern analysis.
Didn't find tool you were looking for?