Investment Memo Automation
A fully automated investment research tool that generates a professional research memo on any company — public or private — with a single command. It runs a pipeline of AI agents in parallel, gathers data from the web, and outputs a formatted Word document saved locally and auto-opened when done.
Try it — enter a company name
Generate a live AI-powered investor research memo on any public or private company
Powered by Claude AI · Kindly Limit Report Generation to 3
$0.04 – $0.08
~5,000–8,000 Claude API tokens per full run
Use Case
Built for investment professionals who need fast, structured intelligence on companies — without hours of manual research.
What It Does
Full investment memo including 4-quarter financial tables — revenue, gross profit, net income, EPS, and YoY growth — pulled directly from the company's investor relations page.
+ Sentiment Analysis Coming Soon
Historical earnings call transcripts analyzed for sentiment shifts, management tone, and forward guidance signals.
Comprehensive profile built from web signals — funding rounds, investor base, headcount growth, news coverage, competitive positioning, and any known ARR or revenue indicators from funding data. Financials step is skipped automatically.
How It Works — The 4-Step Pipeline
Agents are orchestrated in a specific order to maximize accuracy and efficiency.
Determines whether the company is publicly traded. This runs before everything else because its result controls what happens in Step 3.
The core of the system. All 9 agents run at the same time using Python's ThreadPoolExecutor, each doing independent research on a different dimension of the company.
Only runs if the company is public. Pulls financial data from the company's investor relations page using the ticker and IR URL from Step 1. Skipped entirely for private companies.
The Synthesizer agent merges all outputs into a structured 9-section investor memo — including competitive landscape and risks tables — then saves it as a .docx file and auto-opens it.
The Agents — What Each One Does
| Agent | Role |
|---|---|
| public_private | Determines if the company is publicly listed on any exchange globally (NYSE, NASDAQ, LSE, TSX, ASX, etc.) — returns ticker, exchange, market cap, and IR URL |
| overview | Company description, founding year, HQ, products/services, business model, and stage |
| market_sector | Primary sector, sub-sector, target customers, geography, market trends, and regulatory environment |
| tam_sam_som | Market size estimates — Total Addressable Market, Serviceable Addressable Market, Serviceable Obtainable Market |
| competitors | Direct and indirect competitors, competitive positioning |
| funding | All funding rounds (Crunchbase + web search), investors, total raised, last valuation |
| founders | Founding team profiles (LinkedIn scraper + web search) |
| employees | Current headcount, growth trend, and hiring signals |
| news | 5 most recent news items about the company (2025–2026 prioritized) |
| financials | Public companies only — last 4 quarters of revenue, gross profit, net income, EPS, YoY growth pulled from investor relations |
| synthesizer | Merges all agent JSON outputs into a structured 9-section investor memo via Claude — including competitive landscape table and risks table |
Tech Stack
Claude API
Powers every agent — each does web search → ask Claude → return structured JSON
DuckDuckGo
Free web search, no API key required
Playwright
Headless browser for LinkedIn scraping (with cookie caching after first login)
Crunchbase
Funding data via public pages + web search fallback
Google Docs API
Creates and saves the final .docx report
Caching
Each agent's output saved as JSON in outputs/<CompanyName>/; re-running reuses cached data unless --no-cache is passed
Output Structure
outputs/
<Company Name>/
public_private.json
overview.json
market_sector.json
tam_sam_som.json
competitors.json
funding.json
founders.json
employees.json
financials.json
news.json
Investment_Opportunity_<Company Name>_<Date>.docx