Skip to content

kimlj/sendit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SendIt

A job-search autopilot: a Chrome side-panel extension backed by a FastAPI + Supabase stack that discovers job postings across ~17 job boards, matches them against your resume with embeddings, drafts personalized outreach with an LLM, and sends applications through your own Gmail — with a human review queue in the loop.

Architecture

extension/   Chrome side-panel UI (React + Vite + Tailwind)
backend/     FastAPI service (Python) — scrapers, LLM pipeline, Gmail send
supabase/    Postgres schema + migrations (jobs, leads, campaigns, settings)
n8n/         Standalone Upwork RSS monitor workflow (scheduled, email alerts)

Backend highlights

  • Scrapers for RemoteOK, Remotive, WeWorkRemotely, Wellfound, YC Work at a Startup, Hacker News (Who's Hiring), Himalayas, Jobicy, OnlineJobs.ph, Product Hunt, Upwork, and more — with a shared base class and rate limiter.
  • LLM pipeline (OpenAI) — job/resume matching, scoring angles, personalized cover letters and email drafts, structured output via pydantic schemas.
  • Email discovery + verification — finds and validates contact addresses before sending.
  • Gmail OAuth sending — mail goes out from the user's own account; nothing is sent without passing the review queue unless autopilot is explicitly enabled.
  • Autopilot & monitors — scheduled searches that surface new matches continuously.

Extension highlights

  • Side-panel app with tabs for exploring jobs, managing leads, campaigns, autopilot, and settings.
  • Resume upload, per-job email draft editing, outreach timeline, and XLSX export.

Running locally

Backend

cd backend
cp .env.example .env   # fill in Supabase + OpenAI credentials
pip install -r requirements.txt
uvicorn app.main:app --reload

Extension

cd extension
npm install
npm run build   # load extension/dist as an unpacked extension in Chrome

Database — apply the migrations in supabase/migrations/ to a Supabase project.

Responsible use

SendIt is built for personal job applications — applying to publicly posted openings with individually reviewed, personalized messages. Respect each job board's terms of service and applicable email regulations (CAN-SPAM, GDPR) if you adapt it for anything beyond that.

Notes

Personal project by @kimlj. Some rough edges remain — issues and PRs welcome.

About

Job-search autopilot: Chrome extension + FastAPI + Supabase — scrapes 17 job boards, matches your resume, drafts and sends personalized applications via Gmail

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages