DEV Community

Cover image for Bulk Applicant Dispatcher — A Privacy-First MERN Stack Application for Smart Job Hunting
Adithyan G
Adithyan G

Posted on

Bulk Applicant Dispatcher — A Privacy-First MERN Stack Application for Smart Job Hunting

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.

To solve this, I built 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.

It 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)

One of the most important features.

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();
}
Enter fullscreen mode Exit fullscreen mode

This ensures:

  • Professional outreach
  • Reduced spam risk
  • Safer Gmail usage
  • Controlled automation

Editable Plain-Text Templates

Instead of copying and pasting 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": "your_email_id@gmail.com"
}
Enter fullscreen mode Exit fullscreen mode

Templates dynamically populate this data during dispatch.

No HTML required. Just clean, readable English.

Built-In Contact Manager

Managing contacts through 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 provides structured visibility into your job hunt:

  • Total applications sent
  • Pending contacts
  • Total companies added
  • Full application history
  • Timestamped logs

This turns job hunting into a measurable workflow instead of chaos.

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

  • React (v19)
  • Vite ### Backend
  • Node.js & Express.js

    • Email dispatch logic
    • Cooldown validation
    • API routing
    • Template processing
    • Communication between frontend and backend
  • Nodemailer

    • Gmail SMTP connection
    • Secure authentication via App Password
    • Resume attachment
    • Bulk email dispatching

Uses Google App Password authentication (not your regular Gmail password).

MongoDB & Mongoose

Local database storing:

  • Contact list

  • Templates

  • Email history

  • Cooldown metadata

  • Dispatch logs

Using MongoDB provides flexible and structured storage for scalable tracking.
Environment Configuration

Inside server/.env:

EMAIL_USER=your_real_email_id@gmail.com
EMAIL_PASS=your_gmail_app_password
MONGO_URI=mongodb://localhost:27017/bulk_email_sender
PORT=3000
resumePath=your_resume_name.pdf
Enter fullscreen mode Exit fullscreen mode

Important: Gmail App Password

You must generate an App Password:

  1. Go to Google Account → Security

  2. Enable 2-Step Verification

  3. Generate App Password

  4. 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.

  • Ensure resume is placed 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 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.

Written by Adithyan G

Portfolio: https://adithyan-phi.vercel.app/

Top comments (0)