Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Powered Job Preparation and Recruitment Platform

A full-stack web platform connecting job seekers with companies. Candidates build profiles, practice AI-driven interviews, and get feedback. Companies post jobs, browse candidates, and manage applications.

Tech Stack

  • Frontend: React.js (Vite) + Tailwind CSS
  • Backend: Node.js + Express
  • Databases: MySQL (structured data) + MongoDB (interviews, documents)
  • Authentication: JWT-based auth
  • AI Services: OpenAI, D-ID/Synthesia, ElevenLabs

Project Structure

job-platform/
├── backend/
│   ├── src/
│   │   ├── config/       # Database configurations
│   │   ├── controllers/  # Route controllers
│   │   ├── middleware/   # Auth middleware
│   │   ├── models/       # MongoDB models
│   │   ├── routes/       # API routes
│   │   ├── services/     # Business logic
│   │   └── server.js     # Entry point
│   ├── migrations/       # Database migrations
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── components/   # Reusable components
│   │   ├── pages/       # Page components
│   │   ├── services/    # API client
│   │   ├── context/     # React context
│   │   └── App.jsx      # Main app
│   └── package.json
├── .env.example
└── README.md

Prerequisites

  • Node.js 18+
  • MySQL 8.0+
  • MongoDB 6.0+

Setup Instructions

1. Clone and Install Dependencies

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

2. Configure Environment Variables

Copy .env.example to .env in both backend and root directories:

# Backend
cp backend/.env.example backend/.env
cp .env.example .env

Update the .env files with your actual credentials:

Required Keys:

  • MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB - MySQL connection
  • MONGO_URI - MongoDB connection string

Optional (for full functionality):

  • OPENAI_API_KEY - For AI interview feedback
  • D_ID_API_KEY or SYNTHESIA_API_KEY - For AI avatar videos
  • ELEVENLABS_API_KEY - For voice generation
  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_BUCKET - For file storage

3. Set Up Databases

# Create MySQL database and tables
cd backend
npm run migrate

# Seed initial data (optional)
npm run seed

4. Run the Application

# Start backend (from backend directory)
npm run dev

# Start frontend (from frontend directory)
cd ../frontend
npm run dev

API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - Login user
  • GET /api/auth/me - Get current user

Job Seeker

  • GET /api/jobseeker/profile - Get profile
  • PUT /api/jobseeker/profile - Update profile
  • POST /api/jobseeker/resume/generate - Generate PDF resume
  • POST /api/jobseeker/video/generate - Generate AI video intro
  • GET /api/jobseeker/dashboard - Get dashboard stats

Interview

  • GET /api/interview/questions - Get interview questions
  • POST /api/interview/session/start - Start interview session
  • POST /api/interview/session/answer - Submit answer
  • POST /api/interview/session/end - End session
  • GET /api/interview/session/history - Get past sessions

Jobs

  • GET /api/jobs - List jobs (with filters)
  • GET /api/jobs/:id - Get job details
  • POST /api/jobs/:id/apply - Apply to job
  • GET /api/jobs/my-applications - Get my applications

Company

  • GET /api/company/profile - Get company profile
  • PUT /api/company/profile - Update company
  • POST /api/company/jobs - Create job
  • GET /api/company/jobs/:id/applicants - Get applicants
  • GET /api/company/candidates/search - Search candidates

Replacing API Keys

All API keys are stored in environment variables with placeholder comments in the code. To enable AI features:

  1. OpenAI (src/services/aiService.js):

    • Replace OPENAI_API_KEY in .env
    • The code uses GPT-4 for interview feedback
  2. D-ID / Synthesia (src/services/videoGenerator.js):

    • Replace D_ID_API_KEY or SYNTHESIA_API_KEY in .env
    • Currently returns placeholder response until valid key is provided
  3. AWS S3 (src/services/storageService.js):

    • Replace AWS credentials in .env
    • Currently returns mock URLs until valid credentials provided

Security Notes

  • Passwords are hashed with bcrypt
  • JWT tokens are used for authentication
  • CORS is configured for frontend origin only
  • Input validation with express-validator
  • All sensitive keys are in environment variables

Features

For Job Seekers

  • Build and edit professional profile
  • Add education, experience, skills, certifications
  • Generate PDF resume from profile
  • Practice AI-powered interviews
  • Get instant feedback on answers
  • Browse and apply to jobs
  • Track application status

For Companies

  • Create and manage company profile
  • Post job listings
  • View and search candidates
  • Review applicant profiles
  • Update application status

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages