How harsha2809/ai-powered-bulk-mailer works
This is a bulk-email/job-inquiry automation tool. Its main workflow extracts addresses from a PDF into a CSV, then sends recipients in batches through SMTP and records outcomes. A separate sender generates personalized message text with a Gemini-backed model. The README also describes HTML mail and resume attachments, but the checked-in tree does not show an HTML sending or attachment path; the template is present without demonstrated runtime wiring. The standalone FastAPI health endpoint is separate. Relationships below follow the sampled code or README; unsampled feature wiring is not inferred.
Main entry points: send_next_batch.py Resumable batch sender · send_smtp.py AI-enabled sender · extract_emails.py Recipient CSV · ai_email_generator.py Email generator
Components 13
Recipient ingestion
- PDF extraction
extract_emails.py - Recipient CSV
extract_emails.py
Email delivery
- Resumable batch sender
send_next_batch.py - AI-enabled sender
send_smtp.py - Gmail SMTP
- Results log
send_next_batch.py - Failures log
send_next_batch.py
Message content
- Email generator
ai_email_generator.py - Gemini model
- HTML template
email_template.html
Service status
- Health endpoint
main.py
Other components
- Operator
- HTTP client
Connections 15
- Operator → PDF extraction: runs extraction
README.md - PDF extraction → Recipient CSV: writes addresses
extract_emails.py - Operator → Resumable batch sender: runs batch
README.md - Resumable batch sender → Recipient CSV: reads and trims
send_next_batch.py - Resumable batch sender → Gmail SMTP: sends via
send_next_batch.py - Resumable batch sender → Recipient CSV: writes remainder
send_next_batch.py - Resumable batch sender → Results log: appends outcomes
send_next_batch.py - Resumable batch sender → Failures log: logs failures
send_next_batch.py - Operator → AI-enabled sender: runs sender
README.md - AI-enabled sender → Recipient CSV: reads recipients
send_smtp.py - AI-enabled sender → Email generator: requests content
send_smtp.py - AI-enabled sender → Gmail SMTP: sends via
send_smtp.py - AI-enabled sender → Results log: logs outcomes
send_smtp.py - Email generator → Gemini model: invokes model
ai_email_generator.py - HTTP client → Health endpoint: requests status