Evaluate opportunities before applying. Apply smarter, not harder.
Features • Quick Start • Documentation • Architecture • Contributing
Resume Buddy is an AI-powered career decision engine that helps students and freshers evaluate jobs and internships before applying.
Students waste hours applying to jobs they're not ready for, leading to:
- ❌ Automatic rejections from ATS systems
- ❌ Demotivation from constant failures
- ❌ Unclear understanding of skill gaps
- ❌ No strategic career planning
Resume Buddy analyzes job/internship details + your skills & profile to provide:
- ✅ ATS Compatibility Score - Realistic assessment, not false hope
- ✅ Skill Gap Analysis - What's missing and why it matters
- ✅ Learning Roadmap - Prioritized steps to bridge gaps
- ✅ Application Decision - Apply Now / Prepare First / Skip
- ✅ Resume Improvement - Actionable enhancement suggestions
- ✅ Risk Indicators - Red flags and precautions
- ❌ Not a chatbot - No conversational AI
- ❌ Not a resume builder - Focuses on decision-making
- ❌ Not a job board - Analyzes opportunities you find
A career decision engine answering one clear question:
| Feature | Description |
|---|---|
| 📊 ATS Compatibility | Realistic scoring based on job requirements match |
| 🧩 Skill Gap Analysis | Identifies missing skills with priority levels |
| 🛣️ Learning Roadmap | Curated path to bridge gaps (what to learn first) |
| ✅ Smart Decisions | AI-powered Apply/Prepare/Skip recommendations |
| 📄 Resume Enhancement | Actionable improvement suggestions |
| Red flags and precautions before applying |
- 🧠 Google Gemini AI - Advanced decision-making engine
- 📦 Monorepo Architecture - Turborepo (apps + packages)
- 🔒 Secure Authentication - JWT + HTTP-only cookies
- 📄 Resume Parsing - PDF & DOCX support
- ☁️ Cloud Storage - AWS S3 integration
- ✅ Type-Safe - TypeScript + Zod validation
┌─────────────────────────────────────────────────────────┐
│ Resume Buddy System │
└─────────────────────────────────────────────────────────┘
┌──────────────┐
│ User │ Uploads Resume + Job Details
│ (Browser) │
└──────┬───────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ Express Server (Node.js + TS) │
│ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │
│ │ Controllers│→ │ Services │→ │ AI Engine │ │
│ └────────────┘ └────────────┘ └──────────────┘ │
└──────┬───────────────────┬───────────────┬──────────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MongoDB │ │ AWS S3 │ │ Gemini AI │
│ (Database) │ │(File Storage)│ │ (Google) │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ Structured JSON Response to Client │
│ {atsScore, skillGaps, recommendation, roadmap...} │
└──────────────────────────────────────────────────────┘
| Layer | Technology |
|---|---|
| Frontend | Static HTML5, CSS3 (Tailwind + Bootstrap), Vanilla JavaScript |
| Backend | Node.js 18+, Express 4.19, TypeScript 5.5 |
| AI Engine | Google Gemini Flash 1.5 (Structured Output) |
| Database | MongoDB 7.0+ with Mongoose 8.5 |
| Storage | AWS S3 (Resume files) |
| Validation | Zod schemas (Runtime + Compile-time) |
| Authentication | JWT + HTTP-only cookies + bcrypt |
| File Processing | Multer, pdf-parse, mammoth |
| Monorepo | Turborepo (apps + packages) |
resume-buddy/
│
├── apps/
│ └── server/ # Main Express server
│ ├── src/
│ │ ├── index.ts # Entry point
│ │ ├── app.ts # Express setup
│ │ ├── config/ # Configuration files
│ │ ├── routes/ # API routes
│ │ ├── controllers/ # Request handling
│ │ ├── services/ # Business logic
│ │ ├── middleware/ # Auth, error, multer middleware
│ │ ├── models/ # MongoDB models
│ │ ├── db/ # MongoDB connection
│ │ ├── types/ # TypeScript definitions
│ │ └── static/ # HTML / CSS / JS frontend
│
├── packages/
│ ├── ai-engine/ # Gemini-based AI engine
│ │ ├── client/
│ │ │ └── gemini.client.ts
│ │ ├── engine/
│ │ │ └── run.engine.ts
│ │ ├── operations/
│ │ │ ├── analyze.job.ts
│ │ │ ├── buildCareerProfile.ts
│ │ │ └── resume.extract.ts
│ │ └── prompts/
│ │ └── system.prompt.ts
│ │
│ ├── schemas/ # Zod schemas for validation
│ │ ├── api.ts
│ │ ├── user.schema.ts
│ │ ├── ai/ # AI-specific schemas
│ │ └── db/ # Database schemas
│ │
│ └── utils/ # Shared helpers
│ ├── apiError.ts
│ ├── asyncHandler.ts
│ ├── auth/
│ └── ai/
│
├── devcontainer/
│ └── docker-compose-local.yaml
│
├── docs/
│
├── .env.sample
├── package.json
├── turbo.json
├── tsconfig.base.json
└── README.md
- AI never returns free text
- AI always returns structured JSON
- UI contains zero AI logic
- Schemas are the single source of truth
- Gemini is treated as a decision engine, not a chatbot
This makes the system:
- ✅ Predictable
- ✅ Debuggable
- ✅ Scalable
- ✅ Production-ready
- Node.js 18+ and npm 10+
- MongoDB 7.0+ (local or Atlas)
- Google AI API Key (Get it here)
- AWS S3 Account (Sign up)
# 1. Clone the repository
git clone https://github.com/dev-rohit-gupta/resume-buddy.git
cd resume-buddy
# 2. Install dependencies
npm install
# 3. Setup environment variables
cp .env.sample apps/server/.env
# 4. Build packages
npm run build
# 5. Start development server
npm run devCreate apps/server/.env with these variables:
# Server Configuration
PORT=4000
NODE_ENV=development
# Database
MONGODB_URI=mongodb://localhost:27017/resume-buddy
# Or MongoDB Atlas: mongodb+srv://user:pass@cluster.mongodb.net/resume-buddy
# Google AI (Gemini)
GOOGLE_GENAI_API_KEY=your_gemini_api_key_here
# JWT Authentication
ACCESS_TOKEN_SECRET=your-super-secret-jwt-key-min-32-characters
ACCESS_TOKEN_EXPIRY=7d
# AWS S3 (File Storage)
AWS_S3_ACCESS_KEY_ID=your_aws_access_key_id_here
AWS_S3_SECRET_ACCESS_KEY=your_aws_secret_access_key_here
AWS_S3_BUCKET_NAME=your-s3-bucket-name
AWS_REGION=your-aws-region- 🎓 College Students - Planning internships and first jobs
- 👶 Freshers - Navigating early career decisions
- 🧑💻 Early-Career Developers - Strategic job hunting
- 📚 Career Switchers - Evaluating new opportunities
- 🚫 Mass resume spamming
- 🚫 Applying to everything without strategy
- 🚫 Expecting AI to write your resume
- 🚫 Looking for a chatbot conversation
- ✨ Thoughtful, strategic applications
- ✨ Understanding your readiness level
- ✨ Prioritizing skill development
- ✨ Making informed career decisions
1. 📝 Sign Up
└─ Upload your resume (PDF/DOCX)
└─ AI extracts your skills, projects, experience
2. 🎯 Find Opportunity
└─ Paste job/internship description
└─ Add optional details (location, experience level)
3. 🧠 AI Analysis
└─ Gemini AI processes your profile + job details
└─ Generates structured analysis (not free text)
4. 📊 Get Results
└─ ATS Score (0-100)
└─ Skill Gaps (Critical, Major, Minor)
└─ Learning Roadmap (Prioritized)
└─ Decision: Apply / Prepare / Skip
└─ Resume Improvements
└─ Risk Indicators
5. 💾 Track History
└─ View past analyses
└─ Monitor skill progress
└─ Compare opportunities
- Resume extraction (PDF/DOCX)
- Job opportunity analysis
- ATS compatibility scoring
- Skill gap detection
- Learning roadmap generation
- Career insights dashboard
- JWT authentication
- File upload (AWS S3)
- Resume auto-rewrite engine
- Job comparison dashboard (side-by-side)
- Skill progress tracking over time
- Multiple resume versions
- Company culture fit analysis
- Salary expectation insights
- Chrome extension for job sites
- Email notifications for opportunities
- LinkedIn profile integration
- GitHub activity analysis
- Mock interview preparation
- Referral matching system
- AI analysis quality depends on job description completeness
- Free Gemini API has rate limits (60 requests/min)
See Issues for current bugs and feature requests.
- Google Gemini AI - Powering intelligent decision-making
- MongoDB - Reliable data storage
- AWS S3 - Seamless file management
- Open Source Community - Inspiration and support
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: your-email@example.com
- 🌐 Website: resumebuddy.dev (coming soon)
This project is licensed under the MIT License - see the LICENSE file for details.
Resume Buddy is built on one core belief:
Don't apply blindly. Don't spam resumes.
✨ Apply less. Prepare better. Apply smarter. ✨
Made with ❤️ for students and freshers navigating their career journey
For detailed documentation, visit the docs/ directory.
- 🤖 AI Engine - Gemini integration and operations
- 📋 Schemas - Zod validation schemas
- 🛠️ Utils - Shared utilities and helpers
- 🎯 Opportunity Analysis - Job evaluation workflow
- 📄 Resume Extraction - PDF/DOCX parsing
- 📊 Career Insights - ATS signals and scoring
- 💾 Database - MongoDB models and queries
- 🔐 Authentication - JWT and security
- 📤 File Uploads - Multer and AWS S3
Contributions are welcome! Here's how to get started:
# Start development server
npm run dev
# Build project
npm run build
# Build CSS only
npm run build:css
# Watch CSS changes
npm run dev:css
# Format code
npm run format- Follow schema-first design
- Do not add chat-based features
- Keep AI output strictly structured
- Validate changes manually before submitting
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.