{"id":29133066,"url":"https://github.com/malu2003/resume-screener","last_synced_at":"2026-05-07T13:45:08.229Z","repository":{"id":299964834,"uuid":"1004745343","full_name":"Malu2003/resume-screener","owner":"Malu2003","description":"🎯 AI-powered resume analysis tool with smart chatbot. Built with Angular \u0026 NestJS using Gemini AI. Get match scores, optimization tips \u0026 career advice. 🚀","archived":false,"fork":false,"pushed_at":"2025-06-19T06:04:35.000Z","size":242,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T07:19:19.625Z","etag":null,"topics":["angular","chatbot","gemini-ai","nestjs","resume-analyzer","resume-tips"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Malu2003.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T05:48:25.000Z","updated_at":"2025-06-19T07:05:34.000Z","dependencies_parsed_at":"2025-06-19T07:19:28.011Z","dependency_job_id":"78c6fc4d-59f0-4c80-9781-fda5e7749eb0","html_url":"https://github.com/Malu2003/resume-screener","commit_stats":null,"previous_names":["malu2003/resume-screener"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Malu2003/resume-screener","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Malu2003%2Fresume-screener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Malu2003%2Fresume-screener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Malu2003%2Fresume-screener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Malu2003%2Fresume-screener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Malu2003","download_url":"https://codeload.github.com/Malu2003/resume-screener/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Malu2003%2Fresume-screener/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262727708,"owners_count":23354665,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","chatbot","gemini-ai","nestjs","resume-analyzer","resume-tips"],"created_at":"2025-06-30T07:01:56.487Z","updated_at":"2026-05-07T13:45:08.187Z","avatar_url":"https://github.com/Malu2003.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎯 Resume Screening Tool with AI Chatbot\n\n\u003cdiv align=\"center\"\u003e\n\n\n**A powerful, AI-driven resume analysis tool that helps job seekers optimize their resumes for better job matches.**\n\nBuilt with Angular, NestJS, and Google's Gemini AI.\n\n\u003c/div\u003e\n\n---\n\n## 🎭 **How It Works - Application Flow**\n\n```mermaid\ngraph TD\n    A[👤 User uploads Resume] --\u003e B[📄 File Processing]\n    B --\u003e C[🔍 Text Extraction]\n    C --\u003e D[🤖 AI Analysis via Gemini]\n    D --\u003e E[📊 Generate Match Score]\n    E --\u003e F[📈 Create Detailed Report]\n    F --\u003e G[💬 AI Chatbot Ready]\n    G --\u003e H{User Interaction}\n    H --\u003e|Ask Questions| I[🧠 Contextual AI Response]\n    H --\u003e|New Analysis| A\n    I --\u003e J[💡 Personalized Advice]\n    J --\u003e H\n    \n    style A fill:#e1f5fe\n    style D fill:#f3e5f5\n    style G fill:#e8f5e8\n    style I fill:#fff3e0\n```\n\n## 🏗️ **System Architecture**\n\n```mermaid\ngraph LR\n    subgraph \"Frontend (Angular)\"\n        A[Resume Upload Form]\n        B[Results Dashboard]\n        C[AI Chatbot Interface]\n    end\n    \n    subgraph \"Backend (NestJS)\"\n        D[Resume Controller]\n        E[AI Service]\n        F[File Parser Utility]\n    end\n    \n    subgraph \"External Services\"\n        G[Google Gemini AI]\n    end\n    \n    A --\u003e D\n    B --\u003e D\n    C --\u003e D\n    D --\u003e E\n    D --\u003e F\n    E --\u003e G\n    \n    style A fill:#e3f2fd\n    style B fill:#e8f5e8\n    style C fill:#fff3e0\n    style E fill:#f3e5f5\n    style G fill:#ffebee\n```\n\n## 🔄 **Data Flow Diagram**\n\n```mermaid\nsequenceDiagram\n    participant U as 👤 User\n    participant F as 🖥️ Frontend\n    participant B as ⚙️ Backend\n    participant AI as 🤖 Gemini AI\n    \n    U-\u003e\u003eF: Upload Resume + Job Description\n    F-\u003e\u003eB: POST /api/resume/match-resume\n    B-\u003e\u003eB: Extract text from file\n    B-\u003e\u003eAI: Send resume text + job description\n    AI-\u003e\u003eB: Return analysis results\n    B-\u003e\u003eF: Formatted analysis response\n    F-\u003e\u003eU: Display results + Enable chatbot\n    \n    Note over U,AI: Chatbot Interaction Flow\n    U-\u003e\u003eF: Ask question via chatbot\n    F-\u003e\u003eB: POST /api/resume/chat\n    B-\u003e\u003eAI: Generate contextual response\n    AI-\u003e\u003eB: Personalized advice\n    B-\u003e\u003eF: Chatbot response\n    F-\u003e\u003eU: Display AI advice\n```\n\n---\n---\n## 📸 **Application Screenshots**\n\n### 🎯 **Complete User Journey**\n\n\u003cdiv align=\"center\"\u003e\n\n#### **🏠 Landing Page - Resume Analysis Hub**\n\u003cimg src=\"screenshots/landing.png\" alt=\"Resume Screening Landing Page\" width=\"800\"/\u003e\n\u003cbr\u003e\u003ci\u003eClean, professional interface with clear call-to-action for resume analysis\u003c/i\u003e\n\n---\n\n#### **📄 Upload Interface - File Selection \u0026 Job Description**\n\u003cimg src=\"screenshots/analysis.png\" alt=\"Resume Upload Form\" width=\"800\"/\u003e\n\u003cbr\u003e\u003ci\u003eForm for uploading resume files and pasting job descriptions\u003c/i\u003e\n\n\n\n#### **📊 Analysis Results - Comprehensive Sentiment Dashboard**\n\u003cimg src=\"screenshots/results.png\" alt=\"Resume Analysis Results\" width=\"800\"/\u003e\n\u003cbr\u003e\u003ci\u003eDetailed analysis with match score, strengths, weaknesses, and keyword analysis\u003c/i\u003e\n\n---\n\n#### **💪 Strengths \u0026 Improvements - Detailed Feedback**\n\u003cimg src=\"screenshots/improvements.png\" alt=\"Strengths and Improvements\" width=\"800\"/\u003e\n\n\n---\n\n#### **💪 Recommendations - Detailed Feedback**\n\u003cimg src=\"screenshots/recommendations.png\" alt=\"Strengths and Improvements\" width=\"800\"/\u003e\n\n\n---\n\n#### **💬 AI Chatbot Interface - Interactive Q\u0026A**\n\u003cimg src=\"screenshots/chatbot.png\" alt=\"AI Chatbot Interface\" width=\"800\"/\u003e\n\u003cbr\u003e\u003ci\u003eConversational AI interface for asking specific questions about resume analysis\u003c/i\u003e\n\n---\n## ✨ **Features Showcase**\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 🔍 **Smart Resume Analysis**\n- 🎯 **AI-Powered Matching**: Uses Google Gemini AI for intelligent resume-job matching\n- 📊 **Match Score Calculation**: Get a precise compatibility score (0-100%)\n- 🔑 **Keyword Analysis**: Identifies matched and missing keywords\n- 💪 **Strengths \u0026 Improvements**: Detailed feedback on resume strengths and areas for improvement\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 💬 **Interactive AI Chatbot**\n- 🎯 **Personalized Advice**: Ask specific questions about your resume analysis\n- ⚡ **Real-time Responses**: Get instant, contextual career advice\n- ❓ **Follow-up Questions**: Smart suggestions for deeper insights\n- 🚀 **Resume Optimization Tips**: Actionable recommendations for improvement\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 📊 **Comprehensive Analytics**\n- 🎨 **Visual Match Score**: Color-coded scoring system\n- 📈 **Detailed Breakdown**: Technical skills, experience, and qualifications analysis\n- 🏆 **Priority Recommendations**: High/Medium/Low priority improvement suggestions\n- 💼 **Professional Insights**: Industry-standard resume optimization advice\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 🎨 **Modern UI/UX**\n- 📱 **Responsive Design**: Works perfectly on desktop and mobile\n- 🖥️ **Intuitive Interface**: Clean, user-friendly design\n- ⏱️ **Real-time Loading**: Smooth animations and progress indicators\n- ♿ **Accessibility**: WCAG compliant design\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🚀 **Quick Start Guide**\n\n### 📋 **Prerequisites**\n```bash\n✅ Node.js (v18+ recommended)\n✅ npm or yarn\n✅ Google Gemini API Key\n```\n\n### 1️⃣ **Clone the Repository**\n```bash\ngit clone https://github.com/Malu2003/resume-screening.git\ncd resume-screening-tool\n```\n\n### 2️⃣ **Backend Setup**\n```bash\ncd backend\nnpm install\n\n# Create environment file\necho \"GEMINI_API_KEY=your_gemini_api_key_here\" \u003e .env\necho \"PORT=3000\" \u003e\u003e .env\n```\n\n### 3️⃣ **Frontend Setup**\n```bash\ncd ../frontend\nnpm install\n```\n\n### 4️⃣ **Start the Application**\n```bash\n# Terminal 1: Start Backend\ncd backend \u0026\u0026 npm run start:dev\n\n# Terminal 2: Start Frontend  \ncd frontend \u0026\u0026 ng serve\n```\n\n### 5️⃣ **Open Your Browser**\nNavigate to **http://localhost:4200** 🎉\n\n---\n\n## 🛠️ **Technology Stack**\n\n\u003cdiv align=\"center\"\u003e\n\n| **Frontend** | **Backend** | **AI \u0026 APIs** |\n|:---:|:---:|:---:|\n| ![Angular](https://img.shields.io/badge/Angular-17+-DD0031?style=for-the-badge\u0026logo=angular) | ![NestJS](https://img.shields.io/badge/NestJS-10+-E0234E?style=for-the-badge\u0026logo=nestjs) | ![Gemini AI](https://img.shields.io/badge/Gemini-AI-4285F4?style=for-the-badge\u0026logo=google) |\n| ![TypeScript](https://img.shields.io/badge/TypeScript-5+-007ACC?style=for-the-badge\u0026logo=typescript) | ![Express](https://img.shields.io/badge/Express-4+-000000?style=for-the-badge\u0026logo=express) | ![REST API](https://img.shields.io/badge/REST-API-25D366?style=for-the-badge\u0026logo=postman) |\n| ![Bootstrap](https://img.shields.io/badge/Bootstrap-5+-7952B3?style=for-the-badge\u0026logo=bootstrap) | ![Multer](https://img.shields.io/badge/Multer-File_Upload-FF6B35?style=for-the-badge\u0026logo=node.js) | ![PDF Parser](https://img.shields.io/badge/PDF-Parser-DC382D?style=for-the-badge\u0026logo=adobe) |\n\n\u003c/div\u003e\n\n---\n\n## 📁 **Project Structure**\n\n```\n🏗️ resume-screening-tool/\n├── 🖥️ frontend/                    # Angular Application\n│   ├── 📂 src/\n│   │   ├── 📂 app/\n│   │   │   ├── 📂 components/\n│   │   │   │   ├── 📄 resume-form/        # File Upload Component\n│   │   │   │   ├── 📊 results/            # Analysis Results Display\n│   │   │   │   └── 💬 chatbot/            # AI Chatbot Interface\n│   │   │   ├── 🔧 services/               # Angular Services\n│   │   │   └── 📝 models/                 # TypeScript Interfaces\n│   │   └── 🎨 assets/                     # Static Assets\n│   └── 📦 package.json\n├── ⚙️ backend/                     # NestJS Application\n│   ├── 📂 src/\n│   │   ├── 📂 resume/                     # Resume Analysis Module\n│   │   │   ├── 🎮 resume.controller.ts\n│   │   │   ├── 🔧 resume.service.ts\n│   │   │   └── 📦 resume.module.ts\n│   │   ├── 🤖 services/\n│   │   │   └── 🧠 ai.service.ts           # Gemini AI Integration\n│   │   └── 🛠️ utils/\n│   │       └── 📄 file-parser.util.ts     # File Processing Utilities\n│   └── 📦 package.json\n├── 📖 README.md\n├── 🚫 .gitignore\n└── 📄 LICENSE\n```\n\n\n---\n\n## 🎮 **Usage Examples \u0026 Screenshots**\n\n### 1️⃣ **Upload Resume**\n```\n📄 Select your resume file (PDF, DOC, DOCX)\n📝 Paste the job description  \n🚀 Click \"Analyze Resume\"\n⏳ Wait for AI analysis (typically 10-15 seconds)\n```\n\n### 2️⃣ **View Results**\n```\n📊 Get detailed match score and visual analytics\n💪 Review strengths and improvement areas\n🔍 Check keyword analysis and gap identification\n📈 See priority-ranked recommendations\n```\n\n### 3️⃣ **Chat with AI**\n```\n💬 Click \"Ask Questions\" button\n❓ Ask specific questions like:\n   • \"Why did I get this match score?\"\n   • \"How can I improve my technical skills section?\"\n   • \"What should I focus on first?\"\n   • \"Can you explain the missing keywords?\"\n```\n\n---\n\n## 🔐 **Environment Setup**\n\nCreate `.env` file in backend directory:\n\n```env\n# 🔑 Required - Get from Google AI Studio\nGEMINI_API_KEY=your_gemini_api_key_here\n\n# ⚙️ Optional Configuration\nPORT=3000\nNODE_ENV=development\nMAX_FILE_SIZE=10485760  # 10MB in bytes\nALLOWED_FILE_TYPES=pdf,doc,docx\nCORS_ORIGIN=http://localhost:4200\n\n# 📊 Rate Limiting (Optional)\nRATE_LIMIT_WINDOW=15  # minutes\nRATE_LIMIT_MAX=100    # requests per window\n```\n\n---\n\n\n### **Development Workflow**\n```bash\n# 1️⃣ Fork the repository\ngit clone https://github.com/YOUR_USERNAME/resume-screening.git\n\n# 2️⃣ Create feature branch\ngit checkout -b feature/amazing-feature\n\n# 3️⃣ Make your changes\n# ... code changes ...\n\n# 4️⃣ Commit changes\ngit commit -m '✨ Add amazing feature'\n\n# 5️⃣ Push to branch\ngit push origin feature/amazing-feature\n\n# 6️⃣ Open Pull Request\n```\n\n### **Code Style Guidelines**\n- 🎯 Use TypeScript for type safety\n- 📝 Follow Angular/NestJS conventions\n- 🧪 Write tests for new features\n- 📖 Update documentation\n- 🚀 Ensure responsive design\n\n---\n\n## 🙏 **Acknowledgments**\n\n\u003cdiv align=\"center\"\u003e\n\n**Special thanks to the amazing open-source community and tools that make this project possible:**\n\n| **🤖 AI \u0026 ML** | **🛠️ Frameworks** | **☁️ Services** |\n|:---:|:---:|:---:|\n| [Google Gemini AI](https://ai.google.dev) | [Angular](https://angular.io) | [GitHub](https://github.com) |\n| Machine Learning Community | [NestJS](https://nestjs.com) | [npm](https://npmjs.com) |\n| Open Source AI Models | [TypeScript](https://typescriptlang.org) | [Node.js](https://nodejs.org) |\n\n\u003c/div\u003e\n\n**Response Time:** Usually within 24 hours ⚡\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## 🌟 **Show Your Support**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalu2003%2Fresume-screener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalu2003%2Fresume-screener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalu2003%2Fresume-screener/lists"}