"I got mass-rejected from 47 applications before I realized my resume was basically invisible to ATS systems."
Sarathi (सारथी — Sanskrit for "charioteer/guide") is a personal toolkit I built during my final semester job hunt. It automates the soul-crushing parts of applying for jobs — tailoring resumes to match job descriptions, tracking where I've applied, and prepping for interviews with actual useful intel instead of generic "tell me about yourself" advice.
This isn't a polished SaaS product. It's a grad student's survival tool that actually works.
Paste a job description, point it at your master resume, and Sarathi will:
- Run an ATS keyword gap analysis (what skills you're missing, what to emphasize)
- Rewrite your bullet points in Google's XYZ format ("Accomplished X as measured by Y, by doing Z")
- Reorder your skills section to match what the JD prioritizes
- Generate a tailored summary paragraph
- Give you a match score so you know if it's even worth applying
Because spreadsheets get messy after 20+ applications:
- Track company, role, status, match score, and which resume version you sent
- See your pipeline at a glance (how many in HR screen vs. technical vs. ghosted)
- Spot patterns in rejections (turns out I kept getting filtered for not mentioning "CI/CD")
When you actually land an interview, Sarathi generates a study guide:
- Company background, tech stack, recent news
- Round-by-round breakdown of their interview process
- Tailored STAR stories mapped to their values
- Smart questions to ask the interviewer
- Common pitfalls specific to that company
The fully-automated job hunting agent:
- Multi-platform scraping — LinkedIn, Naukri, Indeed (Playwright) plus RemoteOK & WeWorkRemotely feeds
- Company intel — webscrapes each company's website for mission, products, and tech stack
- HR contact discovery — finds recruiter emails, LinkedIn profiles, and WhatsApp numbers
- Fully personalized applications — LLM-generated cover letter, cold email, and WhatsApp message tailored to the company + job description + your resume
- Cold outreach — sends personalized emails (SMTP) and WhatsApp messages (Twilio or wa.me deep link)
- Daily report — end-of-day Markdown report of every job applied to and every response received, emailed to you automatically
- Python 3.9+
- A Google Gemini API key (get one free here)
# clone the repo
git clone https://github.com/Error1904/Sarathi.git
cd Sarathi
# set up virtual environment
python -m venv venv
source venv/bin/activate # on Windows: venv\Scripts\activate
# install dependencies
pip install -r requirements.txt
# configure your API key
cp .env.example .env
# edit .env and add your GEMINI_API_KEY# tailor your resume for a specific job
python -m sarathi tailor --jd path/to/job_description.txt
# add a new application to the tracker
python -m sarathi track add --company "Google" --role "SWE Intern" --status applied
# check your application pipeline
python -m sarathi track status
# generate an interview prep dossier
python -m sarathi prep --company "Google" --role "SWE Intern"
# launch the web dashboard
python -m sarathi web
# --- Sarathi-Auto: multi-platform auto-apply + cold outreach ---
# check which platform sessions are logged in
python -m sarathi auto connect
# log into a platform once (session persists for future runs)
python -m sarathi auto login --platform linkedin
# scan jobs, personalize applications, and send cold outreach
python -m sarathi auto scout --query "Software Engineer" --location "Remote"
# send personalized emails / WhatsApp messages to HR for queued apps
python -m sarathi auto outreach
# generate today's daily report (jobs applied + responses), emailed to you
python -m sarathi auto report
# run the autonomous daemon (continuous scan + daily report)
python -m sarathi auto daemon --query "Python Developer" --interval 60Create your master resume in data/master_resume.json. This should be your complete, unfiltered resume — every skill, every project, every bullet point. Sarathi pulls from this to create tailored versions.
Check out the example in data/master_resume.json for the expected format.
To use the Sarathi-Auto multi-platform + outreach features, configure the following in .env:
# 1. Email outreach (SMTP) — used to send personalized cold emails to HR
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=you@gmail.com
SMTP_PASSWORD=your_app_password
OUTREACH_FROM_EMAIL=you@gmail.com
# 2. WhatsApp outreach — via Twilio API (optional)
# Without these, Sarathi logs wa.me deep links you can click manually.
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_WHATSAPP_FROM=whatsapp:+14155238886
# 3. Daily report recipient (if different from SMTP user)
NOTIFICATION_EMAIL=you@gmail.com
# 4. Auto-apply safety limits
ENABLE_AUTO_APPLY=false # set true only when ready for unattended apply
AUTO_APPLY_LIMIT=20
AUTO_OUTREACH_LIMIT=10Platform automation (LinkedIn / Naukri / Indeed) uses Playwright with a persistent
browser session. Run python -m sarathi auto login --platform <name> once to log in,
then the session is reused for future automated runs.
sarathi/
├── ai/ # LLM client & prompt templates
├── engine/ # Core logic (ATS analysis, tailoring, tracking, personalizer, daily report)
├── exporters/ # Markdown & PDF output
├── models/ # Data models & database (incl. outreach_logs, hr_contacts)
├── automation/ # Scrapers, platform drivers, company intel, outreach senders
└── web/ # Flask dashboard
- Python 3.9+ — because it's what I know best
- Google Gemini API — free tier is generous enough for a job hunt
- SQLite — no server setup, just a local file
- Flask — lightweight dashboard for visual people
- Click — for the CLI interface
- Rich — because terminal output should look good too
- ATS keyword gap analysis
- Resume tailoring with XYZ format bullets
- Application tracking (SQLite)
- CLI interface
- Markdown & PDF export
- Interview prep dossier generator
- Web dashboard with analytics & metrics
- Email notification integration
- LinkedIn job scraping & Easy Apply automation (Playwright)
- Multi-platform auto-apply (LinkedIn, Naukri, Indeed) with personalized applications
- HR contact discovery + cold outreach (email & WhatsApp)
- Daily activity report (jobs applied + responses) via email
In the Mahabharata, Lord Krishna served as Arjuna's sarathi (charioteer) — not fighting the battle himself, but guiding the warrior through it. That's what this tool does. It doesn't apply for jobs for you, but it makes sure you show up prepared.
Also I needed a name that wasn't taken on PyPI.
This started as a personal project but I'd love help making it better. Check out CONTRIBUTING.md if you want to pitch in.
MIT — do whatever you want with it. If it helps you land a job, that's all the credit I need.
Built with mass-rejection-fueled determination by a CS grad who figured there had to be a better way.