Skip to content

kirillsst/CVMailer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto-Apply to Internships/Stages

What this project does

  • Sends tailored emails with your CV and cover letter to contacts listed in a CSV.
  • Optionally auto-fills common web application forms using Playwright (Chromium).
  • Keeps an application log (CSV) with status, timestamp, and any error messages.
  • Allows you to personalize a short intro paragraph per company (from the CSV) that is merged into the email/body text.

IMPORTANT

  • Use responsibly: respect site Terms of Service and anti-bot rules.
  • Many sites use unique form fields; the included form-filler covers common patterns but may not match every site. Extend selectors per target site if needed.
  • For email sending, use an SMTP account with an app password (Gmail/Outlook/Yahoo). Avoid sending too many emails at once.

Requirements

  • Python 3.10+
  • Install dependencies:
pip install -r requirements.txt
playwright install chromium

Project Structure

Resume_AutoApply/
│
├─ docs/                       # Your CV, cover letter, and any additional attachments
├─ companies/                   # Your list of companies
├─ scripts/                     # Python scripts (modularized)
│   ├─ __main__.py              # Main entry point (run this file)
│   ├─ config_loader.py         # Load and initialize config.yaml
│   ├─ companies.py             # Read and process companies.csv
│   ├─ email_utils.py           # Build and send emails
│   ├─ processor.py             # Core logic for processing each company: sends emails, fills forms, logs results
│   ├─ forms.py                 # Fill web forms via Playwright
│   ├─ logger.py                # Append to application log CSV
│   └─ utils.py                 # Helper functions (delays, etc.)
├─ config/                     # Configuration files
│   └─ config.yaml              # Set paths, email credentials, and settings
├─ logs/                       # Stores application logs
├─ companies.csv               # List of target companies
├─ README.md                   # Project instructions
└─ requirements.txt            # Python dependencies

Usage

  • Dry run (no emails sent, no forms submitted):
python -m scripts --dry-run
  • Actual sending and/or form submission:
python -m scripts --mode both
  • Only email mode:
python -m scripts --mode email
  • Only form mode:
python -m scripts --mode form

Mode explanation

  • email: Sends emails only to the contacts listed in companies.csv.
  • form: Submits forms on websites specified in companies.csv only.
  • both: Executes both email sending and form submission for each company.

Configuration

  • config/config.yaml contains:

    • Paths to CV, cover letter, and attachments.
    • SMTP settings (host, port, username, app password).
    • Email templates and form selectors.
  • companies.csv contains the target companies and optional intro notes.

Logs

  • Stored in logs/applications_log.csv.
  • Automatically records timestamp, company, channel (email/form), target, status, and details.

Notes

  • Use an app password for your email provider (required for Gmail/Outlook 2FA). Instructions: https://support.google.com/accounts/answer/185833?hl=en
  • Customize email body and form message templates in config.yaml.
  • Keep configs and logs outside version control if they contain sensitive data.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages