anysite-vc-analyst
Skill20 starsChanged 8 months agoMITView on GitHub
Universal VC investor analysis and outreach agent. Analyzes any startup project, understands fundraising stage, identifies ideal investor profile, scores investors, detects portfolio conflicts, generates personalized outreach. Starts with discovery questions to understand the project. Triggers: "analyze investors", "find investors", "investor research", "fundraising help", "score investor", "/vc-analyst".
In this repository17 other files it gives its agents.
- anysite-audience-analysisSkill
- anysite-brand-reputationSkill
- anysite-cliSkill
- anysite-competitor-analyzerSkill
- anysite-competitor-intelligenceSkill
- anysite-content-analyticsSkill
- anysite-influencer-discoverySkill
- anysite-lead-generationSkill
- anysite-market-researchSkill
- anysite-mcp-migrationSkill
- anysite-monitorSkill
- anysite-person-analyzerSkill
- anysite-trend-analysisSkill
- competitor-discoverySkill
- customer-pain-miningSkill
- positioning-mapSkill
- skill-auditSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 3 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Before analyzing investors, gather project context.
- Distinctive: line 17
Ask user to provide:
- Very specific: line 31
Website: Use execute("webparser", "parse", "parse", {"url": website}) to understand:
- Very specific: line 37
Pitch deck: Use Read tool if local file, or WebFetch if link
- Very specific: line 125
After gathering info, create investor_criteria.json:
- Distinctive: line 161
After onboarding, analyze investors from CSV or list.
- Distinctive: line 192
Search for investments in company's competitors:
- Very specific: line 260
Pagination: When execute() returns next_offset, use get_page(cache_key, offset, limit) to fetch additional results without re-running the …
- Very specific: line 261
Filtering & Sorting: Use query_cache(cache_key, conditions=[{"field": "score", "op": ">", "value": 70}], sort_by=[{"field": "score", …
- Very specific: line 262
Aggregation: Use query_cache(cache_key, aggregate=[{"op": "avg", "field": "score"}]) to compute batch statistics.
- Very specific: line 263
Export: Use export_data(cache_key, "csv") to generate a downloadable CSV of all analyzed investors.
- Very specific: line 264
Error handling: If execute() returns an error with llm_hint, follow the hint to fix params.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
VC Investor Analyst
Universal agent for startup investor research and outreach.
Onboarding Flow (REQUIRED FIRST)
Before analyzing investors, gather project context. Use AskUserQuestion tool.
Step 1: Project Discovery
Ask user to provide:
- Company website - to fetch and analyze
- Pitch deck or materials - file path or link
- One-liner - what does the company do?
AskUserQuestion:
- "What's your company website?"
- "Do you have a pitch deck I can review? (path or link)"
- "In one sentence, what does your company do?"Step 2: Fetch & Analyze Project
- Website: Use
execute("webparser", "parse", "parse", {"url": website})to understand:- Product/service description
- Target market
- Key features
- Pricing (if visible)
- Pitch deck: Use
Readtool if local file, orWebFetchif link - Extract key info:
- Problem & Solution
- Market size (TAM/SAM/SOM)
- Business model
- Traction metrics
- Team background
- Competitive landscape
Step 3: Fundraising Context
Ask with AskUserQuestion:
questions:
- question: "What stage are you raising?"
header: "Stage"
options:
- label: "Pre-Seed ($250K-$1M)"
description: "First institutional round, idea to early product"
- label: "Seed ($1M-$3M)"
description: "Product-market fit exploration"
- label: "Series A ($5M-$15M)"
description: "Scaling proven model"
- label: "Other"
description: "Specify your round"
- question: "How much are you raising?"
header: "Amount"
options:
- label: "$500K or less"
- label: "$500K - $1M"
- label: "$1M - $2M"
- label: "$2M+"
- question: "What's your current traction?"
header: "Traction"
options:
- label: "Pre-revenue"
description: "Building product, no revenue yet"
- label: "Early revenue (<$10K MRR)"
description: "First paying customers"
- label: "$10K-$50K MRR"
description: "Growing customer base"
- label: "$50K+ MRR"
description: "Strong traction"Step 4: Investor Preferences
Ask with AskUserQuestion:
questions:
- question: "What type of investors are you targeting?"
header: "Investor Type"
multiSelect: true
options:
- label: "Angel investors"
description: "Individual investors, $25K-$250K checks"
- label: "Micro VCs"
description: "Small funds, $100K-$500K checks"
- label: "Seed VCs"
description: "Institutional seed funds, $500K-$2M"
- label: "Strategic angels"
description: "Industry experts for advice + capital"
- question: "Geographic preference?"
header: "Location"
options:
- label: "US only"
- label: "US + Europe"
- label: "Global"
- label: "Specific region"
- question: "Any specific industries or themes they should focus on?"
header: "Thesis"
multiSelect: true
options:
- label: "B2B SaaS"
- label: "AI/ML"
- label: "Developer Tools"
- label: "Other (specify)"Step 5: Build Investor Profile
After gathering info, create investor_criteria.json:
{
"company": {
"name": "...",
"website": "...",
"one_liner": "...",
"stage": "Pre-Seed",
"raising": "$1M",
"traction": "...",
"thesis_keywords": ["B2B SaaS", "AI", "..."]
},
"ideal_investor": {
"types": ["Angel", "Micro VC"],
"check_size": "$50K-$500K",
"stage_focus": ["Pre-Seed", "Seed"],
"thesis_match": ["B2B SaaS", "AI", "Developer Tools"],
"geography": "US + Europe"
},
"competitors": ["competitor1", "competitor2"],
"outreach": {
"pitch_deck_link": "...",
"calendar_link": "...",
"sender_name": "...",
"sender_title": "..."
}
}Save to data/investor_criteria.json for reference.
Investor Analysis Workflow
After onboarding, analyze investors from CSV or list.
1. Fetch LinkedIn Profile (ALWAYS FIRST)
execute("linkedin", "user", "get", {"user": "linkedin-url-or-username"})CSV data has ~20% error rate. Always verify actual role before scoring.
v2 tip: The
execute()call returns acache_key. Usequery_cache(cache_key, ...)to filter/sort results without re-fetching. Useget_page(cache_key, offset, limit)if paginated results exist. Useexport_data(cache_key, "csv")to save batch results as a downloadable file.
2. Score Investor (0-100)
| Factor | Weight | Check |
| Is Actually Investor | GATE | Role: Partner, GP, Angel, EIR (NOT: Director, Manager, Engineer) |
| Stage Fit | 25% | Matches company's raising stage |
| Thesis Match | 25% | Matches company's thesis keywords |
| Portfolio Relevance | 30% | Similar companies in portfolio |
| Activity Level | 10% | Investments in last 12-18 months |
| Network Value | 10% | Accelerator ties, fund network |
Disqualifiers (Score = 0):
- Corporate role at non-investment firm
- Thesis mismatch (e.g., Crypto-only when company is SaaS)
- Wrong person at LinkedIn URL
- Stage too late (Series B+ fund for pre-seed company)
3. Check Portfolio Conflicts
Search for investments in company's competitors:
WebSearch("[Fund name] portfolio companies")
WebSearch("[Investor name] investments [competitor name]")If conflict found: -20 points + flag "PORTFOLIO CONFLICT"
4. Generate Outreach Message
For Score > 70, create personalized message using company's outreach config:
Hi [Name],
[Hook from verified portfolio/achievement relevant to THIS company]
[1-2 sentences about company - from one_liner]
[Traction from company profile]
[Question based on their expertise]
Here's our pitch deck: [pitch_deck_link]
If you'd like to chat: [calendar_link]
If no slots work, send your availability.
Best,
[sender_name]
[sender_title]Output Format
Per Investor
{
"investor": "Name",
"linkedin": "url",
"score": 85,
"current_role": "Partner @ Fund",
"stage_fit": "Pre-seed focus - MATCH",
"thesis_match": ["AI", "B2B SaaS"],
"portfolio_relevant": ["Company1", "Company2"],
"conflicts": [],
"risk_factors": [],
"outreach_hook": "Your investment in X...",
"message": "Full outreach text"
}Batch Summary
{
"batch": 1,
"total_analyzed": 20,
"strong_fit": 4,
"good_fit": 3,
"not_fit": 13,
"top_candidates": ["Name1", "Name2"]
}v2 Batch Features
- Pagination: When
execute()returnsnext_offset, useget_page(cache_key, offset, limit)to fetch additional results without re-running the query. - Filtering & Sorting: Use
query_cache(cache_key, conditions=[{"field": "score", "op": ">", "value": 70}], sort_by=[{"field": "score", "order": "desc"}])to filter high-scoring investors from cached results. - Aggregation: Use
query_cache(cache_key, aggregate=[{"op": "avg", "field": "score"}])to compute batch statistics. - Export: Use
export_data(cache_key, "csv")to generate a downloadable CSV of all analyzed investors. - Error handling: If
execute()returns an error withllm_hint, follow the hint to fix params. Common issues: invalid LinkedIn URL format, rate limiting (retry after delay).
Quick Commands
| Command | Action |
/vc-analyst | Start full onboarding flow |
/vc-analyst analyze [linkedin] | Analyze single investor (requires prior onboarding) |
/vc-analyst batch [csv-path] | Analyze batch from CSV |
/vc-analyst update-criteria | Update investor criteria |
Scoring Reference
See references/scoring.md for detailed criteria and examples.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

