Skip to content

πŸ“ Convert any resume to Jake's Resume template in one click!

License

Notifications You must be signed in to change notification settings

martin226/makeitjakes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Make It Jake's

A modern web application for converting any resume into Jake's Resume templateβ€”the industry standard for SWEs, built with Ruby on Rails backend and Remix.js frontend.

Try it now: https://jakesresu.me/

πŸš€ Features

  • Resume file upload and processing
  • LaTeX output generation
  • Modern, responsive UI
  • RESTful API architecture
  • Containerized deployment with Docker

πŸ› οΈ Tech Stack

Backend

  • Ruby on Rails API
  • Redis for job processing
  • Docker containerization

Frontend

  • Remix.js
  • TypeScript
  • Tailwind CSS
  • Vite

Infrastructure

  • Google Cloud Platform
  • Load Balancer configuration
  • CI/CD with Cloud Build

πŸ—οΈ Project Structure

.
β”œβ”€β”€ backend/           # Ruby on Rails API server
β”œβ”€β”€ frontend/          # Remix.js web application
β”œβ”€β”€ cloudbuild.yaml    # Cloud Build configuration
└── lb.yaml           # Load balancer configuration

🚦 Prerequisites

  • Node.js (v18 or higher)
  • Ruby (3.x)
  • Docker and Docker Compose
  • Redis

πŸ”§ Setup & Installation

Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    bundle install
  3. Start the Rails server:

    rails server

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

🐳 Docker Deployment

Both frontend and backend components can be run using Docker:

  1. Build the images:

    docker-compose build
  2. Start the services:

    docker-compose up

πŸš€ Cloud Deployment

The application is configured for deployment on Google Cloud Platform:

  1. Configure your GCP project and authenticate:

    gcloud auth login
    gcloud config set project [YOUR_PROJECT_ID]
  2. Deploy using Cloud Build:

    gcloud builds submit

πŸ”’ Environment Variables

Make sure to set up the following environment variables:

Backend (.env)

  • ANTHROPIC_API_KEY - Anthropic API key for resume processing
  • FIREWORKS_API_KEY - Fireworks Llama API key for resume processing
  • GEMINI_API_KEY - Gemini API key for resume processing
  • REDIS_URL - Redis connection URL
  • RAILS_ENV - Rails environment (development/production)
  • RAILS_LOG_TO_STDOUT - Enable logging to stdout in production
  • RAILS_SERVE_STATIC_FILES - Enable serving static files in production
  • RAILS_MASTER_KEY - Rails master key for decrypting credentials
  • SECRET_KEY_BASE - Rails secret key for production

Frontend (.env)

No environment variables required for local development. Production variables are handled through Cloud Run deployment.

Note: In production (Cloud Run), secrets are managed through GCP Secret Manager.

πŸ“ API Documentation

The backend provides RESTful API endpoints for resume processing:

  • POST /api/v1/resumes - Upload a resume file for processing

    • Accepts multipart form data with a file parameter
    • Returns a request_id for tracking the processing status
    • Rate limited to 5 requests per 15 minutes per IP
  • GET /api/v1/resumes/preview?request_id=<request_id> - Preview the processed resume

    • Returns PDF file for inline display
    • Caches the PDF for 1 hour after generation
  • GET /api/v1/status/events?request_id=<request_id> - Server-Sent Events (SSE) endpoint for real-time status updates

    • Streams processing status updates
    • Returns final result when processing is complete
    • Connection times out after 60 seconds
    • Results are cached for 1 hour after completion

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

πŸ“ Convert any resume to Jake's Resume template in one click!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published