Investor Matchmaker is a Python script that schedules investor-founder meetings for Startup Week events. It uses greedy bipartite matching to pair investors with founders based on three criteria: investment type, business type, and sector.
The matching problem
A match requires alignment on at least one "Yes" in each of three categories:
- Investment Type — Angel, Pre-Seed, Seed, Series A, Series B
- Business Type — B2B, B2C, CPG, Enterprise
- Sector — AI, FinTech, Cybersecurity, etc.
Constraints
- 10 time slots, each 20 minutes with 5-minute breaks
- 20 concurrent pairings per slot
- No repeated investor-founder pairs across slots
- Every founder must meet at least one investor (if a valid match exists)
Algorithm
The script implements greedy bipartite matching for each slot:
- Read investor and founder data from Excel
- Identify all valid matches based on the three criteria
- For each time slot, greedily assign matches while respecting constraints
- Ensure fairness — founders with fewer matches get priority
- Write the schedule to
Schedule.xlsx
Known limitations
- Greedy matching — Not guaranteed optimal in complex scenarios. A constraint solver (Google OR-Tools) would guarantee coverage but adds complexity.
- Coverage gaps — Founders with limited category overlap might remain unmatched if high-demand pairs fill the slots first.
Usage
pip install pandas networkx openpyxl
python matchmaker_excel.pyInput: Company Data.xlsx and Investor Data.xlsx with Yes/No columns for each criterion.
Output: Schedule.xlsx with up to 20 pairings per time slot.
Source: github.com/Raleigh-Durham-Startup-Week/investor-matchmaker