- 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.
- 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.
- Python 3.10+
- Install dependencies:
pip install -r requirements.txt
playwright install chromiumResume_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
- 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 formemail: Sends emails only to the contacts listed incompanies.csv.form: Submits forms on websites specified incompanies.csvonly.both: Executes both email sending and form submission for each company.
-
config/config.yamlcontains:- Paths to CV, cover letter, and attachments.
- SMTP settings (host, port, username, app password).
- Email templates and form selectors.
-
companies.csvcontains the target companies and optional intro notes.
- Stored in
logs/applications_log.csv. - Automatically records timestamp, company, channel (email/form), target, status, and details.
- 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.