A simple automation tool built with Node.js that reads recruiter data from a CSV file and sends personalized internship application emails with your resume attached.
- 📄 Read recruiter data from CSV file
- 📧 Send personalized emails using Nodemailer
- ⏱️ Built-in delay to avoid spam detection
- 📎 Resume attachment support
- 🔐 Secure credentials using
.env - ⚡ Lightweight and beginner-friendly
- Node.js
- Express.js
- Nodemailer
- CSV Parser (
csv-parser)
project-root/
│
├── recruiters.csv # Input data (Name, Company, Email)
├── rohit_resume.pdf # Resume file
├── server.js # Main server file
├── .env # Environment variables
├── package.json
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name
npm install
Create a .env file in root:
EMAIL=your_email@gmail.com
PASS=your_app_password
👉 Use Gmail App Password (not your real password)
Create recruiters.csv:
Name,Company,Email
Test User,DemoTech,your_email@gmail.com
Place your resume file:
your_name.pdf
node server.js
- Reads CSV file using stream
- Converts each row into an object
- Sends email using Nodemailer
- Waits (delay) before sending next email
- Do NOT send too many emails at once
- Recommended: 10–20 emails/day
- Always test using your own email first
- Gmail requires App Password
- Add React dashboard
- Email tracking (open/click)
- Auto follow-up emails
- AI-generated personalized emails
- Job scraping integration
Pull requests are welcome. Feel free to improve this project.
If you found this useful, give it a ⭐ on GitHub!
Rohit Rajput Full Stack Developer (MERN)