JobConnect is a full-fledged job portal application built using the MERN stack (MongoDB, Express.js, React.js, Node.js) with advanced features for job seekers, recruiters, and admins. It facilitates real-time job posting, application tracking, recruiter-applicant messaging, AI assistance, resume analysis, premium memberships, and an admin dashboard for managing the platform.
- Sign up/login with JWT & Google Authentication
- Browse and apply for jobs
- Upload resumes
- View application status
- Chat with recruiters (Premium only)
- AI resume analyzer
- Register/login securely
- Post, edit, delete jobs
- View applicants per job
- Chat with job seekers (Premium only)
- Accept/Reject applications
- Manage users (job seekers and recruiters)
- Monitor job postings and activity
- Analytics Dashboard
- Real-time notifications
- Responsive UI (Mobile & Desktop)
- Email notifications (application status updates)
- Role-based access
- React.js
- TailwindCSS + ShadCN UI
- Redux Toolkit
- Axios
- Node.js + Express.js
- MongoDB + Mongoose
- JWT Authentication
- Multer (for file uploads)
- Socket.IO (chat)
- Google Gemini API (AI)
- Razorpay (Payments)
- Nodemailer
- React Router DOM
- Passport.js (Google Auth)
jobconnect/
├── client/ # React frontend
│ ├── components/
│ ├── pages/
│ ├── redux/
│ └── App.jsx
│
├── server/ # Express backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ └── app.js
# 1. Clone repo
$ git clone https://github.com/Pruthvi-Parmar/jobPortal_SDP.git && cd jobconnect
# 2. Install dependencies
$ cd client && npm install
$ cd ../server && npm install
# 3. Environment variables
Create `.env` files in respective folders (client, server, socket-server)
# 4. Start dev servers
# Terminal 1 (Frontend)
$ cd client && npm run dev
# Terminal 2 (Backend)
$ cd server && npm run dev
PORT=8081
MONGO_URI=your_mongodb_url
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
RAZORPAY_KEY_ID=your_key_id
RAZORPAY_SECRET=your_key_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_password
VITE_BACKEND_URL=http://localhost:8081
VITE_SOCKET_URL=http://localhost:3001
POST /auth/registerPOST /auth/loginGET /auth/google/callback
POST /jobs/GET /jobs/GET /jobs/:idPOST /jobs/apply/:jobId
GET /admin/usersDELETE /admin/job/:jobId
POST /ai/analyze-resumePOST /ai/chat
POST /payments/create-orderPOST /payments/verify
-
Razorpay integration
-
Only premium users can access:
- Resume analyzer
- Recruiter chat
- Priority application support
-
Frontend flow integrated using Razorpay Checkout
- WebSockets using Socket.IO
- Authenticated with JWT
- Redux-based message storage on client
- Job-based chat rooms
-
Integrated via Google Gemini API
-
Chatbot: General assistant + Job query handler
-
Resume Analyzer:
- Upload resume PDF
- Analyze for specific job role match
- Shows skill match, suggestions
- Standalone admin login with JWT
- View all users and recruiters
- Approve/Reject jobs
- View analytics: job stats, active users, etc.
- Admin DB managed via Prisma + NeonDB
- Mobile App (React Native)
- Video Interview Scheduling
- AI Job Recommendation Engine
- Resume Builder with Templates
- Multi-language support
- Dark mode & Theme customization
MIT License. Feel free to fork, improve, and use in your projects!
Open for contributions. Create a PR or raise an issue.
Built with ❤️ by Pruthvi and Sm