Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

BuildMyResume - AI-Powered Resume & Portfolio Engineering Platform

React Vite Node.js Express MongoDB Cloudflare Groq AI License

BuildMyResume is an AI-powered resume and portfolio engineering platform, multi-version master resume manager, ATS resume optimization suite, and live web portfolio studio. It enables developers and professionals to maintain a protected Master Resume single source of truth, generate unlimited custom named resume versions, execute vector-matched RAG AI tailoring against job descriptions, and publish live web portfolios deployed globally to the Cloudflare Edge Network.


✨ Core Features & Microservices

1. 📄 Multi-Version Master Resume Manager (/dashboard/resumes)

  • Single Source of Truth: Protects one primary "Master Resume" (isPrimary: true) that serves as the non-deletable core baseline for all portfolio generation and career evidence.
  • Unlimited Named Custom Versions: Create targeted resume versions (e.g., "Frontend Engineer Version", "Backend SDE Version") that automatically clone full Master Resume data upon creation.
  • Isolated Editing & Auto-Sync: Modify individual bullet points, skill categories, education entries, and section ordering per version without altering the baseline Master Resume.
  • Live ATS PDF Preview: Real-time side-by-side ATS PDF compiler built on standard typography standards (Jake Resume style, Times New Roman, custom line height, font sizing, and page budget limits).
  • Version Management: Top header dropdown switcher with instant selection, non-deletable Master Resume badge protection, and custom version deletion with automatic fallback.

2. ⚡ Vector-Matched & RAG AI Tailoring (/dashboard/tailor)

  • Two-Stage RAG Pipeline:
    • Stage 1 (Vector Match & Evidence Retrieval): Evaluates job descriptions using vector embeddings and semantic similarity matching across all saved resume versions and user projects to retrieve top relevant evidence.
    • Stage 2 (LangChain + Groq Synthesis): Employs llama-3.3-70b-versatile via LangChain structured output chains to rewrite project bullets, optimize technical skill buckets, and insert high-impact ATS keywords while strictly preserving truthful claims.
  • Base Resume Profile Selector: Tailor directly from "⚡ Auto-Select Most Appropriate Resume (AI Vector Match)" or pick any specific named resume version.
  • ATS Keyword Density Analysis: Real-time match percentage calculation (Current vs. Projected ATS Score) and requirement breakdown.

3. 🌐 Portfolio Studio & Cloudflare Edge Publisher (/dashboard/portfolios)

  • Multi-Resume Data Aggregation: Aggregates projects, work experiences, education entries, skill categories, and achievements across MongoDB Project database models, Master Profile, and all saved Master Resume versions.
  • Item-Level Selection Checklists: Interactive checklists for all 5 career categories allowing users to explicitly grant or revoke inclusion (included: true/false) for every project, work experience, education item, and skill.
  • Section Rank & Display Order: Custom drag-and-drop / rank button controls for reordering section display priority (Summary, Experience, Projects, Skills, Education, Achievements).
  • Automated Vite Production Compiler & Cloudflare Deployment: Generates standalone Vite React portfolio source code, builds minified production dist assets, and deploys globally to Cloudflare Pages edge network with real-time status polling.
  • Live Publishing Banner & Page Lockdown: Displays real-time progress bar (0% to 100%), active build step readout, and elapsed timer, while locking down page interaction during active deployment to prevent state corruption.
  • GitHub Source Exporter: One-click GitHub export modal generating a standalone Vite React portfolio repository directly under the user's GitHub account using GitHub Personal Access Tokens.

4. 📁 Projects Hub (/dashboard/projects)

  • Showcase technical projects with tech stack tags, live demo URLs, GitHub repository links, and bullet points.
  • Auto-populates projects into Master Resume versions and portfolio generators.

5. ⚙️ Smart Onboarding & Profile Settings (/dashboard/settings, /onboarding)

  • Step-by-Step Onboarding: Guided workflow for profile setup, social handles (LinkedIn, GitHub), skill categorizations, education history, and work experience.
  • Profile Settings: Manage display name, avatar photo, headline, bio summary, and social links with AI description generation helpers.

6. 🛡️ Enterprise Security & Resilience

  • Firebase Token Auto-Refresh: Listens to onIdTokenChanged and features a self-healing apiRequest interceptor that automatically calls firebaseAuth.currentUser.getIdToken(true) to refresh expired tokens seamlessly without interrupting user sessions.
  • AI Rate-Limit (429) Handling: Detects Groq API quota and rate-limit pressures, throwing structured ApiError(429) responses that trigger clear 24-hour retry toast alerts ("Cannot perform AI actions right now as our backend servers are experiencing high pressure. Please try again after 24 hours.").
  • Mongoose Schema Resilience: Uses mongoose.Schema.Types.Mixed for flexible, error-free nested JSON resume data storage and state synchronization.

🏗️ System Architecture & Workflow

The following architecture diagram outlines the complete end-to-end data flow across client components, authentication layers, microservices, AI pipelines, database schemas, and edge deployment providers:

System Architecture (Click to Zoom & View High-Res)


🛠️ Technology Stack

Frontend

  • Core Framework: React 18, Vite 5, JavaScript (ES6+)
  • Styling & UI: TailwindCSS, Radix UI Primitives, Lucide Icons
  • Animations: Framer Motion
  • Authentication: Firebase Web Auth SDK
  • Notifications: Sonner Toasts

Backend

  • Runtime: Node.js v22 (ESM)
  • Web Framework: Express 4
  • Database: MongoDB & Mongoose ODM
  • AI & RAG Engine: Groq SDK (llama-3.3-70b-versatile), LangChain (@langchain/groq, @langchain/core)
  • Deployment & Source Control: Cloudflare Pages API, Octokit / GitHub REST API

📁 Repository Structure

BuildMyResume/
├── backend/                        # Express Node.js Backend Server
│   ├── src/
│   │   ├── app.js                  # Express Application Setup & Middleware
│   │   ├── index.js                # Server Entry Point & Database Connection
│   │   ├── config/                 # Environment Variables & Configuration
│   │   ├── controllers/            # Route Controllers
│   │   │   ├── ai.controller.js            # Two-Stage RAG AI Tailoring Handlers
│   │   │   ├── auth.controller.js          # Authentication & User Profile Handlers
│   │   │   ├── dashboard.controller.js     # Overview Dashboard Analytics & Stats
│   │   │   ├── master-resume.controller.js # Multi-Version Master Resume CRUD
│   │   │   ├── portfolio.controller.js     # Portfolio GitHub Export & Publishing
│   │   │   └── project.controller.js       # Projects Management Handlers
│   │   ├── models/                 # Mongoose Schemas
│   │   │   ├── master-resume.models.js     # Multi-Version Master Resume Schema
│   │   │   ├── portfolio.models.js         # Portfolio & ContentConfig Schema
│   │   │   ├── project.models.js           # User Project Schema
│   │   │   └── user.models.js              # User Profile Schema
│   │   ├── routes/                 # Express API Route Registries
│   │   └── services/               # Core Business Logic & Microservices
│   │       ├── deployToCloudflare.js       # Cloudflare Pages Direct Deployment Service
│   │       ├── generatePortfolio.js        # Vite Portfolio Source Code Generator
│   │       ├── github-export.service.js    # Octokit GitHub Repo Exporter
│   │       ├── groq.service.js             # Groq SDK Integration & Rate Limit Handling
│   │       ├── langchain-tailor.service.js # LangChain Structured Output Tailoring
│   │       ├── portfolio-build.service.js  # In-Memory Vite Build & Dist Compiler
│   │       ├── portfolioService.js         # Portfolio Publishing Pipeline
│   │       └── rag-tailor.service.js       # Vector Retrieval & Evidence Match Engine
│   └── package.json
│
└── frontend/                       # React Vite Frontend Web Application
    ├── src/
    │   ├── components/             # Reusable UI Components
    │   │   ├── resume/             # ATS Resume PDF Preview & Layout Engine
    │   │   └── ui/                 # Radix UI Component Library
    │   ├── contexts/               # React Context Providers (AuthContext, Theme)
    │   ├── lib/                    # API Utilities & Interceptors (apiRequest)
    │   ├── pages/                  # Top-Level Page Views
    │   │   ├── AiTailor.jsx        # RAG AI Resume Tailoring Studio
    │   │   ├── DashboardHome.jsx   # Overview Dashboard & Impact Stats
    │   │   ├── DashboardLayout.jsx # Authenticated App Shell & Sidebar
    │   │   ├── Landing.jsx         # Marketing Landing Page
    │   │   ├── OnboardingFlow.jsx  # Multi-Step Profile Setup Flow
    │   │   ├── Portfolios.jsx      # Portfolio Studio, Checklists & Publisher
    │   │   ├── Projects.jsx        # Projects Showcase Manager
    │   │   ├── Resumes.jsx         # Multi-Version Master Resume Studio
    │   │   └── SettingsPage.jsx    # User Profile & Preferences Settings
    │   ├── App.jsx                 # Client Routing Setup
    │   └── main.jsx                # Application Entry Point
    └── package.json

🚦 Getting Started

Prerequisites

  • Node.js: v18.0.0 or higher
  • MongoDB: Local MongoDB instance or MongoDB Atlas cluster URI
  • Firebase Project: Firebase Auth project with Google Sign-In enabled
  • Groq API Key: API key from Groq Console
  • Cloudflare Account: Cloudflare Account ID and API Token (for live portfolio deployments)

Installation & Local Setup

1. Clone the Repository

git clone https://github.com/your-username/BuildMyResume.git
cd BuildMyResume

2. Backend Setup

Navigate to the backend directory and install dependencies:

cd backend
npm install

Create a .env file in the backend directory:

PORT=8000
NODE_ENV=development
API_PREFIX=/api/v1
CORS_ORIGIN=http://localhost:5173

MONGODB_URI=mongodb://127.0.0.1:27017/buildmyresume

# Firebase Service Account Auth
FIREBASE_PROJECT_ID=your_firebase_project_id
FIREBASE_API_KEY=your_firebase_api_key
FIREBASE_STORAGE_BUCKET=your_project.firebasestorage.app
FIREBASE_SERVICE_ACCOUNT_JSON={"type": "service_account", ...}

# Groq AI Engine
GROQ_API_KEY=your_groq_api_key_here
GROQ_MODEL=llama-3.3-70b-versatile

# Cloudflare Pages Edge Deployment Config
CF_ACCOUNT_ID=your_cloudflare_account_id
CF_API_TOKEN=your_cloudflare_api_token

Start the backend dev server with hot reloading:

npm run dev

Backend server will run at: http://localhost:8000

3. Frontend Setup

Open a new terminal window, navigate to the frontend directory, and install dependencies:

cd frontend
npm install

Create a .env file in the frontend directory:

VITE_API_URL=http://localhost:8000/api/v1

# Firebase Auth Configuration
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id

Start the frontend Vite dev server:

npm run dev

Frontend app will run at: http://localhost:5173


🧪 Production Build & Verification

To verify that the application compiles cleanly for production:

# Build Frontend
cd frontend
npm run build

# Build Backend (if applicable)
cd ../backend
npm run build

📡 API Endpoint Reference

Method Endpoint Description
GET /api/v1/master-resumes Fetch all saved Master Resume versions for the authenticated user
POST /api/v1/master-resumes Create a new named custom version (auto-cloned from Master Resume)
PUT /api/v1/master-resumes/:id Update specific resume version data
DELETE /api/v1/master-resumes/:id Delete a custom resume version (Master Resume protected)
POST /api/v1/ai/tailor-rag Execute Two-Stage Vector RAG tailoring against a job description
GET /api/v1/portfolio/status/:jobId Poll portfolio compilation and Cloudflare deployment progress
POST /api/v1/portfolio/publish Queue portfolio source compilation & Cloudflare deployment
POST /api/v1/portfolio/github Export standalone portfolio source code repository to GitHub
GET /api/v1/dashboard/summary Fetch Overview dashboard statistics and active portfolio status
GET /api/v1/projects Fetch all user projects from MongoDB
POST /api/v1/projects Create a new user project entry

📜 License

This project is licensed under the MIT License.

About

AI-powered career platform — master profile, resume builder, job-tailored resumes, portfolio generator & Cloudflare Pages deployment. Built with React, Node.js, MongoDB, Firebase & Groq.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages