An open API service indexing awesome lists of open source software.

https://github.com/malu2003/resume-screener

๐ŸŽฏ AI-powered resume analysis tool with smart chatbot. Built with Angular & NestJS using Gemini AI. Get match scores, optimization tips & career advice. ๐Ÿš€
https://github.com/malu2003/resume-screener

angular chatbot gemini-ai nestjs resume-analyzer resume-tips

Last synced: about 2 months ago
JSON representation

๐ŸŽฏ AI-powered resume analysis tool with smart chatbot. Built with Angular & NestJS using Gemini AI. Get match scores, optimization tips & career advice. ๐Ÿš€

Awesome Lists containing this project

README

          

# ๐ŸŽฏ Resume Screening Tool with AI Chatbot

**A powerful, AI-driven resume analysis tool that helps job seekers optimize their resumes for better job matches.**

Built with Angular, NestJS, and Google's Gemini AI.

---

## ๐ŸŽญ **How It Works - Application Flow**

```mermaid
graph TD
A[๐Ÿ‘ค User uploads Resume] --> B[๐Ÿ“„ File Processing]
B --> C[๐Ÿ” Text Extraction]
C --> D[๐Ÿค– AI Analysis via Gemini]
D --> E[๐Ÿ“Š Generate Match Score]
E --> F[๐Ÿ“ˆ Create Detailed Report]
F --> G[๐Ÿ’ฌ AI Chatbot Ready]
G --> H{User Interaction}
H -->|Ask Questions| I[๐Ÿง  Contextual AI Response]
H -->|New Analysis| A
I --> J[๐Ÿ’ก Personalized Advice]
J --> H

style A fill:#e1f5fe
style D fill:#f3e5f5
style G fill:#e8f5e8
style I fill:#fff3e0
```

## ๐Ÿ—๏ธ **System Architecture**

```mermaid
graph LR
subgraph "Frontend (Angular)"
A[Resume Upload Form]
B[Results Dashboard]
C[AI Chatbot Interface]
end

subgraph "Backend (NestJS)"
D[Resume Controller]
E[AI Service]
F[File Parser Utility]
end

subgraph "External Services"
G[Google Gemini AI]
end

A --> D
B --> D
C --> D
D --> E
D --> F
E --> G

style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style E fill:#f3e5f5
style G fill:#ffebee
```

## ๐Ÿ”„ **Data Flow Diagram**

```mermaid
sequenceDiagram
participant U as ๐Ÿ‘ค User
participant F as ๐Ÿ–ฅ๏ธ Frontend
participant B as โš™๏ธ Backend
participant AI as ๐Ÿค– Gemini AI

U->>F: Upload Resume + Job Description
F->>B: POST /api/resume/match-resume
B->>B: Extract text from file
B->>AI: Send resume text + job description
AI->>B: Return analysis results
B->>F: Formatted analysis response
F->>U: Display results + Enable chatbot

Note over U,AI: Chatbot Interaction Flow
U->>F: Ask question via chatbot
F->>B: POST /api/resume/chat
B->>AI: Generate contextual response
AI->>B: Personalized advice
B->>F: Chatbot response
F->>U: Display AI advice
```

---
---
## ๐Ÿ“ธ **Application Screenshots**

### ๐ŸŽฏ **Complete User Journey**

#### **๐Ÿ  Landing Page - Resume Analysis Hub**
Resume Screening Landing Page

Clean, professional interface with clear call-to-action for resume analysis

---

#### **๐Ÿ“„ Upload Interface - File Selection & Job Description**
Resume Upload Form

Form for uploading resume files and pasting job descriptions

#### **๐Ÿ“Š Analysis Results - Comprehensive Sentiment Dashboard**
Resume Analysis Results

Detailed analysis with match score, strengths, weaknesses, and keyword analysis

---

#### **๐Ÿ’ช Strengths & Improvements - Detailed Feedback**
Strengths and Improvements

---

#### **๐Ÿ’ช Recommendations - Detailed Feedback**
Strengths and Improvements

---

#### **๐Ÿ’ฌ AI Chatbot Interface - Interactive Q&A**
AI Chatbot Interface

Conversational AI interface for asking specific questions about resume analysis

---
## โœจ **Features Showcase**

### ๐Ÿ” **Smart Resume Analysis**
- ๐ŸŽฏ **AI-Powered Matching**: Uses Google Gemini AI for intelligent resume-job matching
- ๐Ÿ“Š **Match Score Calculation**: Get a precise compatibility score (0-100%)
- ๐Ÿ”‘ **Keyword Analysis**: Identifies matched and missing keywords
- ๐Ÿ’ช **Strengths & Improvements**: Detailed feedback on resume strengths and areas for improvement

### ๐Ÿ’ฌ **Interactive AI Chatbot**
- ๐ŸŽฏ **Personalized Advice**: Ask specific questions about your resume analysis
- โšก **Real-time Responses**: Get instant, contextual career advice
- โ“ **Follow-up Questions**: Smart suggestions for deeper insights
- ๐Ÿš€ **Resume Optimization Tips**: Actionable recommendations for improvement

### ๐Ÿ“Š **Comprehensive Analytics**
- ๐ŸŽจ **Visual Match Score**: Color-coded scoring system
- ๐Ÿ“ˆ **Detailed Breakdown**: Technical skills, experience, and qualifications analysis
- ๐Ÿ† **Priority Recommendations**: High/Medium/Low priority improvement suggestions
- ๐Ÿ’ผ **Professional Insights**: Industry-standard resume optimization advice

### ๐ŸŽจ **Modern UI/UX**
- ๐Ÿ“ฑ **Responsive Design**: Works perfectly on desktop and mobile
- ๐Ÿ–ฅ๏ธ **Intuitive Interface**: Clean, user-friendly design
- โฑ๏ธ **Real-time Loading**: Smooth animations and progress indicators
- โ™ฟ **Accessibility**: WCAG compliant design

---

## ๐Ÿš€ **Quick Start Guide**

### ๐Ÿ“‹ **Prerequisites**
```bash
โœ… Node.js (v18+ recommended)
โœ… npm or yarn
โœ… Google Gemini API Key
```

### 1๏ธโƒฃ **Clone the Repository**
```bash
git clone https://github.com/Malu2003/resume-screening.git
cd resume-screening-tool
```

### 2๏ธโƒฃ **Backend Setup**
```bash
cd backend
npm install

# Create environment file
echo "GEMINI_API_KEY=your_gemini_api_key_here" > .env
echo "PORT=3000" >> .env
```

### 3๏ธโƒฃ **Frontend Setup**
```bash
cd ../frontend
npm install
```

### 4๏ธโƒฃ **Start the Application**
```bash
# Terminal 1: Start Backend
cd backend && npm run start:dev

# Terminal 2: Start Frontend
cd frontend && ng serve
```

### 5๏ธโƒฃ **Open Your Browser**
Navigate to **http://localhost:4200** ๐ŸŽ‰

---

## ๐Ÿ› ๏ธ **Technology Stack**

| **Frontend** | **Backend** | **AI & APIs** |
|:---:|:---:|:---:|
| ![Angular](https://img.shields.io/badge/Angular-17+-DD0031?style=for-the-badge&logo=angular) | ![NestJS](https://img.shields.io/badge/NestJS-10+-E0234E?style=for-the-badge&logo=nestjs) | ![Gemini AI](https://img.shields.io/badge/Gemini-AI-4285F4?style=for-the-badge&logo=google) |
| ![TypeScript](https://img.shields.io/badge/TypeScript-5+-007ACC?style=for-the-badge&logo=typescript) | ![Express](https://img.shields.io/badge/Express-4+-000000?style=for-the-badge&logo=express) | ![REST API](https://img.shields.io/badge/REST-API-25D366?style=for-the-badge&logo=postman) |
| ![Bootstrap](https://img.shields.io/badge/Bootstrap-5+-7952B3?style=for-the-badge&logo=bootstrap) | ![Multer](https://img.shields.io/badge/Multer-File_Upload-FF6B35?style=for-the-badge&logo=node.js) | ![PDF Parser](https://img.shields.io/badge/PDF-Parser-DC382D?style=for-the-badge&logo=adobe) |

---

## ๐Ÿ“ **Project Structure**

```
๐Ÿ—๏ธ resume-screening-tool/
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ frontend/ # Angular Application
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ src/
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ app/
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ components/
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“„ resume-form/ # File Upload Component
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š results/ # Analysis Results Display
โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ’ฌ chatbot/ # AI Chatbot Interface
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง services/ # Angular Services
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“ models/ # TypeScript Interfaces
โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŽจ assets/ # Static Assets
โ”‚ โ””โ”€โ”€ ๐Ÿ“ฆ package.json
โ”œโ”€โ”€ โš™๏ธ backend/ # NestJS Application
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ src/
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ resume/ # Resume Analysis Module
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐ŸŽฎ resume.controller.ts
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง resume.service.ts
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“ฆ resume.module.ts
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿค– services/
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿง  ai.service.ts # Gemini AI Integration
โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ› ๏ธ utils/
โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“„ file-parser.util.ts # File Processing Utilities
โ”‚ โ””โ”€โ”€ ๐Ÿ“ฆ package.json
โ”œโ”€โ”€ ๐Ÿ“– README.md
โ”œโ”€โ”€ ๐Ÿšซ .gitignore
โ””โ”€โ”€ ๐Ÿ“„ LICENSE
```

---

## ๐ŸŽฎ **Usage Examples & Screenshots**

### 1๏ธโƒฃ **Upload Resume**
```
๐Ÿ“„ Select your resume file (PDF, DOC, DOCX)
๐Ÿ“ Paste the job description
๐Ÿš€ Click "Analyze Resume"
โณ Wait for AI analysis (typically 10-15 seconds)
```

### 2๏ธโƒฃ **View Results**
```
๐Ÿ“Š Get detailed match score and visual analytics
๐Ÿ’ช Review strengths and improvement areas
๐Ÿ” Check keyword analysis and gap identification
๐Ÿ“ˆ See priority-ranked recommendations
```

### 3๏ธโƒฃ **Chat with AI**
```
๐Ÿ’ฌ Click "Ask Questions" button
โ“ Ask specific questions like:
โ€ข "Why did I get this match score?"
โ€ข "How can I improve my technical skills section?"
โ€ข "What should I focus on first?"
โ€ข "Can you explain the missing keywords?"
```

---

## ๐Ÿ” **Environment Setup**

Create `.env` file in backend directory:

```env
# ๐Ÿ”‘ Required - Get from Google AI Studio
GEMINI_API_KEY=your_gemini_api_key_here

# โš™๏ธ Optional Configuration
PORT=3000
NODE_ENV=development
MAX_FILE_SIZE=10485760 # 10MB in bytes
ALLOWED_FILE_TYPES=pdf,doc,docx
CORS_ORIGIN=http://localhost:4200

# ๐Ÿ“Š Rate Limiting (Optional)
RATE_LIMIT_WINDOW=15 # minutes
RATE_LIMIT_MAX=100 # requests per window
```

---

### **Development Workflow**
```bash
# 1๏ธโƒฃ Fork the repository
git clone https://github.com/YOUR_USERNAME/resume-screening.git

# 2๏ธโƒฃ Create feature branch
git checkout -b feature/amazing-feature

# 3๏ธโƒฃ Make your changes
# ... code changes ...

# 4๏ธโƒฃ Commit changes
git commit -m 'โœจ Add amazing feature'

# 5๏ธโƒฃ Push to branch
git push origin feature/amazing-feature

# 6๏ธโƒฃ Open Pull Request
```

### **Code Style Guidelines**
- ๐ŸŽฏ Use TypeScript for type safety
- ๐Ÿ“ Follow Angular/NestJS conventions
- ๐Ÿงช Write tests for new features
- ๐Ÿ“– Update documentation
- ๐Ÿš€ Ensure responsive design

---

## ๐Ÿ™ **Acknowledgments**

**Special thanks to the amazing open-source community and tools that make this project possible:**

| **๐Ÿค– AI & ML** | **๐Ÿ› ๏ธ Frameworks** | **โ˜๏ธ Services** |
|:---:|:---:|:---:|
| [Google Gemini AI](https://ai.google.dev) | [Angular](https://angular.io) | [GitHub](https://github.com) |
| Machine Learning Community | [NestJS](https://nestjs.com) | [npm](https://npmjs.com) |
| Open Source AI Models | [TypeScript](https://typescriptlang.org) | [Node.js](https://nodejs.org) |

**Response Time:** Usually within 24 hours โšก

---

## ๐ŸŒŸ **Show Your Support**