Skip to content

RoboApply is an AI-powered job application platform that helps people tailor resumes, write cover letters, practice interviews, and manage applications.

Notifications You must be signed in to change notification settings

xsen215/Robo-Apply

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

RoboApply

Source code for roboapply.co — an AI-powered job application platform that helps job seekers tailor resumes, generate cover letters, practice interviews, and manage applications.


Overview

RoboApply is a full-stack web application that combines AI (Claude, OpenAI) with real-time voice (Deepgram) to offer:

  • AI Resume Tailoring — Tailor resumes to job descriptions with credit-based usage
  • Bulk & Single Resume Generator — Generate multiple tailored resumes from a job list
  • AI Cover Letters — Create and manage cover letters with templates
  • Resume Builder — Step-by-step resume creation with templates
  • Resume Score / Scan — AI-powered resume analysis and improvement tips
  • Interview Guide — Prepare for interviews with AI-generated Q&A
  • Live AI Interview Copilot — Real-time voice practice with Claude + Deepgram
  • Auto-Apply Dashboard — Track jobs and applications
  • Billing & Subscriptions — Stripe subscriptions, plans, and credit system

The project was developed in GitLab; the repository may have limited commit history but represents a production-ready application.


Tech Stack

Layer Technologies
Frontend React 18, Vite, TypeScript/JSX, React Router, Tailwind CSS, MUI, Ant Design, Zustand, Stripe (React), Socket.IO client, Recharts, react-pdf, docx, OneSignal
Backend Node.js, Express, MongoDB (Mongoose), Socket.IO, Stripe (webhooks & API), Anthropic (Claude), OpenAI, Deepgram (voice), AWS S3, Brevo (email), node-cron
Auth JWT, Google OAuth, LinkedIn OAuth (frontend)

Project Structure

├── frontend/                 # React SPA (Vite)
│   ├── src/
│   │   ├── api/              # API client & endpoints
│   │   ├── components/       # Shared UI components
│   │   ├── contexts/         # React contexts
│   │   ├── pages/            # Route pages (dashboard, resume, cover letter, interview, etc.)
│   │   ├── router/           # React Router setup & PrivateRoute
│   │   ├── stores/           # Zustand stores
│   │   ├── hooks/, utils/, layout/, extension/
│   │   └── public/
│   ├── vite.config.js
│   └── package.json
│
├── backend/                  # Express API server
│   ├── config/               # DB, env, AI config
│   ├── controllers/         # Request handlers (user, resume, stripe, interview, etc.)
│   ├── models/              # Mongoose models
│   ├── routes/              # API route modules
│   ├── services/            # Claude, resume session, etc.
│   ├── sockets/             # Deepgram & Claude Socket.IO handlers
│   ├── utils/               # Auth, Stripe, encryption, credit manager
│   ├── helpers/             # Email (Brevo), etc.
│   ├── index.js             # App entry, CORS, Socket.IO, Stripe webhook
│   └── package.json
│
└── README.md

Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • MongoDB (local or Atlas)
  • npm or yarn

1. Clone and install

git clone <repository-url>
cd -Robo-Apply

# Frontend
cd frontend && npm install && cd ..

# Backend
cd backend && npm install && cd ..

2. Environment variables

Backend (backend/.env):

Create a .env file in backend/ with at least:

# Server
NODE_ENV=development
PORT=3001

# Database
DB_URL=mongodb://localhost:27017
DB_NAME=roboapply

# Auth
JWT_SECRET=your-jwt-secret

# Stripe (required for billing)
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Optional: ENCRYPTION_MASTER_KEY for encrypted Stripe key (see backend/STRIPE_KEY_ENCRYPTION_GUIDE.md)

# AI (for resume/cover letter/interview features)
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
# Optional: ANTHROPIC_MODEL, ANTHROPIC_MAX_TOKENS

# Voice (for Live Interview Copilot)
DEEPGRAM_API_KEY=...
# Optional: DEEPGRAM_MODEL, DEEPGRAM_LANGUAGE, etc. (see backend/config/env.js)

# Email (Brevo)
BREVO_API_KEY=...
BREVO_SENDER=...
BREVO_SENDER_NAME=...
BREVO_SENDER_EMAIL=...

# AWS (if using S3)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_BUCKET=...

Frontend (frontend/.env or .env.local):

Point to your backend and any public keys (e.g. Stripe publishable key, Google OAuth client ID). Example:

VITE_API_BASE_URL=http://localhost:3001
VITE_STRIPE_PUBLISHABLE_KEY=pk_...

Adjust variable names if your frontend uses different env prefixes (e.g. REACT_APP_ or custom names in vite.config.js).

3. Run locally

Terminal 1 – backend

cd backend
npm start

Uses nodemon by default; server runs on PORT (e.g. http://localhost:3001). Socket.IO and Stripe webhook are mounted on the same server.

Terminal 2 – frontend

cd frontend
npm run dev

Vite dev server (e.g. http://localhost:5173). Ensure CORS in backend/index.js allows your frontend origin (e.g. http://localhost:5173).

4. Build for production

# Frontend
cd frontend && npm run build && cd ..

# Backend: run with node
cd backend && node index.js

Key Backend Features

  • Credit system — Free trial credits, plan-based limits, and per-feature costs. See backend/CREDIT_SYSTEM_DOCUMENTATION.md and backend/SMART_CREDIT_USAGE.md.
  • Stripe — Checkout, customer portal, webhooks. See backend/STRIPE_CHECKOUT_INTEGRATION.md, backend/STRIPE_CUSTOMER_PORTAL_SETUP.md.
  • Socketssockets/deepgram.socket.js (voice), sockets/claude.socket.js (interview copilot).
  • Cron — Trial checks and trial emails: trialCheckCron.js, trialEmailCron.js. Optional credit award cron is present in index.js but commented out (references awardCreditsToNewUser.js).

Documentation in Repo

Document Description
backend/CREDIT_SYSTEM_DOCUMENTATION.md Credit system overview and usage
backend/CREDIT_SYSTEM_TECHNICAL_GUIDE.md Technical credit implementation
backend/SMART_CREDIT_USAGE.md Smart credit usage and optimization
backend/STRIPE_CHECKOUT_INTEGRATION.md Stripe checkout integration
backend/STRIPE_CUSTOMER_PORTAL_SETUP.md Stripe customer portal
backend/STRIPE_KEY_ENCRYPTION_GUIDE.md Encrypting Stripe keys
backend/USER_ONBOARDING_API.md Onboarding API
frontend/src/pages/AIBulkResumeGenerator/README.md Bulk resume generator module

License

ISC (see backend/package.json). This is the source for the live product at roboapply.co. Hello from two people! Hello from two people!

About

RoboApply is an AI-powered job application platform that helps people tailor resumes, write cover letters, practice interviews, and manage applications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •