The problem
To doWrite the real story in one short paragraph: why you built this for yourself and a friend.
What it does
- Finds jobs. Scrapes Indeed with Playwright.
- Ranks them. Claude scores each listing against the resume.
- Writes cover letters. Generates a tailored PDF cover letter for each application.
- Tracks everything. Every application is stored in Supabase behind a React dashboard.
One idea worth calling out: the cover letters openly disclose that AI helped write them. The tool itself becomes a demonstration of the skills being applied for.
How it works
- 1Indeed listingsPlaywright
- 2Fit scoreClaude vs. resume
- 3Cover letter PDF
- 4TrackerSupabase + React
A FastAPI backend runs the scrape, scoring and letter-writing steps and writes the results to Supabase, which the React dashboard reads.
To doRe-enable row level security on all four tables with proper policies before describing per-user isolation here.
What was hard and how I solved it
To doDescribe the hardest problem and how you solved it.
Results
To doPull real counts from Supabase (job_listings, applications, scrape_sessions).
To doAdd at least basic tests, and a dashboard screenshot with dummy data only.
Stack
- Python
- Playwright
- FastAPI
- Claude API
- Supabase
- React
Links
To doGitHub link. Add .gitignore first. Never commit config files, API keys, or the friend's resume.To doDemo video