Automate finding your YC cofounder. Uses AI to evaluate candidates and generate personalized messages, with a human-in-the-loop review system so you stay in control.
1. Install:
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
playwright install firefox # More stable on macOS
# Or: playwright install chromium2. Configure:
cp .env.example .env
# Add your Gemini API key: https://aistudio.google.com/app/apikey3. Customize prompts (
cp prompts/evaluation.example.txt prompts/evaluation.txt
cp prompts/invitation.example.txt prompts/invitation.txtThen edit these files to match YOUR preferences:
prompts/evaluation.txt- Define what makes a good cofounder match for YOU (your location, what you bring, what you're looking for)prompts/invitation.txt- Your message template (uses{first_name}and{bio}placeholders)
4. Authenticate once:
python main.py --auth
# Browser window opens → Log into YC account → Press Enter in terminal → Done5. Start matching:
python main.py --interactive --max-invites 5Interactive mode (recommended):
- For each candidate: See their score, reasoning, and generated message
- Press
Yto send,Nto skip,Eto edit,Qto quit - Take your time - no timeout on decisions
- Color-coded scores: Green ≥7, Yellow 5-6, Red <5
Other modes:
python main.py --dry-run # Test without sending
python main.py --auto # Fully automated (risky!)| Flag | What it does |
|---|---|
--max-invites N |
Limit per run (default: 10) |
--headless true |
Hide browser window (default: visible) |
--evaluation-threshold N |
Min score to send (default: 5) |
Everything logged to logs/invitations.csv:
timestamp,candidate_id,name,score,reasoning,action,message_preview,mode
2024-01-15 12:35:08,alice-smith,Alice Smith,8,"Strong match",sent,"Hi Alice...",interactiveCost: ~$0.01-0.02 per 100 candidates (Gemini Flash is cheap)
"Session expired" → python main.py --auth
"No candidates found" → YC changed their page structure. Update selectors in:
browser.py→FeedNavigator.get_candidate_cards()content_parser.py→ProfileParsermethodsmain.py→CofounderMatcher._send_invitation()
Use Chrome DevTools to inspect elements and find new selectors.
Rate limited → Reduce MAX_INVITES_PER_RUN in .env, increase delays
- Start with
--max-invites 5to test - Run max once per day
- Use edit mode (
E) for high-value candidates - If scores seem off, refine
prompts/evaluation.txt - Stop immediately if YC flags your account
- Opens profiles in new tabs (mimics real browsing)
- Random delays (3-8s) between actions
- Gemini evaluates each candidate (1-10 score)
- Generates personalized messages using their profile
- Retries API calls 3x with exponential backoff
- Stops after 5 consecutive errors
MIT - Educational purposes only. Not responsible for account bans. Use at your own risk.
