An AI-powered job agent that scrapes product designer positions from 14 VC portfolio job boards, intelligently matches them against your resume and portfolio, and sends daily email digests with the best-fit opportunities in New York and San Francisco.
This agent runs daily to find product designer roles that actually fit your background. Rather than just keyword matching, it uses an LLM to deeply parse your resume and portfolio — extracting your technical skills, strengths, years of experience, the types of products you’ve built, the teams you’ve worked with, and the problems you’ve solved — then evaluates each job posting against those dimensions.
The result is a daily email with your top matches, each showing the match percentage, a brief company bio, funding stage, salary (when listed), and the specific words from the job posting that aligned with your profile.
Resume + Portfolio
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Profile Parser │────▶│ Job Scrapers │────▶│ Matcher │────▶│ Emailer │
│ (LLM-powered) │ │ (14 VC boards) │ │ (Claude/GPT) │ │ (Gmail/SG) │
└─────────────────┘ └──────────────────┘ └──────────────┘ └──────────────┘
│ │
Filters applied: Evaluates on:
• NYC / SF / Remote • Skills & strengths
• Posted < 30 days • Experience & products
• Team types
• Industry fit
• Results achieved
The agent uses an LLM to extract structured data from your resume and portfolio:
From your resume: technical skills, strengths, soft skills, years of experience, types of products worked on, team types, and interface/experience types designed.
From your portfolio: years of experience, product types, problems solved in case studies, design process and methods, team collaborations, visual skillset, and goals/motivations from your about section.
This structured profile is then used for richer, more accurate matching.
Scrapes design roles from 14 VC portfolio job boards in parallel:
a16z, Sequoia, General Catalyst, Index Ventures, Greylock, Kleiner Perkins, Accel, Contrary, Pear VC, Battery Ventures, NEA, Antler, LSVP, and Bessemer.
Jobs are filtered to only include positions located in New York, San Francisco / Bay Area, or Remote, and posted within the last 30 days. Salary and posting date are extracted when available.
Each job is evaluated against your profile on five dimensions:
Jobs scoring 60% or higher are included in the digest, sorted best-first.
Each job card in the daily email shows:
cd vc-job-agent
pip install -r requirements.txt
playwright install chromium
Copy .env.example to .env and fill in your credentials:
cp .env.example .env
Required:
ANTHROPIC_API_KEY — Anthropic Claude API key for profile parsing and job matchingGMAIL_USER + GMAIL_APP_PASSWORDSENDGRID_API_KEY + EMAIL_FROMEMAIL_TO — your email address for receiving digestsOptional:
PORTFOLIO_URL — your portfolio website URL (skipped if not set; enables richer matching)PORTFOLIO_SUBPAGES — comma-separated subpages to scrape, e.g. /about,/case-study-1,/case-study-2Place your resume PDF at data/resume.pdf.
python -m src.main
Dry run (skips sending email, prints results):
python -m src.main --dry-run
Verbose mode:
python -m src.main --dry-run -v
Custom match threshold:
python -m src.main --min-match 70
The agent runs automatically via GitHub Actions at 5:00 PM CST daily. You can also trigger it manually from the Actions tab.
Add these in your repository settings under Settings → Secrets → Actions:
| Secret | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic Claude API key for profile parsing and job matching |
GMAIL_USER + GMAIL_APP_PASSWORD |
Gmail credentials (or use SendGrid below) |
SENDGRID_API_KEY + EMAIL_FROM |
SendGrid credentials (alternative to Gmail) |
EMAIL_TO |
Your email address |
PORTFOLIO_URL |
(Optional) Your portfolio URL for richer matching |
PORTFOLIO_SUBPAGES |
(Optional) Comma-separated subpages, e.g. /about,/case-study-1 |
vc-job-agent/
├── src/
│ ├── main.py # Orchestrator — scrape → filter → match → email
│ ├── models.py # Data models (Job, MatchResult, CandidateProfile)
│ ├── resume_parser.py # Resume PDF + portfolio extraction with LLM
│ ├── matcher.py # AI matching engine (Anthropic Claude)
│ ├── emailer.py # Email digest sender (Gmail or SendGrid)
│ └── scrapers/
│ ├── base.py # Base scraper with location/date filters
│ ├── getro_base.py # Getro platform scraper (most VC boards)
│ ├── a16z.py # Individual VC scrapers...
│ └── ...
├── data/
│ └── resume.pdf # Your resume (gitignored — add your own)
├── .github/workflows/
│ └── daily-job-scan.yml # GitHub Actions automation
├── requirements.txt
└── .env.example
MIT