Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job Application Mailer

A small toolkit for running a personal job-application campaign: fetch job postings, render a tailored HTML email + PDF CV per application, send through SMTP, and track follow-ups — with a test-mode safety switch so nothing goes to a real company until you're ready.

Components

  • fetch.py — fetches a URL and prints cleaned visible text (for reading job ads) or all links on the page (--links), without needing a browser or an LLM round-trip.
  • render_pdf.py — renders an HTML file to PDF (weasyprint), used to generate a per-application CV/cover-letter PDF.
  • send_mail.py — the sender. Supports two modes:
    • Legacy recipients mode: one shared template + a recipients.csv list (simple newsletter-style send).
    • Applications mode: reads applications.csv (one row per job application: slug, company, position, subject, real_email), and for each sends data/applications/<slug>/email.html with data/applications/<slug>/cv.pdf attached if present.
    • send_mail.py followup — sends followup.html for any application whose initial send is older than FOLLOWUP_DAYS and hasn't had a follow-up yet.
    • send_mail.py report — emails a tracking summary (sent/pending/follow-up status per application) to your own inbox.

Safety: TEST_MODE

While TEST_MODE=true (the default), every send is redirected to TEST_RECIPIENTS instead of the real target address, so you can review exactly what a company would receive before turning test mode off. main() refuses to start if test mode is on but TEST_RECIPIENTS is empty.

Setup

pip install -r requirements.txt
cp .env.example .env   # fill in SMTP credentials, keep TEST_MODE=true at first

All runtime data — recipients, applications, sent/CV files, logs — lives under data/, which is gitignored; only the code is version-controlled.

Docker

docker build -t job-mailer .
docker run --env-file .env -v "$(pwd)/data:/app/data" job-mailer

Responsible use

This automates outbound email to real companies. Keep TEST_MODE=true until you've verified the rendered output, respect the target site's terms of service when fetching job postings, and don't use it for unsolicited bulk email to anyone who hasn't invited an application.

License

MIT.

About

Job-application automation: fetch postings, render tailored CV/cover-letter PDFs, send via SMTP with a test-mode safety switch and follow-up tracking

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages