Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HirePortal-AI Powered Microservices based Job Portal

image

An enterprise-ready, AI-integrated Job Portal built using a highly scalable Microservices Architecture and deployed on AWS EC2. This platform moves beyond traditional job boards by leveraging Generative AI to provide candidates with automated resume analysis, ATS scoring, and personalized career roadmaps.

All traffic enters through a single Nginx reverse proxy gateway, which routes requests to the appropriate backend microservices running inside a Docker internal network. The system utilizes Apache Kafka for asynchronous email notifications and Redis for high-speed token management and secure password reset flows. By decoupling services like Payments, Auth, and AI Utilities, the architecture ensures that the failure of one service does not compromise the integrity of the entire ecosystem.


🛠️ Comprehensive Tech Stack

Core Frameworks & Languages

  • Frontend: Next.js 14+ (App Router), TypeScript, Tailwind CSS.
  • Backend: Node.js, Express.js, TypeScript.
  • Infrastructure: Docker (containerized microservices), Nginx (reverse proxy), AWS EC2.

Databases & State Management

  • PostgreSQL: Hosted on Neon DB for serverless relational data storage.
  • Redis: Hosted on Upstash for fast session handling and secure reset tokens.
  • Context API: Global state management in the frontend for user sessions and real-time notifications.

Microservices & Communication

  • Reverse Proxy: Nginx routes all external traffic through a single public entry point (Port 80) to internal services.
  • Message Broker: Apache Kafka handles background email queues.
  • HTTP Client: Axios for inter-service communication and frontend API calls.
  • Real-time Mailer: Nodemailer integrated with Kafka consumers.

AI & Third-Party Integrations

  • AI Engine: Google Gemini AI (Pro & Flash models) for Resume Analysis and Career Guidance.
  • Payment Gateway: Razorpay for premium job-seeker subscriptions.
  • Cloud Storage: Cloudinary for storing profile pictures and PDF resumes.

UI Components & Icons


🚀 Key Features

  • AI Resume Analyzer: Uses Gemini AI to provide an ATS compatibility score and point-by-point improvement suggestions.
  • AI Career Guide: Generates a custom learning roadmap and job recommendations based on a user's technical stack.
  • Priority Application System: A subscription model where premium users' resumes are highlighted and prioritized for recruiters.
  • Kafka-Powered Notifications: Ensures application status updates and password resets are sent reliably via asynchronous email workers.
  • Secure Authentication: Custom JWT implementation with Bearer Token verification and Redis-backed secure reset flows.
  • Nginx Gateway: A single Nginx reverse proxy acts as the public entry point, routing all traffic to internal microservices within the Docker network on AWS EC2.
  • Relational Data Integrity: Built with raw SQL (PostgreSQL) for complex joins and cascading deletes.

🏗️ Architecture Visualization

image

⚙️ Setup & Installation

1. Environmental Variables (.env)

You must configure unique .env files for each microservice folder and the frontend.

Common Keys Required:

PORT=xxxx
DATABASE_URL=your_postgresql_url
REDIS_URL=your_upstash_redis_url
JWT_SEC=your_secret_key
KAFKA_BROKER=localhost:9092

2. Execution Order

  1. Start Infrastructure: Ensure Docker is running. Use docker-compose up to spin up Kafka, and all backend services behind Nginx.
  2. Install Dependencies: Run npm install in the root and all service directories.
  3. Compile Services: Run npx tsc in each backend folder to generate the dist files.
  4. Launch Frontend: Run npm run dev in the frontend directory. The Next.js app communicates with the backend through the Nginx gateway.

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

📜 License

Distributed under the MIT License. See LICENSE for more information.

About

An enterprise-ready AI-powered Job Portal built on scalable microservices.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages