Team Extractor - Phase 2 Complete!
Added the Team Extractor, completing all Phase 2 extractors (5/5). The dataroom analyzer now extracts comprehensive structured data from investment datarooms.
Changelog - 2025-11-26 (#5)
Team Extractor - Phase 2 Complete!
Overview
Added the Team Extractor, completing all Phase 2 extractors (5/5). The dataroom analyzer now extracts comprehensive structured data from investment datarooms.
New Feature: Team Extractor
Purpose
Extract founder profiles, leadership team, headcount, advisors, and board members from pitch decks and team documents.
Implementation
Created src/agents/dataroom/extractors/team_extractor.py (~550 lines):
def extract_team_data(
documents: List[Dict[str, Any]],
use_llm: bool = True
) -> Optional[TeamData]:
"""Extract team data from classified documents."""
def extract_from_pdf(file_path: Path, doc_type: str, use_llm: bool = True) -> Optional[Dict[str, Any]]:
"""Extract team data from a PDF document."""
def extract_from_spreadsheet(file_path: Path, use_llm: bool = True) -> Optional[Dict[str, Any]]:
"""Extract team data from a spreadsheet (CSV/Excel)."""
def extract_from_text(file_path: Path, use_llm: bool = True) -> Optional[Dict[str, Any]]:
"""Extract team data from a text file."""Extraction Approach
Three-stage extraction:
Rule-based parsing - Regex patterns for name/title combinations, headcount, LinkedIn URLs
Table extraction - pdfplumber for org charts and team tables
LLM enhancement - Claude Sonnet for detailed background extraction
Data extracted:
Founders (name, title, LinkedIn, previous companies, roles, education, achievements, expertise, years experience)
Leadership team (same structure as founders)
Total headcount
Headcount by department
Advisors
Board members
Testing Results (Hydden Dataroom)
| Field | Value |
| Founders | 2 (Jai Dargan - CEO, Paul Harper - CTO) |
| Leadership | 4 (COO, CCO, Founding Engineer, Principal Architect) |
| Total Headcount | 17 |
| Locations | USA, UK, India (offices: NYC, DC, Austin) |
| Domain Expertise | Identity and Access Management, Enterprise Security |
| Notable Achievement | Built and scaled unicorn IAM companies |
Phase 2 Complete - All Extractors
The dataroom analyzer now outputs 6 numbered artifact files:
output/Company-v0.0.1/
├── 0-dataroom-inventory.json/md # Document inventory & classification
├── 1-competitive-analysis.json/md # Competitive landscape (battlecards)
├── 2-cap-table.json/md # Ownership structure
├── 3-financial-analysis.json/md # Financial projections
├── 4-traction-analysis.json/md # Customers & traction metrics
└── 5-team-analysis.json/md # Team & leadership profilesExtractor Summary
| Extractor | Documents | Key Outputs |
| Competitive | battlecards, competitive docs | Competitors, threat levels, differentiators, SWOT |
| Cap Table | cap table PDFs/spreadsheets | Shareholders, ownership %, option pool, SAFEs |
| Financial | CSV/Excel financial models | ARR, revenue, projections, burn rate, runway |
| Traction | pitch decks, customer lists | Customer count, ARR, retention, pipeline, partnerships |
| Team | pitch decks, team bios | Founders, leadership, headcount, advisors, board |
New Report Formatter
Added format_team_report() to analyzer.py:
Founder profiles with backgrounds, education, achievements
Leadership team table
Organization headcount by department
Advisors and board members
Extraction notes
Integration Updates
_run_extractors() Updated
Now calls team extractor for document types:
team_biospitch_deck
_extract_key_facts() Updated
Now extracts team facts:
Founder count and names
Notable prior companies
Leadership count
Total headcount
Advisor count
Board size
Bug Fix
Fixed format_team_report() crash when headcount_by_department contains None values - now filters out invalid entries before sorting.
Files Changed Summary
New Files (1)
| File | Size | Purpose |
src/agents/dataroom/extractors/team_extractor.py | ~550 lines | PDF/text team parsing |
Modified Files (2)
| File | Changes | Purpose |
src/agents/dataroom/extractors/__init__.py | +2 lines | Export team extractor |
src/agents/dataroom/analyzer.py | +200 lines | Integration, formatter, key facts |
Phase 2 Complete
All Extractors Done
Competitive Extractor - Battlecard synthesis
Cap Table Extractor - Ownership structure
Financial Extractor - Projections & metrics
Traction Extractor - Customers & revenue
Team Extractor - Founders & leadership
Next: Phase 3 - Data Synthesis & Memo Integration
Cross-reference data between extractors
Identify conflicts and data gaps
Generate memo section drafts from extracted data
Integrate with main investment memo orchestrator
Full Hydden Test Results
Complete analysis in 282.6 seconds:
| Artifact | Key Findings |
| Inventory | 20 documents classified |
| Competitive | 8 competitors identified |
| Cap Table | 5 shareholders, 54.8% founder ownership, $4.15M raised |
| Financial | $60K (Jun 2025) → $62.6M (Dec 2029) ARR projections |
| Traction | $3M ARR, 3 enterprise customers, 2 tech partnerships |
| Team | 2 founders (CEO, CTO), 4 leaders, 17 FTE |
Usage
# Activate virtual environment
source .venv/bin/activate
# Run dataroom analyzer
python -m src.agents.dataroom.analyzer "data/Secure-Inputs/Hydden Dataroom" "Hydden"
# Output:
# 📁 Scanning dataroom...
# Found 20 documents
# 🏷️ Classifying documents...
# Classified 20 documents
# 🔍 Extracting competitive data from 9 documents...
# ✓ Found 8 competitors
# 📊 Extracting cap table data from 1 documents...
# ✓ Found 5 shareholders
# 💰 Extracting financial data from 1 documents...
# ✓ Found financial projections
# 📈 Extracting traction data from 2 documents...
# ✓ Found: $3,000,000 ARR, $2,026 pipeline
# 👥 Extracting team data from 2 documents...
# ✓ Found: 2 founders, 4 leaders, 17 total headcount
# ✓ Analysis complete in 282.6sContributors
Implementation by Claude Code (Anthropic) with user guidance.