JobPing is a Chrome extension and backend that detects job postings on any website and saves them instantly with smart autofill, notifications, and an application-tracking dashboard.
- Universal job posting detection using structured data parsing (schema.org JSON-LD) and DOM heuristics — works across job boards and company career pages.
- Quick-save workflow with smart auto-filled fields and dropdowns so users can save jobs with minimal typing.
- Application tracker with a Kanban-style dashboard to manage application stages and progress.
- Instant email notifications on save.
- Optional follow-up reminders for saved applications.
Planned: SMS and WhatsApp notifications via Twilio (feature gated until credentials are provided).
- Chrome Extension (Manifest V3) built with Vite
- Frontend: Vanilla JavaScript + Tailwind CSS (extension popup and content scripts)
- Backend: Node.js + Express
- Database: MongoDB
- Email: Nodemailer (SMTP)
- Hosting: Render
.
├── backend/ # Express API, models, services (email/twilio), cron jobs
├── extension/ # Chrome extension source (Vite), public assets, built output at extension/dist
└── README.md
backend/contains the API server, data models (User,Job), notification services, and deployment config.extension/contains the Vite-powered extension source. Runnpm run buildin this folder to produceextension/dist, which is what you load into Chrome.
Follow these steps to run the project locally.
Prerequisites
- Node.js (recommended >= 18)
- npm
- MongoDB (Atlas or local)
- Backend
cd backend
cp .env.example .env
# Edit .env to provide values for:
# - MONGODB_URI
# - JWT_SECRET
# - SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_FROM (for email notifications)
npm install
npm start- The backend listens on
PORT(defaults to4000). - See
backend/.env.examplefor the complete list of environment variables. Do not commit your.envfile.
- Extension (build & load)
cd extension
npm install
npm run build- In Chrome, open
chrome://extensions, enable Developer mode, click Load unpacked, and select theextension/distfolder. - Do not load the raw
extension/srcfolder — always use the builtdistoutput so the manifest and service worker are correct.
- Enable SMS and WhatsApp notifications via Twilio (feature flagged so the system gracefully disables them until credentials are provided).
- Polish the UI and accessibility of the extension popup and dashboard.
- Publish the extension to the Chrome Web Store and add CI/CD for automated builds and releases.
This project is licensed under the MIT License.
If you'd like, I can add deployment instructions for Render or create a CONTRIBUTING guide next.