Skip to content

Repository files navigation

ResumeIt 🎯

Sponsor

Resume Your Job Application Journey

An AI-powered interview prep + resume builder that uses voice-first, interview-style conversation to create professional, ATS-friendly resumes while helping you practice how you talk about your work.

🌟 Features

  • Voice-First Input: Speak naturally to build your resume (with text fallback)
  • AI-Driven Questions: GPT-4 powered intelligent follow-ups that act as interview prep
  • Progressive Stages: Structured data collection through clear stages
  • Multiple Templates: 3 professional templates (Harvard, Google Recruiter-Preferred, Modern ATS)
  • Customizable: Reorder, add/remove sections, customize colors and fonts
  • ATS-Friendly: Generate PDF/JPG resumes optimized for Applicant Tracking Systems
  • Resume Journeys: Save multiple versions, edit and regenerate
  • Credit System: Fair usage via configurable daily credits (MAX_JOURNEYS_PER_DAY)

πŸ—οΈ Architecture

Frontend

  • Framework: React 18 with TypeScript
  • Voice Input: Web Speech API (primary) + Text input (fallback)
  • State Management: React Context + Hooks
  • Styling: CSS Modules / Tailwind CSS
  • PDF Generation: html2pdf.js / jsPDF
  • Auth: Google OAuth 2.0

Backend

  • Language: Go 1.21+
  • Framework: Gin (HTTP router)
  • Database: MongoDB
  • AI: OpenAI GPT-4 API
  • Auth: OAuth 2.0 with JWT tokens

Infrastructure

  • Development: Docker Compose
  • Production: AWS EKS (future)
  • Storage: MongoDB Atlas (cloud) or local MongoDB

πŸ“ Project Structure

resumeit/
β”œβ”€β”€ frontend/                 # React TypeScript app
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ Landing/     # Landing page
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth/        # Google OAuth
β”‚   β”‚   β”‚   β”œβ”€β”€ Stages/      # Progressive disclosure stages
β”‚   β”‚   β”‚   β”œβ”€β”€ VoiceInput/  # Voice + text input component
β”‚   β”‚   β”‚   β”œβ”€β”€ Templates/   # Resume templates
β”‚   β”‚   β”‚   └── Editor/      # Template customization
β”‚   β”‚   β”œβ”€β”€ contexts/        # React contexts
β”‚   β”‚   β”œβ”€β”€ hooks/           # Custom hooks
β”‚   β”‚   β”œβ”€β”€ services/        # API services
β”‚   β”‚   β”œβ”€β”€ types/           # TypeScript types
β”‚   β”‚   └── utils/           # Utility functions
β”‚   └── public/
β”‚
β”œβ”€β”€ backend/                 # Go backend
β”‚   β”œβ”€β”€ cmd/
β”‚   β”‚   └── server/         # Main application entry
β”‚   β”œβ”€β”€ internal/
β”‚   β”‚   β”œβ”€β”€ auth/           # OAuth & JWT handling
β”‚   β”‚   β”œβ”€β”€ handlers/       # HTTP handlers
β”‚   β”‚   β”œβ”€β”€ middleware/     # HTTP middleware
β”‚   β”‚   β”œβ”€β”€ models/         # Data models
β”‚   β”‚   β”œβ”€β”€ repository/     # MongoDB repositories
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ ai/         # OpenAI integration
β”‚   β”‚   β”‚   β”œβ”€β”€ resume/     # Resume generation
β”‚   β”‚   β”‚   └── template/   # Template management
β”‚   β”‚   └── config/         # Configuration
β”‚   β”œβ”€β”€ pkg/
β”‚   β”‚   └── utils/          # Shared utilities
β”‚   β”œβ”€β”€ migrations/         # Database migrations
β”‚   └── templates/          # Resume templates (JSON)
β”‚
└── docker-compose.yml      # Local development setup

πŸš€ Getting Started

Prerequisites

Environment Setup

  1. Clone the repository:
cd /Users/arnayshukla/Desktop/Repositories/resumeit
  1. Backend Setup:
cd backend
cp .env.example .env
# Edit .env with your credentials
go mod download

For deployment (e.g., Railway), keep secrets in platform environment variables.\n+See OPERATIONS.md.

  1. Frontend Setup:
cd frontend
npm install
cp .env.example .env.local
# Edit .env.local with your backend URL

Running Locally

Backend:

cd backend
go run cmd/server/main.go
# Runs on http://localhost:8080

Frontend:

cd frontend
npm start
# Runs on http://localhost:3000

With Docker Compose:

docker-compose up

🌐 Production Deployment

Storage Configuration

ResumeIt supports two storage providers:

  1. Local Filesystem (Development):

    STORAGE_PROVIDER=local
    STORAGE_PATH=./storage
  2. AWS S3 (Production - Recommended):

    STORAGE_PROVIDER=s3
    S3_BUCKET_NAME=resumeit-prod-resumes
    S3_REGION=us-east-1
    AWS_ACCESS_KEY_ID=your_key
    AWS_SECRET_ACCESS_KEY=your_secret

See STORAGE_SETUP.md for complete S3 configuration guide.

Private bucket (recommended for R2)

For user resumes, the recommended posture is a private bucket.\n+The app serves resume previews/downloads via authenticated backend endpoints, so it does not require public object access.\n+If you set S3_PUBLIC_URL, the app may persist direct public URLs; otherwise it will avoid that.\n+See OPERATIONS.md.

Database Configuration

  1. Local MongoDB (Development):

    MONGODB_URI=mongodb://localhost:27017
    MONGODB_DATABASE=resumeit
  2. MongoDB Atlas (Production - Recommended):

    MONGODB_URI=mongodb+srv://user:pass@cluster0.xxxxx.mongodb.net/
    MONGODB_DATABASE=resumeit_prod

See MONGODB_SETUP.md for complete Atlas setup guide.

Complete Production Guide

For full production deployment to AWS EKS with monitoring, CI/CD, and scaling:

πŸ“– PRODUCTION_DEPLOYMENT.md

Key topics covered:

  • EKS cluster setup
  • S3 + CloudFront configuration
  • MongoDB Atlas with backups
  • CI/CD pipelines (GitHub Actions)
  • Monitoring (Prometheus, Grafana, CloudWatch)
  • SSL/TLS with ACM
  • Cost estimation & scaling strategy

🎯 User Flow

  1. Landing Page β†’ Click "Build Resume"
  2. Google Sign In β†’ Authenticate
  3. Progressive Stages:
    • Personal Info (name, email, phone, current/target role)
    • Employment History (AI asks follow-up questions)
    • Projects (Deep technical/impact questions)
    • Education, Skills, Certifications, Awards, etc.
    • Review & Edit
  4. Template Selection (3 options with rationale)
  5. Customization (drag-drop sections, colors, fonts)
  6. Generate & Download (PDF/JPG, ATS-friendly)
  7. Save Journey (stored for future edits)

πŸ€– AI Behavior

  • Professional Tone: Acts as an expert recruiter
  • Context-Aware: Questions adapt to user's field (tech, HR, analyst, etc.)
  • Interview Prep: Technical depth + impact/metrics questions
  • Structured Output: Extracts data in JSON format for resume generation

Security & privacy

πŸ“Š Database Schema

Users Collection

{
  "_id": "ObjectId",
  "googleId": "string",
  "email": "string",
  "name": "string",
  "picture": "string",
  "credits": {
    "daily": 2,
    "lastReset": "date"
  },
  "createdAt": "date",
  "updatedAt": "date"
}

ResumeJourneys Collection

{
  "_id": "ObjectId",
  "userId": "ObjectId",
  "status": "in_progress | completed",
  "currentStage": "number",
  "conversationHistory": [],
  "collectedData": {
    "personal": {},
    "employment": [],
    "projects": [],
    "education": [],
    "skills": []
    // ...
  },
  "createdAt": "date",
  "updatedAt": "date"
}

Resumes Collection

{
  "_id": "ObjectId",
  "userId": "ObjectId",
  "journeyId": "ObjectId",
  "templateId": "string",
  "customization": {},
  "data": {},
  "pdfUrl": "string",
  "jpgUrl": "string",
  "createdAt": "date"
}

🎨 Templates

  1. Harvard Resume Template: Classic, widely accepted format
  2. Google Recruiter-Preferred: Modern, clean, ATS-optimized
  3. Impact-Focused Template: Emphasizes metrics and achievements

πŸ” Security

  • OAuth 2.0 for authentication
  • JWT tokens for session management
  • Rate limiting on API endpoints
  • Input validation and sanitization
  • No voice recording storage (privacy-first)

πŸ“ˆ Future Enhancements

  • LinkedIn import
  • Multi-language support
  • Cover letter generation
  • Job description analysis
  • Real-time collaboration
  • Browser extension for auto-fill

πŸ› οΈ Tech Stack

Layer Technology
Frontend React 18, TypeScript, Web Speech API
Backend Go, Gin Framework
Database MongoDB
AI OpenAI GPT-4
Auth Google OAuth 2.0
Deployment Docker, AWS EKS (future)

πŸ“ License

MIT License - See LICENSE file for details

🀝 Contributing

This is a personal project. Contributions welcome via issues and pull requests.


Built with ❀️ to help job seekers resume their career journey

About

interview-style, voice-first prep + resume building

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages