Setup
Resumatic — Technical Handoff Document
Overview
Resumatic is a web-based AI resume & interview coach. The buyer will receive clean, deployable code (Next.js + Node.js backend) with all API integrations documented.
---
1. Minimum Requirements to Run
Requirement Spec
Hosting Vercel (recommended), Netlify, or AWS
Database PostgreSQL (Supabase free tier works) or MongoDB Atlas
File storage AWS S3 or Cloudinary (for resume uploads)
Domain Custom domain (resumatic.com or similar)
Budget ~$50–100/month for MVP hosting + APIs
---
2. API Keys & Secrets Needed
The buyer must obtain the following API keys (free tiers available to start):
Service Purpose Free tier limit Sign-up link
OpenAI API GPT-4o mini for resume analysis + Q&A generation $5 free credit platform.openai.com
Stripe Payment processing ($9.99, $29/mo subscriptions) Free stripe.com
Supabase Database (user profiles, resumes, history) 500 MB free supabase.com
AWS S3 (optional) Resume file storage 5 GB free aws.amazon.com/s3
Resend (or SendGrid) Transactional emails (receipts, password reset) 3,000 emails/month free resend.com
Vercel Hosting + environment variables Free tier available vercel.com
Total monthly cost at 1,000 users: ~$30–50 (mostly OpenAI API usage)
---
3. Environment Variables (.env.local)
The buyer will create a .env.local file with these variables:
```env
# OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# Stripe
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxxxxx
# Database (Supabase)
SUPABASE_URL=https://xxxxxxxx.supabase.co
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# Email (Resend)
RESEND_API_KEY=re_xxxxxxxxxxxxxxxx
# File storage (AWS S3 - optional)
AWS_ACCESS_KEY_ID=AKIAxxxxxxxxxxxx
AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxx
AWS_S3_BUCKET_NAME=resumatic-resumes
AWS_REGION=us-east-1
# App URL
NEXT_PUBLIC_APP_URL=https://resumatic.com
# Security
JWT_SECRET=randomly_generated_32_char_string
```
---
4. Database Schema (SQL for Supabase/PostgreSQL)
The buyer runs this once:
```sql
-- Users table
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
stripe_customer_id VARCHAR(255),
subscription_status VARCHAR(50) DEFAULT 'free', -- free, premium, unlimited
created_at TIMESTAMP DEFAULT NOW()
);
-- Resumes table
CREATE TABLE resumes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
original_text TEXT,
optimized_text TEXT,
industry VARCHAR(100), -- healthcare, construction, IT
job_title VARCHAR(255),
created_at TIMESTAMP DEFAULT NOW()
);
-- Interview Q&As table
CREATE TABLE interviews (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
job_title VARCHAR(255),
question TEXT,
model_answer TEXT,
user_answer TEXT, -- for voice mock interviews
score INT, -- 1-100 for voice tier
created_at TIMESTAMP DEFAULT NOW()
);
-- Payments table
CREATE TABLE payments (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
stripe_payment_intent_id VARCHAR(255),
amount INT, -- in cents
status VARCHAR(50), -- succeeded, refunded
created_at TIMESTAMP DEFAULT NOW()
);
```
---
5. Deployment Steps (Buyer's Checklist)
Step Action Time
1 Sign up for Vercel (free) and connect GitHub 5 min
2 Create Supabase project, run the SQL schema above 10 min
3 Get OpenAI API key (platform.openai.com) 5 min
4 Get Stripe keys + configure webhook endpoint 15 min
5 Copy all environment variables into Vercel dashboard 10 min
6 Deploy from GitHub → Vercel (one-click) 5 min
7 Connect custom domain (resumatic.com) in Vercel 5 min
8 Set up Stripe webhook to point to https://resumatic.com/api/webhook 5 min
9 Test: run one resume analysis with a test Stripe payment 10 min
10 Go live —
Total setup time for technical buyer: ~60–90 minutes
---
6. Code Repository Structure (What Buyer Receives)
```
resumatic/
├── app/
│ ├── api/
│ │ ├── analyze-resume/ # OpenAI resume scanner
│ │ ├── generate-questions/ # Interview Q&A generator
│ │ ├── webhook/ # Stripe webhook handler
│ │ └── auth/ # Supabase auth
│ ├── dashboard/ # User account page
│ ├── payment/ # Checkout flow
│ └── page.tsx # Landing page
├── components/ # React components
├── lib/
│ ├── openai.ts # OpenAI client config
│ ├── stripe.ts # Stripe client config
│ └── supabase.ts # Database client
├── public/ # Static assets
├── .env.local # (excluded from git — buyer creates)
├── next.config.js
├── package.json
└── README.md # Full setup guide
```
---
7. Security Notes for Buyer
· Never commit .env.local to GitHub (already in .gitignore)
· Rotate all secrets if purchasing from a previous owner
· Set API rate limits (e.g., 10 resume analyses per user per day) to avoid OpenAI cost spikes
· Use Stripe webhook signature verification to prevent fake payment callbacks
---
8. First 30 Days After Acquisition
Week Action
1 Deploy MVP, test end-to-end, fix bugs
2 Launch Product Hunt + Reddit (r/resumes, r/jobsearchhacks)
3 Collect first 100 paying users via $9.99 pack
4 Email waitlist (built from landing page) and convert to $29/mo subs
---
9. What's NOT Included (Buyer Must Build Later)
· Voice-based mock interview (add ElevenLabs API — ~$11/month)
· White-label dashboard for bootcamps ($499/mo tier)
· Mobile app (iOS/Android)