Goal: relevance + reasoning, not mass-spray lists. If we can’t explain the match in plain language, we count it as a miss.
How it works (short): we extract signals from the deck/site (market, stage, traction hints), cross-match with investor theses and portfolios, then rank. LLM + rules handle the “why” section; we log failures to improve features/weights.
Stack: Next.js + FastAPI; Postgres + vector store; batch enrichment jobs for investor data.
Privacy: decks are stored only for processing; you can delete them from settings; logs don’t keep deck content.
Known gaps we’re fixing next: better geography weighting, fund recency signal, and negative-match cues (e.g., “consumer-only fund” should downrank B2B SaaS).
What would be most helpful:
- examples of bad matches and what we missed
- signals you’d trust (or not) in the “why” section
Goal: relevance + reasoning, not mass-spray lists. If we can’t explain the match in plain language, we count it as a miss.
How it works (short): we extract signals from the deck/site (market, stage, traction hints), cross-match with investor theses and portfolios, then rank. LLM + rules handle the “why” section; we log failures to improve features/weights.
Stack: Next.js + FastAPI; Postgres + vector store; batch enrichment jobs for investor data.
Privacy: decks are stored only for processing; you can delete them from settings; logs don’t keep deck content.
Known gaps we’re fixing next: better geography weighting, fund recency signal, and negative-match cues (e.g., “consumer-only fund” should downrank B2B SaaS).
What would be most helpful:
- examples of bad matches and what we missed
- signals you’d trust (or not) in the “why” section
- anything confusing or heavy in the UI