This project lets you quickly send personalized cold emails to recruiters using a Chrome extension and a Node.js backend with Gemini AI integration. The extension collects job details, and the backend generates a professional mail using your details, skills, and the job description, then sends it with your resume attached.
recruiter-mail/
│
├── extension/ # Chrome extension source
│ ├── manifest.json
│ ├── popup.html
│ └── popup.js
│
├── server/ # Node.js backend
│ ├── index.js # Express server, NodeMailer, Gemini AI integration
│ ├── package.json
│ ├── .env # Your secrets (not committed)
│ ├── .env.example # Example env file
│ └── README-gemini.txt
│
├── resume/ # Place your resume here
│ └── Zayed_Resume.pdf # (or your own resume.pdf)
│
└── README.md # (this file)
git clone <your-repo-url>
cd recruiter-mail
- Create a folder named
resumein the project root (already present if you used the provided structure). - Place your resume PDF inside this folder. By default, the backend expects the file to be named
Zayed_Resume.pdf. You can change the filename inserver/index.jsif needed.
- Copy
server/.env.exampletoserver/.env:
cp server/.env.example server/.env
- Edit
server/.envand fill in:EMAIL_USER— your Gmail addressEMAIL_PASS— your Gmail app password (not your main password)SENDER_NAME— your nameSENDER_PHONE— your phone numberGEMINI_API_KEY— your Gemini API key (see README-gemini.txt)LINKEDIN_URL— your LinkedIn profile URL (e.g., https://www.linkedin.com/in/your-linkedin-profile)GITHUB_URL— your GitHub profile URL (e.g., https://github.com/your-github-profile)
cd server
npm install
npm start
The server will run on http://localhost:3000.
- Open Chrome and go to
chrome://extensions. - Enable "Developer mode" (top right).
- Click "Load unpacked" and select the
extensionfolder. - The extension icon will appear in your Chrome toolbar.
- Click the extension icon to open the form.
- Fill in Company Name, HR Email, Job Role, and paste the Job Description.
- Click "Send". The backend will generate a cold mail using Gemini AI and send it to the recruiter with your resume attached.
- Your credentials and API keys are kept in
.envand should never be committed to version control. - If the AI service fails, the backend will use a default example mail template.
- You can customize the skills array and mail template in
server/index.js.
For Gemini API setup, see server/README-gemini.txt.