A modern, ATS-friendly resume builder and fixer web application powered by AI.
- 📝 Resume Builder - Create professional resumes with a multi-step form wizard
- 🔧 Resume Fixer - Upload existing resumes and get AI-powered improvement suggestions
- 📊 ATS Analysis - Get detailed ATS compatibility scores and recommendations
- 💾 Multiple Export Formats - Download as PDF, DOCX, or CSV
- 🎨 Modern UI - Dark theme with smooth animations
- 🔐 User Accounts - Save and manage multiple resumes (with Supabase)
- 🤖 AI-Powered - Content suggestions powered by Gemini AI
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: TailwindCSS v4
- Animations: GSAP + Lenis
- Backend: Supabase
- AI: Google Gemini
- Deployment: Vercel-ready
- Node.js 18+
- npm or pnpm
-
Clone the repository:
git clone https://github.com/yourusername/resumefixer.git cd resumefixer -
Install dependencies:
npm install
-
Create a
.env.localfile with your API keys:# Supabase Configuration NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # Gemini AI Configuration NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
src/
├── app/ # Next.js App Router pages
│ ├── page.tsx # Landing page
│ ├── builder/ # Resume builder
│ ├── fixer/ # Resume fixer
│ └── dashboard/ # User dashboard
├── components/
│ ├── ui/ # Reusable UI components
│ ├── layout/ # Header, Footer
│ ├── builder/ # Builder-specific components
│ └── fixer/ # Fixer-specific components
├── lib/
│ ├── ai/ # Gemini AI integration
│ ├── supabase/ # Supabase client & auth
│ ├── export/ # PDF, DOCX, CSV generators
│ ├── animations/ # GSAP utilities
│ └── utils.ts # Helper functions
└── types/ # TypeScript type definitions
| Variable | Description |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Your Supabase anonymous key |
NEXT_PUBLIC_GEMINI_API_KEY |
Your Google Gemini API key |
- Create a new project at supabase.com
- Create a
resumestable with the following schema:
create table resumes (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade,
name text not null,
data jsonb not null,
ats_score integer,
template text default 'professional',
created_at timestamp with time zone default timezone('utc'::text, now()),
updated_at timestamp with time zone default timezone('utc'::text, now())
);
-- Enable RLS
alter table resumes enable row level security;
-- Create policies
create policy "Users can view own resumes" on resumes
for select using (auth.uid() = user_id);
create policy "Users can insert own resumes" on resumes
for insert with check (auth.uid() = user_id);
create policy "Users can update own resumes" on resumes
for update using (auth.uid() = user_id);
create policy "Users can delete own resumes" on resumes
for delete using (auth.uid() = user_id);- Push your code to GitHub
- Import the project to Vercel
- Add your environment variables in Vercel dashboard
- Deploy!
The project is pre-configured for Vercel deployment with optimal settings.
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
MIT License - feel free to use this project for personal or commercial purposes.
Contributions are welcome! Please open an issue or submit a pull request.
Built with ❤️ using Next.js, TailwindCSS, and Gemini AI.