{"id":"d0bbe9e7-6121-48b5-8f7a-8c89e655d592","shortId":"3mregQ","kind":"skill","title":"vc-finder","tagline":"Takes a startup product URL or description, detects the industry and funding stage, identifies 5 comparable funded companies, searches who invested in those companies (Track A), finds VCs who publish investment theses about this space (Track B), and returns a ranked sourced list ","description":"# VC Finder\n\nTake a product URL or description. Detect industry and stage. Find 5 comparable funded companies. Run two research tracks: who invested in those comparables (Track A), and which VCs publish theses about this space (Track B). Return a sourced, ranked investor list with outreach hooks.\n\n---\n\n**Zero-hallucination policy:** Every fact in the output must be traceable to a specific Tavily search result or the fetched product page. This applies to:\n- Comparable company names: must appear in Tavily search results, not AI training knowledge\n- VC fund names: must appear verbatim in Tavily search results\n- Check sizes, stage focus, portfolio companies: must come from search snippets, not AI knowledge\n- Fund overviews and thesis summaries: extracted from search snippets only. If a detail is not in the search data, write \"not found in search data\" -- do not fill from training knowledge.\n\n---\n\n## Common Mistakes\n\n| The agent will want to... | Why that's wrong |\n|---|---|\n| Add a16z or Sequoia because they are famous | A famous VC without evidence is noise. Only include VCs that appear in Tavily search results for this specific product. Name-dropping wastes the founder's time. |\n| Generate comparable companies from training knowledge | Comparables must come from Tavily search results (Step 6). AI knowledge of companies is not evidence -- a company suggested from memory may have wrong funding status or may not be a true comparable. |\n| Continue when all 5 Track A searches return 0 results | Zero Track A results means the comparables were wrong or too obscure. Stop, re-run Step 6 with broader search queries, and retry. |\n| Include a Track B VC without citing the article or post | Thesis without a source is indistinguishable from hallucination. The founder cannot verify it and the list loses all credibility. |\n| Fill in fund overview from training knowledge | Fund overviews must come from Tavily snippet text only. If the snippets don't describe the fund, write \"not found in search data\". |\n| Detect stage from website aesthetics | Stage must come from the specific CTA signals detected in Step 4. |\n| Write generic outreach hooks | Every outreach hook must name this specific product's differentiator and a specific VC portfolio signal or thesis quote from the search data. |\n| Skip the URL fetch when the user also provides a description | Always fetch the URL. The live page often reveals stage signals that the user's description omits. |\n\n---\n\n## Step 1: Setup Check\n\n```bash\necho \"TAVILY_API_KEY:    ${TAVILY_API_KEY:+set}\"\necho \"FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY:-not set, Tavily extract will be used as fallback}\"\n```\n\n**If TAVILY_API_KEY is missing:** Stop. Tell the user: \"TAVILY_API_KEY is required to research VC investments and theses. There is no fallback for this. Get it at app.tavily.com -- free tier: 1000 credits/month (about 125 full runs). Add it to your .env file.\"\n\n**If only FIRECRAWL_API_KEY is missing:** Continue silently. Tavily extract will be used for the URL fetch.\n\n---\n\n## Step 2: Gather Input\n\nYou need:\n- Product URL (required, unless user pastes a product description directly)\n- Optional: target stage hint (pre-seed, seed, series-a, series-b) -- if provided, use it and skip stage detection\n- Optional: geography preference (US, Europe, global) -- defaults to US if not specified\n\n**If the user provides only a pasted description (no URL):** Skip Steps 3-4. Go directly to Step 5 with the pasted text as `product_content`. Set `stage_source` to `user_description`.\n\n**If neither URL nor description is provided:** Ask: \"What is the URL of your product or startup? Or paste a short description: what it does, who it is for, and what stage you are at (pre-seed, seed, Series A).\"\n\nDerive product slug from URL for the output filename:\n\n```bash\nPRODUCT_SLUG=$(python3 -c \"\nfrom urllib.parse import urlparse\nurl = 'URL_HERE'\nhost = urlparse(url).netloc.replace('www.', '')\nprint(host.split('.')[0])\n\")\n```\n\n---\n\n## Step 3: Fetch Product Page\n\n**Primary: Firecrawl (if FIRECRAWL_API_KEY is set)**\n\n```bash\ncurl -s -X POST https://api.firecrawl.dev/v1/scrape \\\n  -H \"Authorization: Bearer $FIRECRAWL_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"URL_HERE\", \"formats\": [\"markdown\"], \"onlyMainContent\": true}' \\\n  | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\ncontent = d.get('data', {}).get('markdown', '') or d.get('markdown', '')\nprint(f'Fetched: {len(content)} characters')\nopen('/tmp/vc-product-raw.md', 'w').write(content)\n\"\n```\n\n**Fallback: Tavily extract (if FIRECRAWL_API_KEY is not set)**\n\n```bash\ncurl -s -X POST https://api.tavily.com/extract \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\\\"api_key\\\": \\\"$TAVILY_API_KEY\\\", \\\"urls\\\": [\\\"URL_HERE\\\"]}\" \\\n  | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\ncontent = d.get('results', [{}])[0].get('raw_content', '')\nprint(f'Fetched via Tavily extract: {len(content)} characters')\nopen('/tmp/vc-product-raw.md', 'w').write(content)\n\"\n```\n\n**Step-level checkpoint:**\n\n```bash\npython3 -c \"\ncontent = open('/tmp/vc-product-raw.md').read()\nif len(content) < 200:\n    print('ERROR: Page returned fewer than 200 characters.')\nelse:\n    print(f'Content OK: {len(content)} characters')\n\"\n```\n\n**If content < 200 characters:** Stop fetching. Tell the user: \"The product page returned no readable content. This usually means the site is JavaScript-rendered and requires a browser. Please paste your product description directly: what it does, who it is for, and what stage you are at.\"\n\nProceed to Step 5 using the pasted description as `product_content`.\n\n---\n\n## Step 4: Detect Stage Signals Locally (No API)\n\nParse the fetched markdown with regex before the analysis step.\n\n```bash\npython3 << 'PYEOF'\nimport re, json\n\ncontent = open('/tmp/vc-product-raw.md').read().lower()\nstage_signals = []\n\nif re.search(r'join\\s+(the\\s+)?waitlist|sign\\s+up\\s+for\\s+beta|early\\s+access|request\\s+(an?\\s+)?invite|get\\s+notified', content):\n    stage_signals.append({'signal': 'waitlist or beta CTA', 'stage_hint': 'pre-seed'})\n\nif re.search(r'start\\s+(your\\s+)?free\\s+trial|try\\s+(it\\s+)?for\\s+free|request\\s+a?\\s+demo|book\\s+a?\\s+demo|schedule\\s+a?\\s+demo', content):\n    stage_signals.append({'signal': 'free trial or demo CTA', 'stage_hint': 'seed'})\n\nif re.search(r'contact\\s+sales|talk\\s+to\\s+(our\\s+)?sales|see\\s+pricing|view\\s+pricing|plans\\s+and\\s+pricing', content):\n    stage_signals.append({'signal': 'pricing or sales CTA', 'stage_hint': 'series-a'})\nif re.search(r'case\\s+stud(y|ies)|customer\\s+stor(y|ies)|trusted\\s+by\\s+[\\d,]+|used\\s+by\\s+[\\d,]+', content):\n    stage_signals.append({'signal': 'case studies or customer count', 'stage_hint': 'series-a'})\n\nif re.search(r'enterprise\\s+(plan|pricing|tier)|we.?re\\s+hiring|join\\s+our\\s+team|open\\s+positions', content):\n    stage_signals.append({'signal': 'enterprise tier or job openings', 'stage_hint': 'series-a-or-b'})\n\nfunding_match = re.search(\n    r'raised\\s+\\$[\\d,.]+\\s*[mk]?|series\\s+[abc]\\s+round|seed\\s+round|(\\$[\\d,.]+\\s*[mk]?\\s+(?:seed|series\\s+[abc]))',\n    content\n)\nif funding_match:\n    stage_signals.append({'signal': f'funding text: {funding_match.group(0).strip()}', 'stage_hint': 'announced'})\n\nif not stage_signals:\n    dominant = 'unknown'\nelif any(s['stage_hint'] == 'announced' for s in stage_signals):\n    dominant = 'announced'\nelif any(s['stage_hint'] == 'series-a-or-b' for s in stage_signals):\n    dominant = 'series-a'\nelif any(s['stage_hint'] == 'series-a' for s in stage_signals):\n    dominant = 'series-a'\nelif any(s['stage_hint'] == 'seed' for s in stage_signals):\n    dominant = 'seed'\nelse:\n    dominant = 'pre-seed'\n\nconfidence = 'high' if len(stage_signals) >= 2 else ('medium' if len(stage_signals) == 1 else 'low')\n\nresult = {'signals': stage_signals, 'dominant_stage': dominant, 'confidence': confidence}\njson.dump(result, open('/tmp/vc-stage-signals.json', 'w'), indent=2)\nprint(f'Stage: {dominant} ({confidence} confidence) from {len(stage_signals)} signal(s)')\nfor s in stage_signals:\n    print(f'  - {s[\"signal\"]} -> {s[\"stage_hint\"]}')\nPYEOF\n```\n\n---\n\n## Step 5: Product Analysis (Taxonomy, Stage, ICP)\n\nPrint the product content and stage signals:\n\n```bash\npython3 -c \"\nimport json\ncontent = open('/tmp/vc-product-raw.md').read()[:6000]\nsignals = json.load(open('/tmp/vc-stage-signals.json'))\nprint('=== PRODUCT PAGE (first 6000 chars) ===')\nprint(content)\nprint()\nprint('=== DETECTED STAGE SIGNALS ===')\nprint(json.dumps(signals, indent=2))\n\"\n```\n\n**AI instructions:** Analyze the product page content above. Generate the taxonomy, ICP, and stage classification only -- do NOT generate comparable companies yet (that is done via live search in Step 6).\n\nWrite to `/tmp/vc-product-analysis.json`:\n\n- `product_name`: from the page\n- `one_line_description`: what it does, for whom, core value prop. Under 20 words. No marketing language.\n- `industry_taxonomy`: `l1` (top-level: fintech / healthtech / developer tools / consumer / etc.), `l2` (sector: sales technology / logistics software / etc.), `l3` (specific niche: outbound prospecting / last-mile routing / etc.). Vague labels like \"technology\" or \"software\" alone are not acceptable.\n- `icp`: `buyer_persona` (job title), `company_type`, `company_size`\n- `detected_stage`: pre-seed / seed / series-a / series-b / unknown\n- `stage_confidence`: high / medium / low\n- `stage_evidence`: one sentence citing exactly which CTA or text on the page drove this. Write \"no clear signals found\" if unknown.\n- `geography_bias`: US / Europe / global / unclear\n- `comparable_companies`: leave as empty array `[]` -- will be filled in Step 6\n\n```bash\npython3 << 'PYEOF'\nimport json\n\nanalysis = {\n    # FILL from your analysis above\n    \"comparable_companies\": []\n}\n\njson.dump(analysis, open('/tmp/vc-product-analysis.json', 'w'), indent=2)\nprint('Product analysis written.')\nPYEOF\n```\n\nVerify:\n\n```bash\npython3 -c \"\nimport json\na = json.load(open('/tmp/vc-product-analysis.json'))\nprint('Product:', a['product_name'])\nprint('Industry:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])\nprint('Stage:', a['detected_stage'], '(' + a['stage_confidence'] + ' confidence)')\n\"\n```\n\n---\n\n## Step 5b: Curated Pre-Match Against Verified Fund Dataset\n\nRun the product taxonomy against a curated dataset of 25 verified VC funds (sourced from fund websites). Produces zero-hallucination fund matches and seed comparables for Track A -- no Tavily credits consumed.\n\nPrint product analysis for tag mapping:\n\n```bash\npython3 -c \"\nimport json\na = json.load(open('/tmp/vc-product-analysis.json'))\nprint('Taxonomy:', a['industry_taxonomy']['l1'], '>', a['industry_taxonomy']['l2'], '>', a['industry_taxonomy']['l3'])\nprint('Stage:', a['detected_stage'])\nprint('Geography:', a['geography_bias'])\n\"\n```\n\n**AI instructions:** Map the product taxonomy to the standard tags used in the fund dataset. Available tags:\n`DevTools`, `Infrastructure`, `Open Source`, `B2B SaaS`, `AI`, `Data`, `FinTech`, `HealthTech`, `Enterprise`, `Consumer`, `Marketplaces`, `E-commerce`, `Crypto`, `DeepTech`, `Cybersecurity`, `Generalist`\n\nPick 2-4 tags that describe this product. Map `detected_stage` to: `Pre-seed`, `Seed`, `Series A`, or `Growth`. Map `geography_bias` to: `US`, `Europe`, `India`, or `Global`.\n\nWrite product context:\n\n```bash\npython3 << 'PYEOF'\nimport json\n\n# FILL based on taxonomy analysis above\ncontext = {\n    \"extracted_tags\": [\"TagA\", \"TagB\"],  # 2-4 tags from the list above\n    \"stage_hint\": \"Seed\",               # Pre-seed / Seed / Series A / Growth\n    \"geography_hint\": \"US\"              # US / Europe / India / Global\n}\njson.dump(context, open('/tmp/vc-product-context.json', 'w'), indent=2)\nprint('Product context:', context)\nPYEOF\n```\n\nRun scoring against the embedded curated dataset:\n\n```bash\npython3 << 'PYEOF'\nimport json\n\ncontext = json.load(open('/tmp/vc-product-context.json'))\n\nVC_FUNDS = [\n  {\"fund_name\":\"Y Combinator\",\"thesis\":\"We provide seed funding for startups. We invest in deeply technical teams building massive companies across all domains.\",\"check_size\":\"$500k\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"Generalist\",\"B2B SaaS\",\"DevTools\",\"AI\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"Stripe\",\"Airbnb\",\"GitLab\"],\"website\":\"https://www.ycombinator.com\"},\n  {\"fund_name\":\"boldstart ventures\",\"thesis\":\"Day one partner for developer first, crypto, and SaaS founders. We love deeply technical founders solving hard infrastructure problems.\",\"check_size\":\"$1M - $3M\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"DevTools\",\"Infrastructure\",\"Crypto\"],\"geography_focus\":[\"Global\",\"US\"],\"notable_portfolio\":[\"Snyk\",\"Blockdaemon\",\"Superhuman\"],\"website\":\"https://boldstart.vc\"},\n  {\"fund_name\":\"Heavybit\",\"thesis\":\"The leading investor in developer-first startups. We help technical founders launch, gain traction, and build enterprise-ready companies.\",\"check_size\":\"$1M - $5M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"DevTools\",\"Infrastructure\",\"Open Source\"],\"geography_focus\":[\"Global\",\"US\"],\"notable_portfolio\":[\"PagerDuty\",\"Sanity\",\"Netlify\"],\"website\":\"https://www.heavybit.com\"},\n  {\"fund_name\":\"Amplify Partners\",\"thesis\":\"We invest in technical founders building the next generation of IT infrastructure, developer tools, and data platforms.\",\"check_size\":\"$2M - $8M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"DevTools\",\"Infrastructure\",\"AI\",\"Data\"],\"geography_focus\":[\"US\"],\"notable_portfolio\":[\"Datadog\",\"OCTO\",\"dbt Labs\"],\"website\":\"https://www.amplifypartners.com\"},\n  {\"fund_name\":\"OSS Capital\",\"thesis\":\"We exclusively back early-stage founders building Commercial Open Source Software (COSS) companies.\",\"check_size\":\"$500k - $2M\",\"stage_focus\":[\"Pre-seed\",\"Seed\",\"Series A\"],\"industry_tags\":[\"Open Source\",\"DevTools\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"Cal.com\",\"Appsmith\",\"Hoppscotch\"],\"website\":\"https://oss.capital\"},\n  {\"fund_name\":\"Sequoia Capital\",\"thesis\":\"We help the daring build legendary companies, from idea to IPO and beyond. Sequoia is an early-stage and growth-stage investor.\",\"check_size\":\"$1M - $10M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Enterprise\",\"Consumer\",\"AI\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"Apple\",\"Google\",\"WhatsApp\"],\"website\":\"https://www.sequoiacap.com\"},\n  {\"fund_name\":\"Andreessen Horowitz (a16z)\",\"thesis\":\"We invest in software eating the world. We back bold entrepreneurs building the future through technology.\",\"check_size\":\"$1M - $50M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Crypto\",\"Enterprise\",\"Consumer\",\"AI\"],\"geography_focus\":[\"Global\",\"US\"],\"notable_portfolio\":[\"Facebook\",\"Coinbase\",\"Figma\"],\"website\":\"https://a16z.com\"},\n  {\"fund_name\":\"Point Nine Capital\",\"thesis\":\"We are a seed-stage venture capital firm focused on B2B SaaS and B2B marketplaces globally.\",\"check_size\":\"$1M - $3M\",\"stage_focus\":[\"Seed\"],\"industry_tags\":[\"B2B SaaS\",\"Marketplaces\"],\"geography_focus\":[\"Europe\",\"Global\"],\"notable_portfolio\":[\"Zendesk\",\"Typeform\",\"Docplanner\"],\"website\":\"https://www.pointnine.com\"},\n  {\"fund_name\":\"Cherry Ventures\",\"thesis\":\"We champion founders in Europe from their earliest days. We are generalist seed investors.\",\"check_size\":\"$1M - $4M\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"Generalist\",\"Consumer\",\"B2B SaaS\"],\"geography_focus\":[\"Europe\"],\"notable_portfolio\":[\"FlixBus\",\"Auto1 Group\",\"Forto\"],\"website\":\"https://www.cherry.vc\"},\n  {\"fund_name\":\"First Round Capital\",\"thesis\":\"We are the seed-stage firm that builds the most supportive community for founders.\",\"check_size\":\"$1M - $4M\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"Generalist\",\"B2B SaaS\",\"Consumer\"],\"geography_focus\":[\"US\"],\"notable_portfolio\":[\"Uber\",\"Notion\",\"Roblox\"],\"website\":\"https://firstround.com\"},\n  {\"fund_name\":\"Bessemer Venture Partners\",\"thesis\":\"BVP helps entrepreneurs lay strong foundations to build and forge long-standing companies.\",\"check_size\":\"$1M - $20M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Enterprise\",\"Consumer\",\"FinTech\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"LinkedIn\",\"Twilio\",\"Shopify\"],\"website\":\"https://www.bvp.com\"},\n  {\"fund_name\":\"Index Ventures\",\"thesis\":\"We back the best and most ambitious entrepreneurs across all stages to build category-defining businesses.\",\"check_size\":\"$1M - $20M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"FinTech\",\"Consumer\",\"B2B SaaS\"],\"geography_focus\":[\"Europe\",\"US\",\"Global\"],\"notable_portfolio\":[\"Dropbox\",\"Slack\",\"Figma\"],\"website\":\"https://www.indexventures.com\"},\n  {\"fund_name\":\"Lightspeed Venture Partners\",\"thesis\":\"We invest globally in enterprise, consumer, and health founders who are shaping the future.\",\"check_size\":\"$1M - $25M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Enterprise\",\"Consumer\",\"FinTech\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"Snap\",\"Rippling\",\"MuleSoft\"],\"website\":\"https://lsvp.com\"},\n  {\"fund_name\":\"Accel\",\"thesis\":\"We partner with exceptional founders from inception through all phases of private company growth.\",\"check_size\":\"$1M - $20M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"B2B SaaS\",\"Consumer\",\"DevTools\"],\"geography_focus\":[\"Global\"],\"notable_portfolio\":[\"Facebook\",\"Atlassian\",\"Spotify\"],\"website\":\"https://www.accel.com\"},\n  {\"fund_name\":\"Bain Capital Ventures\",\"thesis\":\"From seed to growth, we back founders building legendary infrastructure, fintech, application, and commerce companies.\",\"check_size\":\"$1M - $50M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Infrastructure\",\"FinTech\",\"B2B SaaS\"],\"geography_focus\":[\"US\",\"Global\"],\"notable_portfolio\":[\"DocuSign\",\"SendGrid\",\"Redis\"],\"website\":\"https://www.baincapitalventures.com\"},\n  {\"fund_name\":\"Greylock Partners\",\"thesis\":\"We partner with early-stage founders to build enterprise and consumer software companies that define new categories.\",\"check_size\":\"$1M - $10M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"Enterprise\",\"Consumer\",\"Cybersecurity\",\"AI\"],\"geography_focus\":[\"US\"],\"notable_portfolio\":[\"Workday\",\"Palo Alto Networks\",\"LinkedIn\"],\"website\":\"https://greylock.com\"},\n  {\"fund_name\":\"Unusual Ventures\",\"thesis\":\"We provide a breakthrough level of support for early-stage founders building enterprise tech.\",\"check_size\":\"$1M - $5M\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"Enterprise\",\"DevTools\",\"B2B SaaS\"],\"geography_focus\":[\"US\"],\"notable_portfolio\":[\"Arctic Wolf\",\"Harness\",\"Vivun\"],\"website\":\"https://www.unusual.vc\"},\n  {\"fund_name\":\"Crane Venture Partners\",\"thesis\":\"We back deep tech and enterprise founders in Europe solving hard problems with data and code.\",\"check_size\":\"$1M - $4M\",\"stage_focus\":[\"Seed\"],\"industry_tags\":[\"Enterprise\",\"DeepTech\",\"Data\",\"AI\"],\"geography_focus\":[\"Europe\"],\"notable_portfolio\":[\"Onfido\",\"Tessian\",\"Forto\"],\"website\":\"https://crane.vc\"},\n  {\"fund_name\":\"Founder Collective\",\"thesis\":\"We are a seed-stage venture capital fund, built by founders, for founders. We back weird, wonderful, and wild startups.\",\"check_size\":\"$500k - $2M\",\"stage_focus\":[\"Seed\"],\"industry_tags\":[\"Generalist\",\"Consumer\",\"B2B SaaS\"],\"geography_focus\":[\"US\",\"Global\"],\"notable_portfolio\":[\"Uber\",\"Airtable\",\"BuzzFeed\"],\"website\":\"https://www.foundercollective.com\"},\n  {\"fund_name\":\"Benchmark\",\"thesis\":\"We are a partnership of equal partners. We back mission-driven founders at the earliest stages and walk beside them for the long haul.\",\"check_size\":\"$1M - $10M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"Generalist\",\"Marketplaces\",\"Enterprise\",\"Consumer\"],\"geography_focus\":[\"US\",\"Global\"],\"notable_portfolio\":[\"Uber\",\"Twitter\",\"eBay\",\"Snapchat\"],\"website\":\"https://www.benchmark.com\"},\n  {\"fund_name\":\"Accel India\",\"thesis\":\"We partner with exceptional founders from inception through all phases of private company growth in the Indian ecosystem.\",\"check_size\":\"$1M - $15M\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"B2B SaaS\",\"Consumer\",\"FinTech\",\"E-commerce\"],\"geography_focus\":[\"India\"],\"notable_portfolio\":[\"Flipkart\",\"Swiggy\",\"Freshworks\"],\"website\":\"https://www.accel.com/india\"},\n  {\"fund_name\":\"Blume Ventures\",\"thesis\":\"We are a seed and pre-seed venture fund that backs startups with both funding and active mentoring.\",\"check_size\":\"$500k - $3M\",\"stage_focus\":[\"Pre-seed\",\"Seed\"],\"industry_tags\":[\"Generalist\",\"B2B SaaS\",\"Consumer\",\"DeepTech\",\"HealthTech\"],\"geography_focus\":[\"India\"],\"notable_portfolio\":[\"Unacademy\",\"Purplle\",\"GreyOrange\"],\"website\":\"https://blume.vc\"},\n  {\"fund_name\":\"Elevation Capital\",\"thesis\":\"We partner with visionary founders in India across early stages to help them build category-defining businesses.\",\"check_size\":\"$1M - $10M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"Generalist\",\"Consumer\",\"FinTech\",\"B2B SaaS\",\"HealthTech\"],\"geography_focus\":[\"India\"],\"notable_portfolio\":[\"Paytm\",\"Swiggy\",\"Meesho\"],\"website\":\"https://elevationcapital.com\"},\n  {\"fund_name\":\"Peak XV Partners\",\"thesis\":\"Formerly Sequoia India & SEA, we partner with founders across early, growth, and public stages to build enduring companies.\",\"check_size\":\"$1M - $20M+\",\"stage_focus\":[\"Seed\",\"Series A\",\"Growth\"],\"industry_tags\":[\"Generalist\",\"Consumer\",\"FinTech\",\"B2B SaaS\",\"DevTools\",\"AI\"],\"geography_focus\":[\"India\",\"South Asia\"],\"notable_portfolio\":[\"Zomato\",\"Pine Labs\",\"Cred\"],\"website\":\"https://www.peakxv.com\"},\n  {\"fund_name\":\"Nexus Venture Partners\",\"thesis\":\"We are a US-India venture capital firm backing extraordinary founders building product-first companies.\",\"check_size\":\"$1M - $10M\",\"stage_focus\":[\"Seed\",\"Series A\"],\"industry_tags\":[\"B2B SaaS\",\"Enterprise\",\"DevTools\",\"Consumer\"],\"geography_focus\":[\"India\",\"US\"],\"notable_portfolio\":[\"Postman\",\"Hasura\",\"Zepto\"],\"website\":\"https://nexusvp.com\"}\n]\n\nSTAGE_ORDER = {\"Pre-seed\": 0, \"Seed\": 1, \"Series A\": 2, \"Growth\": 3}\n\ndef score_fund(fund, ctx):\n    score = 0\n    fund_tags = fund.get(\"industry_tags\", [])\n    extracted_tags = ctx.get(\"extracted_tags\", [\"Generalist\"])\n    tag_points = 0\n    matched_tags = []\n    for tag in extracted_tags:\n        if tag in fund_tags:\n            tag_points += 5 if tag == \"Generalist\" else 20\n            matched_tags.append(tag)\n    tag_points = min(tag_points, 60)\n    score += tag_points\n    stage_hint = ctx.get(\"stage_hint\")\n    fund_stages = fund.get(\"stage_focus\", [])\n    if not stage_hint:\n        score += 10\n    elif fund_stages:\n        if stage_hint in fund_stages:\n            score += 20\n        elif stage_hint in STAGE_ORDER:\n            hint_idx = STAGE_ORDER[stage_hint]\n            if any(f in STAGE_ORDER and abs(STAGE_ORDER[f] - hint_idx) == 1 for f in fund_stages):\n                score += 10\n    geo_hint = ctx.get(\"geography_hint\")\n    fund_geo = fund.get(\"geography_focus\", [\"Global\"])\n    if not geo_hint or geo_hint == \"Global\":\n        score += 10\n    elif fund_geo == [\"India\"] and geo_hint == \"US\":\n        pass\n    elif geo_hint in fund_geo:\n        score += 20\n    elif \"Global\" in fund_geo:\n        score += 15\n    if geo_hint == \"US\" and \"India\" in fund_geo and \"US\" not in fund_geo and \"Global\" not in fund_geo:\n        score = max(0, score - 30)\n    if fund_tags and extracted_tags and fund_tags[0] not in extracted_tags and tag_points <= 20:\n        score = max(0, score - 15)\n    return score, matched_tags\n\nscored = []\nfor fund in VC_FUNDS:\n    score, matched_tags = score_fund(fund, context)\n    tier = \"High\" if score >= 70 else (\"Medium\" if score >= 40 else \"Low\")\n    scored.append({\n        \"fund_name\": fund[\"fund_name\"],\n        \"thesis\": fund[\"thesis\"],\n        \"check_size\": fund[\"check_size\"],\n        \"stage_focus\": fund[\"stage_focus\"],\n        \"industry_tags\": fund[\"industry_tags\"],\n        \"geography_focus\": fund[\"geography_focus\"],\n        \"notable_portfolio\": fund[\"notable_portfolio\"],\n        \"website\": fund[\"website\"],\n        \"source\": \"verified (fund website)\",\n        \"score\": score,\n        \"confidence\": tier,\n        \"matched_tags\": matched_tags\n    })\n\nscored.sort(key=lambda x: (-x[\"score\"], x[\"fund_name\"]))\nrelevant = [m for m in scored if m[\"confidence\"] in (\"High\", \"Medium\")]\n\ncurated_comparables = []\nfor m in relevant:\n    for company in m.get(\"notable_portfolio\", []):\n        if company not in curated_comparables:\n            curated_comparables.append(company)\n\noutput = {\n    \"high_medium_matches\": relevant,\n    \"curated_comparables\": curated_comparables[:6]\n}\njson.dump(output, open('/tmp/vc-curated-matches.json', 'w'), indent=2)\nprint(f'Curated matches: {len(relevant)} High/Medium confidence funds')\nfor m in relevant[:8]:\n    print(f'  {m[\"confidence\"]:6} ({m[\"score\"]:3}) {m[\"fund_name\"]}')\nprint(f'Seed comparables from portfolio: {curated_comparables[:6]}')\nPYEOF\n```\n\n---\n\n## Step 6: Discover Comparable Companies via Tavily\n\nLoad curated portfolio companies from Step 5b as seed comparables:\n\n```bash\npython3 -c \"\nimport json\nmatches = json.load(open('/tmp/vc-curated-matches.json'))\ncurated = matches.get('curated_comparables', [])\nprint(f'Curated portfolio comparables ({len(curated)}): {curated}')\nneed = max(0, 5 - len(curated))\nprint(f'Tavily will supplement with up to {need} more')\n\"\n```\n\n**Do not use AI training knowledge to generate comparable companies.** Curated portfolio companies (above) are already zero-hallucination comparables from verified fund data. Tavily supplements with L3-niche-specific companies.\n\n```bash\npython3 << 'PYEOF'\nimport json, os, urllib.request\n\nanalysis = json.load(open('/tmp/vc-product-analysis.json'))\nl2 = analysis['industry_taxonomy']['l2']\nl3 = analysis['industry_taxonomy']['l3']\ntavily_key = os.environ.get('TAVILY_API_KEY', '')\n\nqueries = [\n    f'\"{l3}\" startup raised funding venture capital seed series',\n    f'\"{l2}\" companies venture backed funded startup'\n]\n\nall_results = []\nfor query in queries:\n    payload = json.dumps({\n        \"api_key\": tavily_key,\n        \"query\": query,\n        \"search_depth\": \"advanced\",\n        \"max_results\": 8,\n        \"include_answer\": True\n    }).encode()\n\n    req = urllib.request.Request(\n        'https://api.tavily.com/search',\n        data=payload,\n        headers={'Content-Type': 'application/json'},\n        method='POST'\n    )\n\n    try:\n        with urllib.request.urlopen(req, timeout=30) as resp:\n            result = json.loads(resp.read())\n            all_results.append({\n                'query': query,\n                'answer': result.get('answer', ''),\n                'results': [\n                    {'title': r.get('title',''), 'url': r.get('url',''), 'content': r.get('content','')[:500]}\n                    for r in result.get('results', [])\n                ]\n            })\n            print(f'Comparable search: {len(result.get(\"results\", []))} results for \"{query[:60]}\"')\n    except Exception as e:\n        print(f'Comparable search FAILED: {e}')\n        all_results.append({'query': query, 'answer': '', 'results': [], 'error': str(e)})\n\njson.dump(all_results, open('/tmp/vc-comparable-search.json', 'w'), indent=2)\nPYEOF\n```\n\nPrint results for AI selection:\n\n```bash\npython3 -c \"\nimport json\nresults = json.load(open('/tmp/vc-comparable-search.json'))\nfor r in results:\n    print(f'Query: {r[\\\"query\\\"]}')\n    print(f'Answer: {r.get(\\\"answer\\\",\\\"\\\")[:400]}')\n    for item in r.get('results', []):\n        print(f'  - {item[\\\"title\\\"]} | {item[\\\"url\\\"]}')\n        print(f'    {item[\\\"content\\\"][:200]}')\n    print()\n\"\n```\n\n**AI instructions:** Combine the curated portfolio companies from `/tmp/vc-curated-matches.json` with the Tavily search results above. Pick exactly 5 comparable companies. Prioritize curated portfolio companies (already verified -- they are real portfolio companies of matched VC funds). Supplement with Tavily-discovered companies to reach 5 if needed.\n\nFor each comparable write:\n- `name`: company name\n- `similarity_reason`: one sentence explaining the fit (for curated: reference the fund that backed them; for Tavily: cite the snippet)\n- `source_url`: portfolio fund website for curated companies, Tavily result URL for discovered ones\n- `estimated_stage`: from curated data or snippet text -- write \"not in search data\" if unknown\n- `source_type`: `\"curated_portfolio\"` or `\"tavily_discovered\"`\n\nUpdate `/tmp/vc-product-analysis.json` with the `comparable_companies` array:\n\n```bash\npython3 << 'PYEOF'\nimport json\n\nanalysis = json.load(open('/tmp/vc-product-analysis.json'))\n\nanalysis['comparable_companies'] = [\n    # FILL 5 companies -- curated_portfolio first, then tavily_discovered\n    # Each: {\"name\": str, \"similarity_reason\": str, \"source_url\": str, \"estimated_stage\": str, \"source_type\": str}\n]\n\njson.dump(analysis, open('/tmp/vc-product-analysis.json', 'w'), indent=2)\nprint('Comparables written:', ', '.join(c['name'] for c in analysis['comparable_companies']))\nPYEOF\n```\n\n**If fewer than 3 comparable companies appear in the search results:** Broaden the queries. Run a third search: `\"[l1] startup\" funding round venture capital`. If still thin, proceed with what is available and flag in `data_quality_flags`.\n\n---\n\n## Step 7: Track A -- Who Invested in Comparable Companies\n\nRun 5 Tavily searches, one per comparable.\n\n```bash\npython3 << 'PYEOF'\nimport json, os, urllib.request\n\nanalysis = json.load(open('/tmp/vc-product-analysis.json'))\ncomparables = analysis['comparable_companies']\ntavily_key = os.environ.get('TAVILY_API_KEY', '')\nall_track_a = []\n\nfor comp in comparables:\n    company = comp['name']\n    query = f'\"{company}\" investors funding venture capital backed seed series'\n\n    payload = json.dumps({\n        \"api_key\": tavily_key,\n        \"query\": query,\n        \"search_depth\": \"advanced\",\n        \"max_results\": 5,\n        \"include_answer\": True\n    }).encode()\n\n    req = urllib.request.Request(\n        'https://api.tavily.com/search',\n        data=payload,\n        headers={'Content-Type': 'application/json'},\n        method='POST'\n    )\n\n    try:\n        with urllib.request.urlopen(req, timeout=30) as resp:\n            result = json.loads(resp.read())\n            all_track_a.append({\n                'comparable_company': company,\n                'similarity_reason': comp['similarity_reason'],\n                'query': query,\n                'answer': result.get('answer', ''),\n                'results': result.get('results', [])\n            })\n            print(f'Track A - {company}: {len(result.get(\"results\", []))} results')\n    except Exception as e:\n        print(f'Track A - {company}: FAILED ({e})')\n        all_track_a.append({\n            'comparable_company': company,\n            'similarity_reason': comp['similarity_reason'],\n            'query': query,\n            'answer': '',\n            'results': [],\n            'error': str(e)\n        })\n\njson.dump(all_track_a, open('/tmp/vc-tracka-results.json', 'w'), indent=2)\nprint(f'Track A complete. Comparables with results: {sum(1 for r in all_track_a if r.get(\"results\"))}')\nPYEOF\n```\n\n**If all 5 Track A searches return 0 results:** Re-run Step 6 with broader queries. Retry with well-covered companies (those with significant press coverage). If still 0: proceed to Track B only and flag in `data_quality_flags`.\n\n---\n\n## Step 8: Track B -- VCs With Investment Theses About This Space\n\nRun 3 Tavily searches using L2 and L3 taxonomy from Step 5.\n\n```bash\npython3 << 'PYEOF'\nimport json, os, urllib.request\n\nanalysis = json.load(open('/tmp/vc-product-analysis.json'))\nl2 = analysis['industry_taxonomy']['l2']\nl3 = analysis['industry_taxonomy']['l3']\nstage = analysis['detected_stage']\ntavily_key = os.environ.get('TAVILY_API_KEY', '')\n\nqueries = [\n    {'name': 'thesis_l3', 'query': f'venture capital investment thesis \"{l3}\" investing 2023 OR 2024 OR 2025'},\n    {'name': 'thesis_l2', 'query': f'VC fund \"{l2}\" investment thesis portfolio companies'},\n    {'name': 'stage_space', 'query': f'{stage} investors \"{l3}\" startup venture capital fund'}\n]\n\nall_track_b = []\n\nfor q in queries:\n    payload = json.dumps({\n        \"api_key\": tavily_key,\n        \"query\": q['query'],\n        \"search_depth\": \"advanced\",\n        \"max_results\": 7,\n        \"include_answer\": True\n    }).encode()\n\n    req = urllib.request.Request(\n        'https://api.tavily.com/search',\n        data=payload,\n        headers={'Content-Type': 'application/json'},\n        method='POST'\n    )\n\n    try:\n        with urllib.request.urlopen(req, timeout=30) as resp:\n            result = json.loads(resp.read())\n            all_track_b.append({\n                'query_name': q['name'],\n                'query': q['query'],\n                'answer': result.get('answer', ''),\n                'results': result.get('results', [])\n            })\n            print(f\"Track B - {q['name']}: {len(result.get('results', []))} results\")\n    except Exception as e:\n        print(f\"Track B - {q['name']}: FAILED ({e})\")\n        all_track_b.append({'query_name': q['name'], 'query': q['query'], 'answer': '', 'results': [], 'error': str(e)})\n\njson.dump(all_track_b, open('/tmp/vc-trackb-results.json', 'w'), indent=2)\nPYEOF\n```\n\n**If all 3 Track B searches return 0 results:** Proceed with Track A results only. Note in `data_quality_flags`: \"No thesis-led investors found via public search.\"\n\n---\n\n## Step 9: Synthesize -- Rank and Score All VCs\n\nPrint the research data:\n\n```bash\npython3 -c \"\nimport json\n\nanalysis = json.load(open('/tmp/vc-product-analysis.json'))\ntrack_a = json.load(open('/tmp/vc-tracka-results.json'))\ntrack_b = json.load(open('/tmp/vc-trackb-results.json'))\ncurated = json.load(open('/tmp/vc-curated-matches.json'))\n\ntrack_a_summary = []\nfor item in track_a:\n    snippets = [{'title': r.get('title',''), 'url': r.get('url',''), 'content': r.get('content','')[:400]}\n                for r in item.get('results', [])[:3]]\n    track_a_summary.append({\n        'comparable_company': item['comparable_company'],\n        'similarity_reason': item['similarity_reason'],\n        'answer': item.get('answer', '')[:500],\n        'top_results': snippets\n    })\n\ntrack_b_summary = []\nfor item in track_b:\n    snippets = [{'title': r.get('title',''), 'url': r.get('url',''), 'content': r.get('content','')[:400]}\n                for r in item.get('results', [])[:4]]\n    track_b_summary.append({\n        'query_name': item['query_name'],\n        'answer': item.get('answer', '')[:500],\n        'top_results': snippets\n    })\n\ncurated_summary = []\nfor m in curated.get('high_medium_matches', []):\n    curated_summary.append({\n        'fund_name': m['fund_name'],\n        'confidence': m['confidence'],\n        'score': m['score'],\n        'matched_tags': m['matched_tags'],\n        'thesis': m['thesis'],\n        'check_size': m['check_size'],\n        'stage_focus': m['stage_focus'],\n        'notable_portfolio': m['notable_portfolio'],\n        'website': m['website'],\n        'source': 'verified (fund website)'\n    })\n\nprint(json.dumps({\n    'product': {\n        'name': analysis['product_name'],\n        'description': analysis['one_line_description'],\n        'industry': analysis['industry_taxonomy'],\n        'icp': analysis['icp'],\n        'stage': analysis['detected_stage'],\n        'stage_confidence': analysis['stage_confidence'],\n        'geography': analysis['geography_bias']\n    },\n    'curated_matches': curated_summary,\n    'track_a_research': track_a_summary,\n    'track_b_research': track_b_summary\n}, indent=2))\n\"\n```\n\n**AI instructions -- zero-hallucination rules:**\n\nEvery field in the output must be traceable to the printed data above. Rules:\n\n1. **curated_vcs:** Use the `curated_matches` data directly. These are pre-verified -- no Tavily evidence required. `fund_overview` comes from the `thesis` field in the curated data. `check_size` and `stage_focus` come from the curated data fields. Do NOT fill from training knowledge even for these funds.\n2. **VC names (Track A / B):** Only include a fund if its name appears verbatim in the snippet text or title. No exceptions.\n3. **evidence_company (Track A):** The comparable company they backed -- must be stated in the snippet text, not inferred.\n4. **thesis_source_title (Track B):** The exact title of the article or post as it appears in the search results.\n5. **fund_overview (Track A / B):** Extract from snippet text only. Max 2 sentences. If the snippets do not describe the fund, write \"not found in search data\".\n6. **thesis_summary:** Close paraphrase of the snippet text. Do not add context from training knowledge.\n7. **check_size (Track A / B):** From snippet data only. Write \"not in search data\" if not mentioned.\n8. **portfolio_in_space:** Only companies that appear in the search snippets. Write \"not found in search data\" if none.\n9. **stage_fit_score 1-10:** Penalize 3 points if the VC's stated stage does not match the product's detected stage.\n10. **space_fit_score 1-10:** 9-10 only if the VC backed 2+ companies in the L3 niche per the snippets or curated data.\n11. **approach_method:** one of -- cold email / warm intro required / AngelList / application form / Twitter/X DM. Infer from snippets or fund website.\n12. **outreach_hook:** Must name a specific portfolio signal or thesis quote. Generic hooks like \"highlight your traction\" are not acceptable.\n13. No em dashes. No marketing language.\n\nWrite to `/tmp/vc-final-list.json`:\n\n- `product_summary`: name, one_line_description, industry_l1, industry_l2, industry_l3, detected_stage, comparable_companies_used (names only)\n- `curated_vcs`: fund_name, confidence (\"High\"/\"Medium\"), matched_tags, fund_overview (from thesis field), check_size, stage_focus, website, source (\"verified (fund website)\"), stage_fit_score, space_fit_score\n- `track_a_vcs`: fund_name, evidence_company (REQUIRED), evidence_source_url, stage_focus, check_size, fund_overview, thesis_summary, stage_fit_score, space_fit_score, approach_method\n- `track_b_vcs`: fund_name, thesis_source_title (REQUIRED), thesis_source_url, stage_focus, check_size, fund_overview, thesis_summary, stage_fit_score, space_fit_score, approach_method\n- `top_5_deep_dives`: fund_name, track (\"Curated\"/\"A\"/\"B\"), fund_overview, why_fit, portfolio_in_space, how_to_approach (min 30 chars), outreach_hook\n- `outreach_hooks`: 3 objects -- hook_type, hook_text (2-3 sentences), best_for\n- `data_quality_flags`: gaps, missing fields, low-confidence areas\n\n```bash\npython3 << 'PYEOF'\nimport json\n\nresult = {\n    # FILL from synthesis above\n    # Must include: product_summary, curated_vcs, track_a_vcs, track_b_vcs, top_5_deep_dives, outreach_hooks, data_quality_flags\n}\n\njson.dump(result, open('/tmp/vc-final-list.json', 'w'), indent=2)\nprint(f'Synthesis written. Curated: {len(result.get(\"curated_vcs\", []))} VCs. Track A: {len(result.get(\"track_a_vcs\", []))} VCs. Track B: {len(result.get(\"track_b_vcs\", []))} VCs.')\nPYEOF\n```\n\n---\n\n## Step 10: Self-QA\n\n```bash\npython3 << 'PYEOF'\nimport json\n\nresult = json.load(open('/tmp/vc-final-list.json'))\nfailures = []\n\n# Remove Track A VCs missing evidence_company\noriginal_a = len(result.get('track_a_vcs', []))\nresult['track_a_vcs'] = [v for v in result.get('track_a_vcs', []) if v.get('evidence_company')]\nremoved_a = original_a - len(result['track_a_vcs'])\nif removed_a > 0:\n    failures.append(f'Removed {removed_a} Track A VC(s) missing evidence_company')\n\n# Remove Track B VCs missing thesis_source_title\noriginal_b = len(result.get('track_b_vcs', []))\nresult['track_b_vcs'] = [v for v in result.get('track_b_vcs', []) if v.get('thesis_source_title')]\nremoved_b = original_b - len(result['track_b_vcs'])\nif removed_b > 0:\n    failures.append(f'Removed {removed_b} Track B VC(s) missing thesis_source_title')\n\n# Remove deep dives for VCs that were stripped from all tracks\nvalid_funds = (\n    {v['fund_name'] for v in result.get('curated_vcs', [])} |\n    {v['fund_name'] for v in result.get('track_a_vcs', [])} |\n    {v['fund_name'] for v in result.get('track_b_vcs', [])}\n)\noriginal_dives = len(result.get('top_5_deep_dives', []))\nresult['top_5_deep_dives'] = [d for d in result.get('top_5_deep_dives', []) if d.get('fund_name') in valid_funds]\nremoved_dives = original_dives - len(result['top_5_deep_dives'])\nif removed_dives > 0:\n    failures.append(f'Removed {removed_dives} deep dive(s) for funds stripped during QA')\n\n# Check top 5 deep dives\ndives = result.get('top_5_deep_dives', [])\nif len(dives) < 5:\n    failures.append(f'Only {len(dives)} deep dives (expected 5) -- insufficient search data')\nfor dd in dives:\n    if not dd.get('how_to_approach') or len(dd.get('how_to_approach', '')) < 30:\n        dd['how_to_approach'] = 'Approach method not determinable from search data. Check the fund website directly for application instructions.'\n        failures.append(f\"Fixed: '{dd.get('fund_name')}' had missing how_to_approach\")\n    if not dd.get('fund_overview') or dd.get('fund_overview') == '':\n        dd['fund_overview'] = 'not found in search data'\n\n# Check outreach hooks count\nif len(result.get('outreach_hooks', [])) != 3:\n    failures.append(f\"Expected 3 outreach hooks, got {len(result.get('outreach_hooks', []))}\")\n\n# Check for em dashes\nfull_text = json.dumps(result)\nif '—' in full_text:\n    result = json.loads(full_text.replace('—', '-'))\n    failures.append('Fixed: em dash characters replaced with hyphens')\n\n# Check for forbidden words\nforbidden = ['powerful', 'robust', 'seamless', 'innovative', 'game-changing', 'streamline', 'leverage', 'transform']\nfull_text_lower = json.dumps(result).lower()\nfor word in forbidden:\n    if word in full_text_lower:\n        failures.append(f\"Warning: forbidden word '{word}' found in output -- review before presenting\")\n\n# Flag any \"not found in search data\" entries so user knows coverage is incomplete\nnot_found_count = json.dumps(result).count('not found in search data')\nif not_found_count > 0:\n    failures.append(f'INFO: {not_found_count} field(s) marked \"not found in search data\" -- verify directly before outreach')\n\nif 'data_quality_flags' not in result:\n    result['data_quality_flags'] = []\nresult['data_quality_flags'].extend(failures)\n\njson.dump(result, open('/tmp/vc-final-list.json', 'w'), indent=2)\nprint(f'QA complete. Issues addressed: {len(failures)}')\nfor f in failures:\n    print(f'  - {f}')\nif not failures:\n    print('All QA checks passed.')\nPYEOF\n```\n\n---\n\n## Step 11: Save and Present Output\n\n```bash\nDATE=$(date +%Y-%m-%d)\nOUTPUT_FILE=\"docs/vc-intel/${PRODUCT_SLUG}-${DATE}.md\"\nmkdir -p docs/vc-intel\n```\n\nPresent the final output:\n\n```\n## VC Finder: [product_name]\nDate: [today] | Stage: [detected_stage] ([stage_confidence] confidence) | Geography: [geography_bias]\n\n---\n\n### Product Analysis\n\nWhat it does: [one_line_description]\nIndustry: [l1] > [l2] > [l3]\nBuyer: [buyer_persona] at [company_type], [company_size]\nComparable companies used: [comma-separated list, noting source_type for each]\n\n---\n\n### Curated Matches (Verified)\n\n*Funds matched from a verified dataset of 25 VC funds sourced from fund websites. Zero hallucination -- details come directly from the dataset.*\n\n| Fund | Confidence | Stage Focus | Check Size | Matched Tags |\n|---|---|---|---|---|\n[one row per curated VC, sorted by confidence then score]\n\n---\n\n### Track A: VCs Who Backed Similar Companies\n\n*These investors have already written a check in this space. Evidence from live Tavily search.*\n\n| Fund | Backed Comparable | Stage Focus | Check Size | Fit Score | Approach |\n|---|---|---|---|---|---|\n[one row per Track A VC, sorted by space_fit_score descending]\n\n---\n\n### Track B: Thesis-Led Investors\n\n*These investors are actively publishing about this space.*\n\n| Fund | Thesis Source | Stage Focus | Check Size | Fit Score | Approach |\n|---|---|---|---|---|---|\n[one row per Track B VC, sorted by space_fit_score descending]\n\n---\n\n### Top 5 Deep Dives\n\n#### [N]. [Fund Name] (Track [Curated/A/B])\n\nOverview: [fund_overview -- from dataset or search data only]\nWhy it fits: [why_fit]\nPortfolio in this space: [from dataset or search data, or \"not found in search data\"]\nHow to approach: [how_to_approach]\nOutreach hook: \"[outreach_hook]\"\n\n[repeat for all available deep dives]\n\n---\n\n### 3 Outreach Hooks for This Product Type\n\n**1. [hook_type]**\n[hook_text]\nBest for: [best_for]\n\n[repeat for all 3]\n\n---\nData quality notes: [data_quality_flags, or \"None\"]\nSaved to: docs/vc-intel/[PRODUCT_SLUG]-[DATE].md\n```\n\nClean up temp files:\n\n```bash\nrm -f /tmp/vc-product-raw.md /tmp/vc-stage-signals.json /tmp/vc-product-analysis.json \\\n      /tmp/vc-product-context.json /tmp/vc-curated-matches.json /tmp/vc-comparable-search.json \\\n      /tmp/vc-tracka-results.json /tmp/vc-trackb-results.json /tmp/vc-final-list.json\n```","tags":["finder","opendirectory","varnan-tech","agent-skills","gtm","hermes-agent","marketing-skills","openclaw-skills","skill-pack","skills","technical-seo"],"capabilities":["skill","source-varnan-tech","skill-vc-finder","topic-agent-skills","topic-gtm","topic-hermes-agent","topic-marketing-skills","topic-openclaw-skills","topic-skill-pack","topic-skills","topic-technical-seo"],"categories":["opendirectory"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Varnan-Tech/opendirectory/vc-finder","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Varnan-Tech/opendirectory","source_repo":"https://github.com/Varnan-Tech/opendirectory","install_from":"skills.sh"}},"qualityScore":"0.593","qualityRationale":"deterministic score 0.59 from registry signals: · indexed on github topic:agent-skills · 286 github stars · SKILL.md body (44,707 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:54:44.184Z","embedding":null,"createdAt":"2026-04-21T13:31:42.601Z","updatedAt":"2026-05-18T18:54:44.184Z","lastSeenAt":"2026-05-18T18:54:44.184Z","tsv":"'-10':4799,4822,4824 '-3':5031 '-4':595,1683,1730 '/extract':768 '/india':2810 '/search'',':3567,3983,4253 '/tmp/vc-comparable-search.json':3643,3661,5907 '/tmp/vc-curated-matches.json':3370,3434,3702,4396,5906 '/tmp/vc-final-list.json':4893,5079,5123,5582,5910 '/tmp/vc-product-analysis.json':1370,1515,1533,1619,3505,3804,3818,3849,3930,4161,4382,5904 '/tmp/vc-product-context.json':1756,1780,5905 '/tmp/vc-product-raw.md':747,808,821,928,1312,5902 '/tmp/vc-stage-signals.json':1262,1318,5903 '/tmp/vc-tracka-results.json':4062,4387,5908 '/tmp/vc-trackb-results.json':4328,4392,5909 '/v1/scrape':704 '0':282,683,794,1156,3024,3038,3052,3212,3224,3235,3449,4093,4116,4340,5167,5224,5322,5543 '1':441,1247,3026,3136,4075,4599,4798,4821,5867 '10':3099,3143,3164,4817,5111 '1000':502 '10m':2059,2534,2732,2889,2995 '11':4842,5611 '12':4863 '125':505 '13':4884 '15':3188,3237 '15m':2782 '1m':1858,1909,2058,2106,2157,2199,2247,2293,2341,2390,2434,2482,2533,2580,2629,2731,2781,2888,2939,2994 '2':533,1240,1265,1336,1518,1682,1729,1759,3029,3373,3646,3852,4065,4331,4578,4649,4724,4830,5030,5082,5585 '20':1388,3072,3110,3181,3232 '200':826,833,845,3692 '2023':4194 '2024':4196 '2025':4198 '20m':2294,2342,2435,2940 '25':1581,5693 '25m':2391 '2m':1957,2003,2679 '3':594,685,3031,3395,3869,4140,4335,4421,4672,4801,5024,5436,5440,5860,5879 '30':3214,3582,3998,4268,5018,5379 '3m':1859,2158,2838 '4':384,903,4464,4691 '40':3264 '400':3676,4415,4458 '4m':2200,2248,2630 '5':18,60,277,600,894,1292,3067,3450,3711,3737,3823,3914,3974,4088,4150,4712,4998,5068,5285,5290,5299,5316,5338,5344,5350,5359,5807 '500':3604,4436,4474 '500k':1808,2002,2678,2837 '50m':2107,2483 '5b':1563,3422 '5m':1910,2581 '6':249,301,1367,1498,3366,3392,3407,3410,4099,4740 '60':3080,3620 '6000':1314,1323 '7':3905,4244,4756 '70':3259 '8':3387,3558,4129,4774 '8m':1958 '9':4363,4794,4823 'a16z':200,2086 'a16z.com':2131 'ab':3130 'abc':1132,1145 'accel':2416,2758 'accept':1431,4883 'access':950 'across':1803,2330,2875,2927 'activ':2833,5779 'add':199,508,4751 'address':5591 'advanc':3555,3971,4241 'aesthet':372 'agent':191 'ai':130,155,250,1337,1644,1667,1821,1968,2071,2120,2545,2639,2955,3466,3651,3694,4579 'airbnb':1828 'airtabl':2696 'all_results.append':3588,3631 'all_track_a.append':4004,4041 'all_track_b.append':4274,4310 'alon':1428 'alreadi':3478,3718,5736 'also':419 'alto':2553 'alway':423 'ambiti':2328 'amplifi':1935 'analysi':918,1294,1504,1508,1513,1521,1607,1722,3502,3507,3512,3815,3819,3847,3862,3927,3932,4158,4163,4168,4173,4379,4533,4537,4542,4546,4549,4554,4558,5652 'analyz':1339 'andreessen':2084 'angellist':4852 'announc':1160,1172,1179 'answer':3560,3591,3593,3634,3673,3675,3976,4015,4017,4052,4246,4282,4284,4318,4433,4435,4471,4473 'api':447,450,455,458,471,480,517,693,709,756,775,778,909,3520,3547,3939,3963,4180,4232 'api.firecrawl.dev':703 'api.firecrawl.dev/v1/scrape':702 'api.tavily.com':767,3566,3982,4252 'api.tavily.com/extract':766 'api.tavily.com/search'',':3565,3981,4251 'app.tavily.com':499 'appear':124,137,218,3872,4662,4707,4781 'appl':2077 'appli':118 'applic':2476,4853,5397 'application/json':715,773,3574,3990,4260 'approach':4843,4967,4995,5016,5372,5378,5383,5384,5409,5757,5793,5846,5849 'appsmith':2023 'arctic':2599 'area':5044 'array':1492,3809 'articl':316,4702 'asia':2960 'ask':621 'atlassian':2455 'author':706 'auto1':2219 'avail':1659,3897,5857 'b':40,84,311,561,1120,1189,1452,4120,4131,4225,4291,4305,4326,4337,4389,4441,4447,4572,4575,4654,4696,4717,4761,4970,5006,5065,5102,5106,5182,5189,5193,5197,5205,5213,5215,5219,5223,5229,5231,5278,5771,5798 'b2b':1665,1818,2149,2152,2164,2211,2258,2354,2445,2495,2592,2687,2792,2848,2900,2952,3003 'back':1988,2096,2323,2470,2612,2670,2712,2827,2984,3536,3760,3958,4681,4829,5730,5749 'bain':2461 'base':1719 'bash':444,664,697,761,816,920,1305,1499,1525,1611,1713,1772,3426,3495,3653,3810,3920,4151,4374,5045,5115,5616,5899 'bearer':707 'benchmark':2702 'besid':2723 'bessem':2273 'best':2325,5033,5872,5874 'beta':947,964 'beyond':2044 'bias':1482,1643,1703,4560,5650 'blockdaemon':1878 'blume':2813 'blume.vc':2862 'bold':2097 'boldstart':1834 'boldstart.vc':1881 'book':993 'breakthrough':2566 'broaden':3877 'broader':303,4101 'browser':871 'build':1800,1902,1943,1993,2036,2099,2238,2284,2334,2472,2521,2575,2881,2934,2987 'built':2664 'busi':2338,2885 'buyer':1433,5663,5664 'buzzfe':2697 'bvp':2277 'c':668,725,784,818,1307,1527,1613,3428,3655,3857,3860,4376 'cal.com':2022 'cannot':329 'capit':1984,2030,2136,2145,2228,2462,2662,2866,2982,3529,3889,3957,4189,4221 'case':1053,1076 'categori':2336,2530,2883 'category-defin':2335,2882 'champion':2184 'chang':5482 'char':1324,5019 'charact':745,806,834,842,846,5467 'check':143,443,1806,1856,1907,1955,2000,2056,2104,2155,2197,2245,2291,2339,2388,2432,2480,2531,2578,2627,2676,2729,2779,2835,2886,2937,2992,3276,3279,4507,4510,4628,4757,4927,4955,4983,5336,5391,5427,5448,5471,5607,5712,5739,5753,5789 'checkpoint':815 'cherri':2180 'cite':314,1463,3764 'classif':1351 'clean':5895 'clear':1476 'close':4743 'code':2626 'coinbas':2128 'cold':4847 'collect':2653 'combin':1786,3696 'come':150,243,348,375,4619,4633,5703 'comma':5675 'comma-separ':5674 'commerc':1676,2478,2798 'commerci':1994 'common':188 'communiti':2242 'comp':3945,3949,4010,4047 'compani':21,27,63,121,148,237,253,258,1357,1437,1439,1488,1511,1802,1906,1999,2038,2290,2430,2479,2526,2773,2936,2991,3344,3350,3356,3413,3419,3472,3475,3494,3534,3700,3713,3717,3724,3734,3745,3774,3808,3821,3824,3864,3871,3912,3934,3948,3953,4006,4007,4025,4038,4043,4044,4108,4210,4424,4427,4674,4679,4779,4831,4909,4948,5131,5154,5179,5667,5669,5672,5732 'compar':19,61,72,120,236,241,273,290,1356,1487,1510,1597,3338,3354,3363,3365,3402,3406,3412,3425,3438,3443,3471,3482,3612,3627,3712,3742,3807,3820,3854,3863,3870,3911,3919,3931,3933,3947,4005,4042,4071,4423,4426,4678,4908,5671,5750 'complet':4070,5589 'confid':1234,1257,1258,1270,1271,1455,1560,1561,3310,3333,3381,3391,4493,4495,4553,4556,4917,5043,5646,5647,5709,5723 'consum':1403,1604,1672,2070,2119,2210,2260,2305,2353,2379,2402,2447,2524,2543,2686,2743,2794,2850,2898,2950,3007 'contact':1017 'content':607,713,732,744,750,771,791,797,805,811,819,825,838,841,844,858,901,926,959,1003,1038,1073,1106,1146,1301,1310,1326,1343,3572,3601,3603,3691,3988,4258,4412,4414,4455,4457 'content-typ':712,770,3571,3987,4257 'context':1712,1724,1754,1762,1763,1777,3254,4752 'continu':274,521 'core':1384 'coss':1998 'count':1080,5430,5530,5533,5542,5549 'cover':4107 'coverag':4113,5525 'crane':2607 'crane.vc':2649 'cred':2966 'credibl':337 'credit':1603 'credits/month':503 'crypto':1677,1843,1870,2117 'cta':379,965,1010,1044,1466 'ctx':3036 'ctx.get':3046,3086,3146 'curat':1564,1578,1770,3337,3353,3362,3364,3376,3405,3417,3435,3437,3441,3445,3446,3452,3473,3698,3715,3755,3773,3784,3798,3825,4393,4478,4561,4563,4600,4604,4626,4636,4840,4913,5004,5059,5087,5090,5258,5683,5719 'curated.get':4483 'curated/a/b':5814 'curated_comparables.append':3355 'curated_summary.append':4487 'curl':698,762 'custom':1058,1079 'cybersecur':1679,2544 'd':716,729,774,788,1067,1072,1127,1138,5293,5295,5621 'd.get':733,738,792,5303 'dare':2035 'dash':4887,5451,5466 'data':175,181,367,411,734,1668,1953,1969,2624,2638,3486,3568,3785,3793,3901,3984,4125,4254,4350,4373,4596,4606,4627,4637,4739,4764,4770,4791,4841,5035,5073,5362,5390,5426,5520,5538,5557,5563,5570,5574,5822,5837,5843,5880,5883 'datadog':1975 'dataset':1571,1579,1658,1771,5691,5707,5819,5834 'date':5617,5618,5627,5640,5893 'day':1837,2191 'dbt':1977 'dd':5364,5380,5419 'dd.get':5369,5375,5402,5412,5416 'deep':2613,4999,5069,5239,5286,5291,5300,5317,5328,5339,5345,5356,5808,5858 'deepli':1797,1849 'deeptech':1678,2637,2851 'def':3032 'default':576 'defin':2337,2528,2884 'demo':992,997,1002,1009 'depth':3554,3970,4240 'deriv':655 'descend':5769,5805 'describ':359,1686,4731 'descript':10,54,422,438,546,589,613,618,635,876,898,1378,4536,4540,4899,5658 'detail':169,5702 'detect':11,55,368,381,569,904,1329,1441,1556,1637,1690,4174,4550,4815,4906,5643 'determin':5387 'develop':1401,1841,1891,1950 'developer-first':1890 'devtool':1661,1820,1868,1918,1966,2016,2448,2591,2954,3006 'differenti':398 'direct':547,597,877,4607,5395,5559,5704 'discov':3411,3733,3779,3802,3830 'dive':5000,5070,5240,5281,5287,5292,5301,5310,5312,5318,5321,5327,5329,5340,5341,5346,5349,5355,5357,5366,5809,5859 'dm':4856 'docplann':2175 'docs/vc-intel':5624,5631,5890 'docusign':2503 'domain':1805 'domin':1165,1178,1195,1212,1227,1230,1254,1256,1269 'done':1361 'driven':2715 'drop':229 'dropbox':2363 'drove':1472 'e':1675,2797,3624,3630,3638,4033,4040,4056,4301,4309,4322 'e-commerc':1674,2796 'earli':948,1990,2049,2517,2572,2876,2928 'earliest':2190,2719 'early-stag':1989,2048,2516,2571 'eat':2092 'ebay':2752 'echo':445,453 'ecosystem':2778 'elev':2865 'elevationcapital.com':2912 'elif':1167,1180,1199,1216,3100,3111,3165,3174,3182 'els':835,1229,1241,1248,3071,3260,3265 'em':4886,5450,5465 'email':4848 'embed':1769 'empti':1491 'encod':3562,3978,4248 'endur':2935 'enterpris':1089,1109,1671,1904,2069,2118,2304,2378,2401,2522,2542,2576,2590,2616,2636,2742,3005 'enterprise-readi':1903 'entrepreneur':2098,2279,2329 'entri':5521 'env':512 'equal':2709 'error':828,3636,4054,4320 'estim':3781,3840 'etc':1404,1411,1421 'europ':574,1484,1706,1750,2169,2187,2215,2358,2619,2642 'even':4645 'everi':98,389,4585 'evid':211,256,1460,4615,4673,4947,4950,5130,5153,5178,5743 'exact':1464,3710,4698 'except':2421,2764,3621,3622,4030,4031,4298,4299,4671 'exclus':1987 'expect':5358,5439 'explain':3751 'extend':5577 'extract':162,463,524,753,803,1725,3044,3047,3058,3219,3227,4718 'extraordinari':2985 'f':741,799,837,1152,1267,1284,3125,3133,3138,3375,3389,3400,3440,3454,3523,3532,3611,3626,3667,3672,3683,3689,3952,4022,4035,4067,4187,4203,4215,4289,4303,5084,5169,5226,5324,5352,5400,5438,5503,5545,5587,5595,5599,5600,5901 'facebook':2127,2454 'fact':99 'fail':3629,4039,4308 'failur':5124,5578,5593,5597,5603 'failures.append':5168,5225,5323,5351,5399,5437,5463,5502,5544 'fallback':468,493,751 'famous':206,208 'fetch':114,415,424,531,686,742,800,848,912 'fewer':831,3867 'field':4586,4623,4638,4926,5040,5550 'figma':2129,2365 'file':513,5623,5898 'filenam':663 'fill':184,338,1495,1505,1718,3822,4641,5051 'final':5634 'find':30,59 'finder':3,48,5637 'fintech':1399,1669,2306,2352,2403,2475,2494,2795,2899,2951 'firecrawl':454,457,516,690,692,708,755 'firm':2146,2236,2983 'first':1322,1842,1892,2226,2990,3827 'firstround.com':2270 'fit':3753,4796,4819,4937,4940,4962,4965,4990,4993,5010,5755,5767,5791,5803,5826,5828 'fix':5401,5464 'flag':3899,3903,4123,4127,4352,5037,5075,5514,5565,5572,5576,5885 'flipkart':2804 'flixbus':2218 'focus':146,1810,1823,1861,1872,1912,1923,1960,1971,2005,2018,2061,2073,2109,2122,2147,2160,2168,2202,2214,2250,2262,2296,2308,2344,2357,2393,2405,2437,2450,2485,2498,2536,2547,2583,2595,2632,2641,2681,2690,2734,2745,2784,2800,2840,2854,2891,2904,2942,2957,2997,3009,3093,3153,3282,3285,3292,3295,4513,4516,4632,4930,4954,4982,5711,5752,5788 'forbidden':5473,5475,5495,5505 'forg':2286 'form':4854 'format':720 'former':2919 'forto':2221,2647 'found':178,364,1478,4358,4736,4788,5423,5508,5517,5529,5535,5541,5548,5554,5840 'foundat':2282 'founder':232,328,1846,1851,1897,1942,1992,2185,2244,2382,2422,2471,2519,2574,2617,2652,2666,2668,2716,2765,2872,2926,2986 'free':500,978,987,1006 'freshwork':2806 'full':506,5452,5458,5486,5499 'full_text.replace':5462 'fund':15,20,62,134,157,265,340,345,361,1121,1148,1153,1570,1584,1587,1593,1657,1782,1783,1791,1832,1882,1933,1981,2027,2082,2132,2178,2224,2271,2317,2368,2414,2459,2508,2558,2605,2650,2663,2700,2756,2811,2825,2831,2863,2913,2969,3034,3035,3039,3063,3089,3101,3107,3140,3149,3166,3178,3185,3196,3202,3208,3216,3222,3244,3247,3252,3253,3268,3270,3271,3274,3278,3283,3288,3293,3298,3302,3306,3323,3382,3397,3485,3527,3537,3728,3758,3770,3886,3955,4205,4222,4488,4491,4527,4617,4648,4658,4713,4733,4861,4915,4922,4934,4945,4957,4972,4985,5001,5007,5250,5252,5261,5271,5304,5308,5332,5393,5403,5413,5417,5420,5686,5695,5698,5708,5748,5784,5811,5816 'fund.get':3041,3091,3151 'funding_match.group':1155 'futur':2101,2387 'gain':1899 'game':5481 'game-chang':5480 'gap':5038 'gather':534 'generalist':1680,1817,2068,2116,2194,2209,2257,2303,2351,2400,2444,2492,2685,2740,2791,2847,2897,2949,3049,3070 'generat':235,1345,1355,1946,3470 'generic':386,4875 'geo':3144,3150,3157,3160,3167,3170,3175,3179,3186,3190,3197,3203,3209 'geographi':571,1481,1640,1642,1702,1746,1822,1871,1922,1970,2017,2072,2121,2167,2213,2261,2307,2356,2404,2449,2497,2546,2594,2640,2689,2744,2799,2853,2903,2956,3008,3147,3152,3291,3294,4557,4559,5648,5649 'get':496,735,795,956 'gitlab':1829 'global':575,1485,1709,1752,1824,1873,1924,2019,2074,2123,2154,2170,2309,2360,2376,2406,2451,2500,2692,2747,3154,3162,3183,3205 'go':596 'googl':2078 'got':5443 'greylock':2510 'greylock.com':2557 'greyorang':2860 'group':2220 'growth':1700,1745,2053,2065,2113,2300,2348,2397,2431,2441,2468,2489,2774,2788,2929,2946,3030 'growth-stag':2052 'h':705,711,769 'hallucin':96,326,1592,3481,4583,5701 'har':2601 'hard':1853,2621 'hasura':3015 'haul':2728 'header':3570,3986,4256 'health':2381 'healthtech':1400,1670,2852,2902 'heavybit':1884 'help':1895,2033,2278,2879 'high':1235,1456,3256,3335,3358,4484,4918 'high/medium':3380 'highlight':4878 'hint':551,967,1012,1046,1082,1115,1159,1171,1184,1203,1220,1289,1737,1747,3085,3088,3097,3105,3113,3117,3122,3134,3145,3148,3158,3161,3171,3176,3191 'hire':1097 'hook':93,388,391,4865,4876,5021,5023,5026,5028,5072,5429,5435,5442,5447,5851,5853,5862,5868,5870 'hoppscotch':2024 'horowitz':2085 'host':676 'host.split':682 'hyphen':5470 'icp':1297,1348,1432,4545,4547 'idea':2040 'identifi':17 'idx':3118,3135 'ie':1057,1062 'import':671,726,785,923,1308,1502,1528,1614,1716,1775,3429,3498,3656,3813,3923,4154,4377,5048,5118 'incept':2424,2767 'includ':215,308,3559,3975,4245,4656,5056 'incomplet':5527 'indent':1264,1335,1517,1758,3372,3645,3851,4064,4330,4577,5081,5584 'index':2319 'india':1707,1751,2759,2801,2855,2874,2905,2921,2958,2980,3010,3168,3194 'indian':2777 'indistinguish':324 'industri':13,56,1393,1540,1542,1546,1550,1623,1627,1631,1815,1866,1916,1964,2012,2066,2114,2162,2207,2255,2301,2349,2398,2442,2490,2540,2588,2634,2683,2738,2789,2845,2895,2947,3001,3042,3286,3289,3508,3513,4164,4169,4541,4543,4900,4902,4904,5659 'infer':4690,4857 'info':5546 'infrastructur':1662,1854,1869,1919,1949,1967,2474,2493 'innov':5479 'input':535 'instruct':1338,1645,3695,4580,5398 'insuffici':5360 'intro':4850 'invest':24,34,69,487,1795,1939,2089,2375,3909,4134,4190,4193,4207 'investor':89,1888,2055,2196,3954,4217,4357,5734,5775,5777 'invit':955 'ipo':2042 'issu':5590 'item':3678,3684,3686,3690,4401,4425,4430,4444,4468 'item.get':4419,4434,4462,4472 'javascript':866 'javascript-rend':865 'job':1112,1435 'join':936,1098,3856 'json':728,787,925,1309,1503,1529,1615,1717,1776,3430,3499,3657,3814,3924,4155,4378,5049,5119 'json.dump':1259,1512,1753,3367,3639,3846,4057,4323,5076,5579 'json.dumps':1333,3546,3962,4231,4530,5454,5489,5531 'json.load':730,789,1316,1531,1617,1778,3432,3503,3659,3816,3928,4159,4380,4385,4390,4394,5121 'json.loads':3586,4002,4272,5461 'key':448,451,456,459,472,481,518,694,710,757,776,779,3317,3517,3521,3548,3550,3936,3940,3964,3966,4177,4181,4233,4235 'know':5524 'knowledg':132,156,187,240,251,344,3468,4644,4755 'l1':1395,1544,1625,3884,4901,5660 'l2':1405,1548,1629,3506,3510,3533,4144,4162,4166,4201,4206,4903,5661 'l3':1412,1552,1633,3491,3511,3515,3524,4146,4167,4171,4185,4192,4218,4834,4905,5662 'l3-niche-specific':3490 'lab':1978,2965 'label':1423 'lambda':3318 'languag':1392,4890 'last':1418 'last-mil':1417 'launch':1898 'lay':2280 'lead':1887 'leav':1489 'led':4356,5774 'legendari':2037,2473 'len':743,804,824,840,1237,1244,1273,3378,3444,3451,3614,4026,4294,5088,5095,5103,5134,5159,5190,5216,5282,5313,5348,5354,5374,5432,5444,5592 'level':814,1398,2567 'leverag':5484 'lightspe':2370 'like':1424,4877 'line':1377,4539,4898,5657 'linkedin':2312,2555 'list':46,90,334,1734,5677 'live':428,1363,5745 'load':3416 'local':907 'logist':1409 'long':2288,2727 'long-stand':2287 'lose':335 'love':1848 'low':1249,1458,3266,5042 'low-confid':5041 'lower':930,5488,5491,5501 'lsvp.com':2413 'm':3326,3328,3332,3340,3384,3390,3393,3396,4481,4490,4494,4497,4501,4505,4509,4514,4519,4523,5620 'm.get':3346 'map':1610,1646,1689,1701 'mark':5552 'markdown':721,736,739,913 'market':1391,4889 'marketplac':1673,2153,2166,2741 'massiv':1801 'match':1122,1149,1567,1594,3053,3240,3249,3312,3314,3360,3377,3431,3726,4486,4499,4502,4562,4605,4811,4920,5684,5687,5714 'matched_tags.append':3073 'matches.get':3436 'max':3211,3234,3448,3556,3972,4242,4723 'may':262,268 'md':5628,5894 'mean':288,861 'medium':1242,1457,3261,3336,3359,4485,4919 'meesho':2910 'memori':261 'mention':4773 'mentor':2834 'method':3575,3991,4261,4844,4968,4996,5385 'mile':1419 'min':3077,5017 'miss':474,520,5039,5129,5177,5184,5234,5406 'mission':2714 'mission-driven':2713 'mistak':189 'mk':1129,1140 'mkdir':5629 'mulesoft':2411 'must':103,123,136,149,242,347,374,392,4590,4682,4866,5055 'n':5810 'name':122,135,228,393,1372,1538,1784,1833,1883,1934,1982,2028,2083,2133,2179,2225,2272,2318,2369,2415,2460,2509,2559,2606,2651,2701,2757,2812,2864,2914,2970,3269,3272,3324,3398,3744,3746,3832,3858,3950,4183,4199,4211,4276,4278,4293,4307,4312,4314,4467,4470,4489,4492,4532,4535,4651,4661,4867,4896,4911,4916,4946,4973,5002,5253,5262,5272,5305,5404,5639,5812 'name-drop':227 'need':537,3447,3461,3739 'neither':615 'netlifi':1930 'netloc.replace':679 'network':2554 'new':2529 'next':1945 'nexus':2971 'nexusvp.com':3018 'nich':1414,3492,4835 'nine':2135 'nois':213 'none':4793,5887 'notabl':1825,1875,1926,1973,2020,2075,2125,2171,2216,2264,2310,2361,2407,2452,2501,2549,2597,2643,2693,2748,2802,2856,2906,2961,3012,3296,3299,3347,4517,4520 'note':4348,5678,5882 'notifi':958 'notion':2267 'object':5025 'obscur':295 'octo':1976 'often':430 'ok':839 'omit':439 'one':1376,1461,1838,3749,3780,3917,4538,4845,4897,5656,5716,5758,5794 'onfido':2645 'onlymaincont':722 'open':746,807,820,927,1103,1113,1261,1311,1317,1514,1532,1618,1663,1755,1779,1920,1995,2014,3369,3433,3504,3642,3660,3817,3848,3929,4061,4160,4327,4381,4386,4391,4395,5078,5122,5581 'option':548,570 'order':3020,3116,3120,3128,3132 'origin':5132,5157,5188,5214,5280,5311 'os':3500,3925,4156 'os.environ.get':3518,3937,4178 'oss':1983 'oss.capital':2026 'outbound':1415 'output':102,662,3357,3368,4589,5510,5615,5622,5635 'outreach':92,387,390,4864,5020,5022,5071,5428,5434,5441,5446,5561,5850,5852,5861 'overview':158,341,346,4618,4714,4923,4958,4986,5008,5414,5418,5421,5815,5817 'p':5630 'page':116,429,688,829,854,1321,1342,1375,1471 'pagerduti':1928 'palo':2552 'paraphras':4744 'pars':910 'partner':1839,1936,2275,2372,2419,2511,2514,2609,2710,2762,2869,2917,2924,2973 'partnership':2707 'pass':3173,5608 'past':543,588,603,632,873,897 'payload':3545,3569,3961,3985,4230,4255 'paytm':2908 'peak':2915 'penal':4800 'per':3918,4836,5718,5760,5796 'persona':1434,5665 'phase':2427,2770 'pick':1681,3709 'pine':2964 'plan':1033,1091 'platform':1954 'pleas':872 'point':2134,3051,3066,3076,3079,3083,3231,4802 'polici':97 'portfolio':147,403,1826,1876,1927,1974,2021,2076,2126,2172,2217,2265,2311,2362,2408,2453,2502,2550,2598,2644,2694,2749,2803,2857,2907,2962,3013,3297,3300,3348,3404,3418,3442,3474,3699,3716,3723,3769,3799,3826,4209,4518,4521,4775,4870,5011,5829 'posit':1105 'post':318,701,765,3576,3992,4262,4704 'postman':3014 'power':5476 'pre':553,650,969,1232,1444,1566,1694,1740,1812,1863,2007,2204,2252,2585,2822,2842,3022,4611 'pre-match':1565 'pre-se':552,649,968,1231,1443,1693,1739,1811,1862,2006,2203,2251,2584,2821,2841,3021 'pre-verifi':4610 'prefer':572 'present':5513,5614,5632 'press':4112 'price':1029,1032,1037,1041,1092 'primari':689 'print':681,740,798,827,836,1266,1283,1298,1319,1325,1327,1328,1332,1519,1534,1539,1553,1605,1620,1634,1639,1760,3374,3388,3399,3439,3453,3610,3625,3648,3666,3671,3682,3688,3693,3853,4021,4034,4066,4288,4302,4370,4529,4595,5083,5586,5598,5604 'priorit':3714 'privat':2429,2772 'problem':1855,2622 'proceed':891,3893,4117,4342 'produc':1589 'product':7,51,115,226,396,538,545,606,628,656,665,687,853,875,900,1293,1300,1320,1341,1371,1520,1535,1537,1574,1606,1648,1688,1711,1761,2989,4531,4534,4813,4894,5057,5625,5638,5651,5865,5891 'product-first':2988 'prop':1386 'prospect':1416 'provid':420,563,585,620,1789,2564 'public':2931,4360 'publish':33,78,5780 'purpll':2859 'pyeof':922,1290,1501,1523,1715,1764,1774,3408,3497,3647,3812,3865,3922,4085,4153,4332,5047,5109,5117,5609 'python3':667,724,783,817,921,1306,1500,1526,1612,1714,1773,3427,3496,3654,3811,3921,4152,4375,5046,5116 'q':4227,4237,4277,4280,4292,4306,4313,4316 'qa':5114,5335,5588,5606 'qualiti':3902,4126,4351,5036,5074,5564,5571,5575,5881,5884 'queri':305,3522,3542,3544,3551,3552,3589,3590,3619,3632,3633,3668,3670,3879,3951,3967,3968,4013,4014,4050,4051,4102,4182,4186,4202,4214,4229,4236,4238,4275,4279,4281,4311,4315,4317,4466,4469 'quot':407,4874 'r':935,973,1016,1052,1088,1124,3606,3663,3669,4077,4417,4460 'r.get':3596,3599,3602,3674,3680,4083,4407,4410,4413,4450,4453,4456 'rais':1125,3526 'rank':44,88,4365 'raw':796 're':298,924,1095,4096 're-run':297,4095 're.search':934,972,1015,1051,1087,1123 'reach':3736 'read':822,929,1313 'readabl':857 'readi':1905 'real':3722 'reason':3748,3835,4009,4012,4046,4049,4429,4432 'redi':2505 'refer':3756 'regex':915 'relev':3325,3342,3361,3379,3386 'remov':5125,5155,5165,5170,5171,5180,5212,5222,5227,5228,5238,5309,5320,5325,5326 'render':867 'repeat':5854,5876 'replac':5468 'req':3563,3580,3979,3996,4249,4266 'request':951,988 'requir':483,540,869,4616,4851,4949,4977 'research':66,485,4372,4567,4573 'resp':3584,4000,4270 'resp.read':3587,4003,4273 'result':111,128,142,222,247,283,287,793,1250,1260,3540,3557,3585,3594,3609,3616,3617,3635,3641,3649,3658,3665,3681,3707,3776,3876,3973,4001,4018,4020,4028,4029,4053,4073,4084,4094,4243,4271,4285,4287,4296,4297,4319,4341,4346,4420,4438,4463,4476,4711,5050,5077,5120,5139,5160,5195,5217,5288,5314,5455,5460,5490,5532,5568,5569,5573,5580 'result.get':3592,3608,3615,4016,4019,4027,4283,4286,4295,5089,5096,5104,5135,5147,5191,5203,5257,5266,5276,5283,5297,5342,5433,5445 'retri':307,4103 'return':42,85,281,830,855,3238,4092,4339 'reveal':431 'review':5511 'rippl':2410 'rm':5900 'roblox':2268 'robust':5477 'round':1134,1137,2227,3887 'rout':1420 'row':5717,5759,5795 'rule':4584,4598 'run':64,299,507,1572,1765,3880,3913,4097,4139 'saa':1666,1819,1845,2150,2165,2212,2259,2355,2446,2496,2593,2688,2793,2849,2901,2953,3004 'sale':1019,1026,1043,1407 'saniti':1929 'save':5612,5888 'schedul':998 'score':1766,3033,3037,3081,3098,3109,3142,3163,3180,3187,3210,3213,3233,3236,3239,3242,3248,3251,3258,3263,3308,3309,3321,3330,3394,4367,4496,4498,4797,4820,4938,4941,4963,4966,4991,4994,5725,5756,5768,5792,5804 'scored.append':3267 'scored.sort':3316 'sea':2922 'seamless':5478 'search':22,110,127,141,152,164,174,180,221,246,280,304,366,410,1364,3553,3613,3628,3706,3792,3875,3883,3916,3969,4091,4142,4239,4338,4361,4710,4738,4769,4784,4790,5361,5389,5425,5519,5537,5556,5747,5821,5836,5842 'sector':1406 'see':1027 'seed':554,555,651,652,970,1013,1135,1142,1221,1228,1233,1445,1446,1596,1695,1696,1738,1741,1742,1790,1813,1814,1864,1865,1913,1961,2008,2009,2062,2110,2142,2161,2195,2205,2206,2234,2253,2254,2297,2345,2394,2438,2466,2486,2537,2586,2587,2633,2659,2682,2735,2785,2819,2823,2843,2844,2892,2943,2998,3023,3025,3401,3424,3530,3959 'seed-stag':2141,2233,2658 'select':3652 'self':5113 'self-qa':5112 'sendgrid':2504 'sentenc':1462,3750,4725,5032 'separ':5676 'sequoia':202,2029,2045,2920 'seri':557,560,653,1048,1084,1117,1130,1143,1186,1197,1205,1214,1448,1451,1697,1743,1914,1962,2010,2063,2111,2298,2346,2395,2439,2487,2538,2736,2786,2893,2944,2999,3027,3531,3960 'series-a':556,1047,1083,1196,1204,1213,1447 'series-a-or-b':1116,1185 'series-b':559,1450 'set':452,461,608,696,760 'setup':442 'shape':2385 'shopifi':2314 'short':634 'sign':941 'signal':380,404,433,906,932,961,1005,1040,1075,1108,1151,1164,1177,1194,1211,1226,1239,1246,1251,1253,1275,1276,1282,1286,1304,1315,1331,1334,1477,4871 'signific':4111 'silent':522 'similar':3747,3834,4008,4011,4045,4048,4428,4431,5731 'site':863 'size':144,1440,1807,1857,1908,1956,2001,2057,2105,2156,2198,2246,2292,2340,2389,2433,2481,2532,2579,2628,2677,2730,2780,2836,2887,2938,2993,3277,3280,4508,4511,4629,4758,4928,4956,4984,5670,5713,5754,5790 'skill' 'skill-vc-finder' 'skip':412,567,592 'slack':2364 'slug':657,666,5626,5892 'snap':2409 'snapchat':2753 'snippet':153,165,351,356,3766,3787,4405,4439,4448,4477,4666,4687,4720,4728,4747,4763,4785,4838,4859 'snyk':1877 'softwar':1410,1427,1997,2091,2525 'solv':1852,2620 'sort':5721,5764,5800 'sourc':45,87,322,610,1585,1664,1921,1996,2015,3304,3767,3796,3837,3843,4525,4693,4932,4951,4975,4979,5186,5210,5236,5679,5696,5786 'source-varnan-tech' 'south':2959 'space':38,82,4138,4213,4777,4818,4939,4964,4992,5013,5742,5766,5783,5802,5832 'specif':108,225,378,395,401,1413,3493,4869 'specifi':581 'spotifi':2456 'stage':16,58,145,369,373,432,550,568,609,645,887,905,931,966,1011,1045,1081,1114,1158,1163,1170,1176,1183,1193,1202,1210,1219,1225,1238,1245,1252,1255,1268,1274,1281,1288,1296,1303,1330,1350,1442,1454,1459,1554,1557,1559,1635,1638,1691,1736,1809,1860,1911,1959,1991,2004,2050,2054,2060,2108,2143,2159,2201,2235,2249,2295,2332,2343,2392,2436,2484,2518,2535,2573,2582,2631,2660,2680,2720,2733,2783,2839,2877,2890,2932,2941,2996,3019,3084,3087,3090,3092,3096,3102,3104,3108,3112,3115,3119,3121,3127,3131,3141,3281,3284,3782,3841,4172,4175,4212,4216,4512,4515,4548,4551,4552,4555,4631,4795,4808,4816,4907,4929,4936,4953,4961,4981,4989,5642,5644,5645,5710,5751,5787 'stage_signals.append':960,1004,1039,1074,1107,1150 'stand':2289 'standard':1652 'start':974 'startup':6,630,1793,1893,2675,2828,3525,3538,3885,4219 'state':4684,4807 'status':266 'step':248,300,383,440,532,593,599,684,813,893,902,919,1291,1366,1497,1562,3409,3421,3904,4098,4128,4149,4362,5110,5610 'step-level':812 'still':3891,4115 'stop':296,475,847 'stor':1060 'str':3637,3833,3836,3839,3842,3845,4055,4321 'streamlin':5483 'strip':1157,5245,5333 'stripe':1827 'strong':2281 'stud':1055 'studi':1077 'suggest':259 'sum':4074 'summari':161,4399,4442,4479,4564,4570,4576,4742,4895,4960,4988,5058 'superhuman':1879 'supplement':3457,3488,3729 'support':2241,2569 'swiggi':2805,2909 'synthes':4364 'synthesi':5053,5085 'sys':727,786 'sys.stdin':731,790 'tag':1609,1653,1660,1684,1726,1731,1816,1867,1917,1965,2013,2067,2115,2163,2208,2256,2302,2350,2399,2443,2491,2541,2589,2635,2684,2739,2790,2846,2896,2948,3002,3040,3043,3045,3048,3050,3054,3056,3059,3061,3064,3065,3069,3074,3075,3078,3082,3217,3220,3223,3228,3230,3241,3250,3287,3290,3313,3315,4500,4503,4921,5715 'taga':1727 'tagb':1728 'take':4,49 'talk':1020 'target':549 'tavili':109,126,140,220,245,350,446,449,462,470,479,523,752,777,802,1602,3415,3455,3487,3516,3519,3549,3705,3732,3763,3775,3801,3829,3915,3935,3938,3965,4141,4176,4179,4234,4614,5746 'tavily-discov':3731 'taxonomi':1295,1347,1394,1543,1547,1551,1575,1621,1624,1628,1632,1649,1721,3509,3514,4147,4165,4170,4544 'team':1102,1799 'tech':2577,2614 'technic':1798,1850,1896,1941 'technolog':1408,1425,2103 'tell':476,849 'temp':5897 'tessian':2646 'text':352,604,1154,1468,3788,4667,4688,4721,4748,5029,5453,5459,5487,5500,5871 'these':35,79,489,4135 'thesi':160,319,406,1787,1836,1885,1937,1985,2031,2087,2137,2182,2229,2276,2321,2373,2417,2464,2512,2562,2610,2654,2703,2760,2815,2867,2918,2974,3273,3275,4184,4191,4200,4208,4355,4504,4506,4622,4692,4741,4873,4925,4959,4974,4978,4987,5185,5209,5235,5773,5785 'thesis-l':4354,5772 'thin':3892 'third':3882 'tier':501,1093,1110,3255,3311 'time':234 'timeout':3581,3997,4267 'titl':1436,3595,3597,3685,4406,4408,4449,4451,4669,4694,4699,4976,5187,5211,5237 'today':5641 'tool':1402,1951 'top':1397,4437,4475,4997,5067,5284,5289,5298,5315,5337,5343,5806 'top-level':1396 'topic-agent-skills' 'topic-gtm' 'topic-hermes-agent' 'topic-marketing-skills' 'topic-openclaw-skills' 'topic-skill-pack' 'topic-skills' 'topic-technical-seo' 'traceabl':105,4592 'track':28,39,67,73,83,278,285,310,1599,3906,3942,4023,4036,4059,4068,4080,4089,4119,4130,4224,4290,4304,4325,4336,4344,4383,4388,4397,4403,4440,4446,4565,4568,4571,4574,4652,4675,4695,4715,4759,4942,4969,5003,5061,5064,5093,5097,5101,5105,5126,5136,5140,5148,5161,5173,5181,5192,5196,5204,5218,5230,5248,5267,5277,5726,5761,5770,5797,5813 'track_a_summary.append':4422 'track_b_summary.append':4465 'traction':1900,4880 'train':131,186,239,343,3467,4643,4754 'transform':5485 'tri':981,3577,3993,4263 'trial':980,1007 'true':272,723,3561,3977,4247 'trust':1063 'twilio':2313 'twitter':2751 'twitter/x':4855 'two':65 'type':714,772,1438,3573,3797,3844,3989,4259,5027,5668,5680,5866,5869 'typeform':2174 'uber':2266,2695,2750 'unacademi':2858 'unclear':1486 'unknown':1166,1453,1480,3795 'unless':541 'unusu':2560 'updat':3803 'url':8,52,414,426,530,539,591,616,625,659,673,674,678,717,718,780,781,3598,3600,3687,3768,3777,3838,4409,4411,4452,4454,4952,4980 'urllib.parse':670 'urllib.request':3501,3926,4157 'urllib.request.request':3564,3980,4250 'urllib.request.urlopen':3579,3995,4265 'urlpars':672,677 'us':573,578,1483,1705,1748,1749,1874,1925,1972,2124,2263,2359,2499,2548,2596,2691,2746,2979,3011,3172,3192,3199 'us-india':2978 'use':466,527,564,895,1068,1654,3465,4143,4602,4910,5673 'user':418,436,478,542,584,612,851,5523 'usual':860 'v':5143,5145,5199,5201,5251,5255,5260,5264,5270,5274 'v.get':5152,5208 'vagu':1422 'valid':5249,5307 'valu':1385 'vc':2,47,133,209,312,402,486,1583,1781,3246,3727,4204,4650,4805,4828,5175,5232,5636,5694,5720,5763,5799 'vc-finder':1 'vcs':31,77,216,4132,4369,4601,4914,4944,4971,5060,5063,5066,5091,5092,5099,5100,5107,5108,5128,5138,5142,5150,5163,5183,5194,5198,5206,5220,5242,5259,5269,5279,5728 'ventur':1835,2144,2181,2274,2320,2371,2463,2561,2608,2661,2814,2824,2972,2981,3528,3535,3888,3956,4188,4220 'verbatim':138,4663 'verifi':330,1524,1569,1582,3305,3484,3719,4526,4612,4933,5558,5685,5690 'via':801,1362,3414,4359 'view':1030 'visionari':2871 'vivun':2602 'w':748,809,1263,1516,1757,3371,3644,3850,4063,4329,5080,5583 'waitlist':940,962 'walk':2722 'want':193 'warm':4849 'warn':5504 'wast':230 'websit':371,1588,1830,1880,1931,1979,2025,2080,2130,2176,2222,2269,2315,2366,2412,2457,2506,2556,2603,2648,2698,2754,2807,2861,2911,2967,3017,3301,3303,3307,3771,4522,4524,4528,4862,4931,4935,5394,5699 'weird':2671 'well':4106 'well-cov':4105 'whatsapp':2079 'wild':2674 'without':210,313,320 'wolf':2600 'wonder':2672 'word':1389,5474,5493,5497,5506,5507 'workday':2551 'world':2094 'write':176,362,385,749,810,1368,1474,1710,3743,3789,4734,4766,4786,4891 'written':1522,3855,5086,5737 'wrong':198,264,292 'www':680 'www.accel.com':2458,2809 'www.accel.com/india':2808 'www.amplifypartners.com':1980 'www.baincapitalventures.com':2507 'www.benchmark.com':2755 'www.bvp.com':2316 'www.cherry.vc':2223 'www.foundercollective.com':2699 'www.heavybit.com':1932 'www.indexventures.com':2367 'www.peakxv.com':2968 'www.pointnine.com':2177 'www.sequoiacap.com':2081 'www.unusual.vc':2604 'www.ycombinator.com':1831 'x':700,764,3319,3320,3322 'xv':2916 'y':1056,1061,1785,5619 'yet':1358 'zendesk':2173 'zepto':3016 'zero':95,284,1591,3480,4582,5700 'zero-hallucin':94,1590,3479,4581 'zomato':2963","prices":[{"id":"da2479da-f949-4c69-9c0d-436291f2a39d","listingId":"d0bbe9e7-6121-48b5-8f7a-8c89e655d592","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Varnan-Tech","category":"opendirectory","install_from":"skills.sh"},"createdAt":"2026-04-21T13:31:42.601Z"}],"sources":[{"listingId":"d0bbe9e7-6121-48b5-8f7a-8c89e655d592","source":"github","sourceId":"Varnan-Tech/opendirectory/vc-finder","sourceUrl":"https://github.com/Varnan-Tech/opendirectory/tree/main/skills/vc-finder","isPrimary":false,"firstSeenAt":"2026-04-21T13:31:42.601Z","lastSeenAt":"2026-05-18T18:54:44.184Z"}],"details":{"listingId":"d0bbe9e7-6121-48b5-8f7a-8c89e655d592","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Varnan-Tech","slug":"vc-finder","github":{"repo":"Varnan-Tech/opendirectory","stars":286,"topics":["agent-skills","gtm","hermes-agent","marketing-skills","openclaw-skills","skill-pack","skills","technical-seo"],"license":"mit","html_url":"https://github.com/Varnan-Tech/opendirectory","pushed_at":"2026-05-18T18:27:10Z","description":" AI Agent Skills built for Founders who hate Marketing","skill_md_sha":"7e0d1d24e8904b1b84fa1b36158a58a3a77baa33","skill_md_path":"skills/vc-finder/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Varnan-Tech/opendirectory/tree/main/skills/vc-finder"},"layout":"multi","source":"github","category":"opendirectory","frontmatter":{"name":"vc-finder","description":"Takes a startup product URL or description, detects the industry and funding stage, identifies 5 comparable funded companies, searches who invested in those companies (Track A), finds VCs who publish investment theses about this space (Track B), and returns a ranked sourced list of relevant investors with deep-dives and outreach hooks. Use when asked to find investors for a startup, identify which VCs fund products like mine, research who backs companies in my space, build a VC target list, or find investor-market fit.","compatibility":"[claude-code, gemini-cli, github-copilot]"},"skills_sh_url":"https://skills.sh/Varnan-Tech/opendirectory/vc-finder"},"updatedAt":"2026-05-18T18:54:44.184Z"}}