Bulk Applicant Dispatcher
A Privacy-First MERN Stack Application for Structured Job Applications
Applying to jobs as a fresher can feel repetitive, overwhelming, and unstructured.
You find dozens of openings.
You copy-paste emails.
You attach resumes repeatedly.
You try to track who you’ve contacted.
You worry about accidentally emailing the same recruiter twice.
After experiencing this chaos myself, I decided to build something structured.
Introducing Bulk Applicant Dispatcher — a locally hosted MERN stack application designed to help job seekers send multiple applications efficiently, professionally, and safely.
This is not a marketing spam tool.
This is a structured, privacy-first job application system.
The Problem
Most job seekers:
- Send applications manually
- Struggle to track recruiter responses
- Risk duplicate emailing
- Use third-party tools that store sensitive data externally
Existing bulk email tools are usually:
- Designed for marketing campaigns
- Cloud-based
- Not privacy-focused
- Lacking cooldown safeguards
I wanted a system that:
- Runs entirely on localhost
- Uses my own Gmail securely
- Enforces responsible email scheduling
- Keeps all personal data under my control
Core Philosophy: Privacy First
Bulk Applicant Dispatcher runs 100% locally.
- No external server
- No cloud database
- No third-party email relay
- No external storage of resumes or contacts
Everything — templates, company lists, history logs — is stored in a local MongoDB instance.
Your data never leaves your machine.
Key Features
Smart Cooldown Mechanism (15 Days)
This is the most important feature.
The system:
- Tracks every dispatched email
- Stores recipient email + timestamp
- Prevents sending duplicate applications within 15 days
- Allows a Force Send override when necessary
Cooldown Logic Example
if (lastEmailDate && daysSinceLastEmail < 15 && !forceSend) {
skipEmail();
} else {
sendEmail();
}
This ensures:
- Professional outreach
- Reduced spam risk
- Safer Gmail usage
- Controlled automation
Editable Plain-Text Templates
Instead of copying from Word documents:
- Write professional cover letters directly in the app
- Save multiple template variations
- Easily switch between them
- Use structured profile data for personalization
The app reads user details from a local profile.json file:
{
"name": "Your Full Name",
"my_place": "Your City, Country",
"phone_no": "+91 1234567890",
"my_email": "*Emails are not allowed*"
}
Templates dynamically populate this data during dispatch.
No HTML required. Just clean, readable English.
Managing contacts in spreadsheets becomes messy quickly.
This system allows:
- Manual company entry via UI
- Bulk import using JSON
- Easy editing and deletion
- Structured storage inside MongoDB
As companies are added, a companies.json file is automatically generated inside the server directory.
Dashboard & Application Tracking
The dashboard transforms job hunting into a measurable workflow.
It provides:
- Total applications sent
- Pending contacts
- Total companies added
- Full application history
- Timestamped logs
Now your job search becomes structured instead of chaotic.
Force Sending Override
Sometimes urgency matters.
The app allows:
- Force sending to a specific recruiter
- Force sending an entire batch
- Bypassing cooldown when required
Automation — with control.
Technology Stack
Frontend
Backend
Handles:
- Email dispatch logic
- Cooldown validation
- API routing
- Template processing
- Frontend-backend communication
Email Service — Nodemailer
- Gmail SMTP connection
- Secure authentication via App Password
- Resume attachment
- Bulk email dispatch
Uses Google App Password authentication (not your regular Gmail password).
Database — MongoDB & Mongoose
Local database storing:
- Contact list
- Templates
- Email history
- Cooldown metadata
- Dispatch logs
MongoDB provides flexible, structured storage for scalable tracking.
⚙ Environment Configuration
Inside server/.env:
EMAIL_USER=*Emails are not allowed*
EMAIL_PASS=your_gmail_app_password
MONGO_URI=mongodb://localhost:27017/bulk_email_sender
PORT=3000
resumePath=your_resume_name.pdf
Important: Gmail App Password Setup
You must generate an App Password:
- Go to Google Account → Security
- Enable 2-Step Verification
- Generate App Password
- Paste the 16-character key into
.env
⚠ Never use your actual Gmail password.
Usage Flow
- Add contacts manually or import JSON
- Edit or create email templates
- Place your resume inside
server/resumes/
- Click Start Run
- System checks cooldown
- Eligible contacts receive emails
- History updates automatically
Everything runs locally.
What This Project Demonstrates
This project goes beyond CRUD operations.
It demonstrates:
- SMTP automation
- Cooldown / rate-limiting logic
- Secure environment configuration
- Structured MERN architecture
- Privacy-first system design
- Real-world application tracking
- Responsible automation practices
Responsible Usage Notice
This tool is strictly for ethical, professional job applications.
It is not intended for spam, unsolicited marketing, or misuse.
The cooldown system exists to promote respectful communication and protect both users and recruiters.
About the Author
Adithyan G
Portfolio:
https://adithyan-phi.vercel.app/