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.
- 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)
- 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
- Language: Go 1.21+
- Framework: Gin (HTTP router)
- Database: MongoDB
- AI: OpenAI GPT-4 API
- Auth: OAuth 2.0 with JWT tokens
- Development: Docker Compose
- Production: AWS EKS (future)
- Storage: MongoDB Atlas (cloud) or local MongoDB
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
- Node.js: v18+ and npm
- Go: v1.21+
- MongoDB: v6.0+ (local or MongoDB Atlas)
- OpenAI API Key: Get from OpenAI Platform
- Google OAuth Credentials: Get from Google Cloud Console
- Clone the repository:
cd /Users/arnayshukla/Desktop/Repositories/resumeit- Backend Setup:
cd backend
cp .env.example .env
# Edit .env with your credentials
go mod downloadFor deployment (e.g., Railway), keep secrets in platform environment variables.\n+See OPERATIONS.md.
- Frontend Setup:
cd frontend
npm install
cp .env.example .env.local
# Edit .env.local with your backend URLBackend:
cd backend
go run cmd/server/main.go
# Runs on http://localhost:8080Frontend:
cd frontend
npm start
# Runs on http://localhost:3000With Docker Compose:
docker-compose upResumeIt supports two storage providers:
-
Local Filesystem (Development):
STORAGE_PROVIDER=local STORAGE_PATH=./storage
-
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.
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.
-
Local MongoDB (Development):
MONGODB_URI=mongodb://localhost:27017 MONGODB_DATABASE=resumeit
-
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.
For full production deployment to AWS EKS with monitoring, CI/CD, and scaling:
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
- Landing Page β Click "Build Resume"
- Google Sign In β Authenticate
- 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
- Template Selection (3 options with rationale)
- Customization (drag-drop sections, colors, fonts)
- Generate & Download (PDF/JPG, ATS-friendly)
- Save Journey (stored for future edits)
- 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 policy:
SECURITY.md\n+- Privacy:PRIVACY.md\n+- Ops notes (rate limits, private R2 mode):OPERATIONS.md
{
"_id": "ObjectId",
"googleId": "string",
"email": "string",
"name": "string",
"picture": "string",
"credits": {
"daily": 2,
"lastReset": "date"
},
"createdAt": "date",
"updatedAt": "date"
}{
"_id": "ObjectId",
"userId": "ObjectId",
"status": "in_progress | completed",
"currentStage": "number",
"conversationHistory": [],
"collectedData": {
"personal": {},
"employment": [],
"projects": [],
"education": [],
"skills": []
// ...
},
"createdAt": "date",
"updatedAt": "date"
}{
"_id": "ObjectId",
"userId": "ObjectId",
"journeyId": "ObjectId",
"templateId": "string",
"customization": {},
"data": {},
"pdfUrl": "string",
"jpgUrl": "string",
"createdAt": "date"
}- Harvard Resume Template: Classic, widely accepted format
- Google Recruiter-Preferred: Modern, clean, ATS-optimized
- Impact-Focused Template: Emphasizes metrics and achievements
- 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)
- LinkedIn import
- Multi-language support
- Cover letter generation
- Job description analysis
- Real-time collaboration
- Browser extension for auto-fill
| 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) |
MIT License - See LICENSE file for details
This is a personal project. Contributions welcome via issues and pull requests.
Built with β€οΈ to help job seekers resume their career journey