Skip to content

An affordable platform for students to optimize their resumes with ATS score analysis and actionable improvement suggestions

Notifications You must be signed in to change notification settings

Rohan-Singhh/ResumeZen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

206 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RESUMEZEN

Transforming resumes, empowering career journeys effortlessly.


Built with the tools and technologies:


Table of Contents


πŸš€ Overview

ResumeZen helps students create ATS-friendly resumes that stand out to employers. Our platform uses artificial intelligence to analyze resumes, provide real-time feedback, and offer specific suggestions for improvement.


✨ Features

  • ATS Analysis: Score your resume against Applicant Tracking Systems using AI
  • Smart Suggestions: Get actionable feedback to improve your resume content and format
  • PDF Processing: Upload and process PDF resumes with OCR text extraction
  • Resume Storage: Securely store and manage multiple resume versions
  • User Dashboard: Track improvement history and access analysis reports
  • Subscription Plans: Flexible pricing options for different user needs
  • Modern UI: Responsive design with smooth animations and transitions

πŸ› οΈ Tech Stack

Frontend

Backend

External Services


πŸ—οΈ Architecture

Backend Services

  • Authentication Service: Firebase-based authentication with JWT tokens
  • Upload Service: Resume file processing and Cloudinary integration
  • OCR Service: Text extraction from PDF files
  • AI Analysis Service: Resume evaluation using OpenRouter AI
  • Resume Parser Service: Structured data extraction from resumes
  • Plan/Subscription Service: User plan management

Frontend Structure

  • Authentication Context: User authentication state management
  • Dashboard: Central user interface with sidebar navigation
  • Resume Analysis Components: AI-powered resume evaluation
  • Plan Selection: Subscription management
  • Profile Management: User profile settings
  • PDF Utils: Utilities for handling PDF documents

πŸ“ Getting Started

Prerequisites

Installation

Manual Setup

  1. Clone the repository
git clone https://github.com/Rohan-Singhh/ResumeZen.git
cd ResumeZen
  1. Set up environment variables

    • Copy .env.example to .env in the root directory
    • Copy .env.example to .env in both frontend and backend directories
    • Update the values with your credentials

    Backend .env:

    PORT=5000
    MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority&appName=YourAppName
    NODE_ENV=development
    JWT_SECRET=your_secure_jwt_secret
    JWT_EXPIRE=30d
    
    # Cloudinary credentials
    CLOUDINARY_CLOUD_NAME=your_cloud_name
    CLOUDINARY_API_KEY=your_api_key
    CLOUDINARY_API_SECRET=your_api_secret
    
    # OCR Space API
    OCR_SPACE_API_KEY=your_ocr_space_api_key
    
    # OpenRouter API (for AI analysis)
    OPENROUTER_API_KEY=your_openrouter_api_key
    
    # API base URL (for internal service communication)
    API_BASE_URL=http://localhost:5000
    
    # Firebase Admin SDK
    FIREBASE_ADMIN_SDK_PATH=./path-to-your-firebase-adminsdk-service-account.json
    

    Frontend .env:

    VITE_REACT_APP_FIREBASE_API_KEY="your-api-key"
    VITE_REACT_APP_FIREBASE_AUTH_DOMAIN="your-project.firebaseapp.com"
    VITE_REACT_APP_FIREBASE_PROJECT_ID="your-project-id"
    VITE_REACT_APP_FIREBASE_STORAGE_BUCKET="your-project.appspot.com"
    VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID="your-sender-id"
    VITE_REACT_APP_FIREBASE_APP_ID="your-app-id"
    VITE_REACT_APP_FIREBASE_MEASUREMENT_ID="your-measurement-id"
    VITE_API_URL="http://localhost:5000"
    VITE_REACT_APP_RECAPTCHA_KEY="your-recaptcha-site-key"
    VITE_CLOUDINARY_CLOUD_NAME="your-cloudinary-cloud-name"
    
  2. Install dependencies

# Backend dependencies
cd backend
npm install

# Frontend dependencies
cd ../frontend
npm install
  1. Start development servers
# Start backend server
cd backend
npm run dev

# Start frontend server (in a new terminal)
cd frontend
npm run dev

Using Docker (Recommended for Consistent Environments)

  1. Clone the repository
git clone https://github.com/Rohan-Singhh/ResumeZen.git
cd ResumeZen
  1. Set up environment variables

    • Copy .env.example to .env in the root directory
    • Update the MongoDB connection string and other service credentials
  2. Start containers

docker-compose up

Access:


πŸ” External Services Setup

Firebase Setup

  1. Create a Firebase project
  2. Enable Authentication (Email/Password, Google)
  3. Get your Firebase configuration from Project Settings > Your Apps > SDK setup
  4. Set up Firebase Admin SDK:
    • Go to Project Settings > Service Accounts
    • Generate a new private key
    • Save the JSON file in the backend directory
    • Add the file path to your backend .env as FIREBASE_ADMIN_SDK_PATH

Cloudinary Setup

  1. Create a Cloudinary account
  2. From your dashboard, get your:
    • Cloud Name
    • API Key
    • API Secret
  3. Add these values to your backend .env file
  4. Add your Cloud Name to your frontend .env file as VITE_CLOUDINARY_CLOUD_NAME

OCR Space Setup

  1. Sign up for an OCR Space API key
  2. Add your API key to the backend .env file as OCR_SPACE_API_KEY

OpenRouter Setup

  1. Create an OpenRouter account
  2. Generate an API key
  3. Add your API key to the backend .env file as OPENROUTER_API_KEY

πŸ§‘β€πŸ’» Development Information

Code Organization

  • Frontend

    • src/components: Reusable UI components
    • src/pages: Page components and views
    • src/pages/Dashboard: Dashboard components and layout
    • src/services: API service integrations
    • src/context: Context providers for state management
    • src/utils: Utility functions including PDF handling
    • src/assets: Static assets and images
  • Backend

    • services: Core business logic and external API integrations
      • aiAnalysisService.js: OpenRouter AI integration for resume analysis
      • ocrService.js: OCR Space integration for text extraction
      • uploadService.js: Cloudinary integration for file storage
      • resumeParserService.js: Resume data extraction and formatting
    • routes: API endpoint definitions
    • models: MongoDB schemas and data models
    • middleware: Express middleware (auth, error handling, etc.)
    • config: Application configuration and setup

Features in Detail

Resume Analysis

  • Upload PDF resume
  • Extract text with OCR
  • Process resume content with AI
  • Generate ATS score and improvement suggestions
  • Store analysis results

User Authentication

  • Google login integration
  • Email/password authentication
  • JWT token-based session management
  • User profile management

Subscription Management

  • Multiple plan options (one-time and subscription)
  • Credits system for resume checks
  • Premium features for higher-tier plans

πŸ§ͺ Testing

# Run frontend tests
cd frontend
npm test

# Run backend tests
cd backend
npm test

πŸš€ Deployment

Frontend Deployment

Backend Deployment


πŸ”§ Environment Variables Guide

Critical Environment Variables

Backend Variables

  • MONGODB_URI: MongoDB connection string
  • JWT_SECRET: Secret for JWT token generation
  • CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET: Cloudinary credentials
  • OCR_SPACE_API_KEY: OCR Space API key
  • OPENROUTER_API_KEY: OpenRouter API key
  • FIREBASE_ADMIN_SDK_PATH: Path to Firebase Admin SDK service account JSON file

Frontend Variables

  • Firebase configuration (API key, auth domain, project ID, etc.)
  • VITE_API_URL: URL to your backend API
  • VITE_CLOUDINARY_CLOUD_NAME: Cloudinary cloud name for direct uploads
  • VITE_REACT_APP_RECAPTCHA_KEY: reCAPTCHA site key for authentication

πŸ“„ License

Copyright Β© 2025 ResumeZen. All rights reserved.


πŸ‘₯ Contact

For questions or feedback, please reach out to the development team.

About

An affordable platform for students to optimize their resumes with ATS score analysis and actionable improvement suggestions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages