Parse resumes · Analyze job descriptions · Generate tailored applications · Track applications — all in one place.
CareerCopilot is a full-stack, AI-augmented career assistant that helps job seekers work smarter — not harder. It parses resumes, dissects job descriptions, and uses Google Gemini to generate personalized application materials tailored to each role.
The project integrates modern web technologies — a Next.js 16 frontend, Supabase-backed authentication and database layer, Prisma ORM, and a Gemini-powered AI pipeline — demonstrating end-to-end full-stack development skills with real-world AI integration.
🚧 Status: Feature-complete · Vercel deployment in final stage
| Feature | Description |
|---|---|
| 📄 Resume Parsing | Upload PDF or DOCX resumes; extract structured data using pdf-parse and mammoth |
| 🔍 JD Analysis | Paste any job description and get key skill, role, and requirement breakdowns |
| 🤖 AI Cover Letter Generation | Google Gemini generates tailored cover letters matching resume to JD |
| 📊 Match Score & Analytics | Visual charts (Recharts) showing how well a resume aligns to a given role |
| 📁 Application Tracker | Track job applications by status (applied / interviewing / offered / rejected) |
| 📤 PDF Export | Export AI-generated documents as polished PDFs via jspdf |
| 🔐 Secure Auth | Supabase SSR-compatible authentication with session management |
| 🌙 Dark Mode | Full light/dark theme support via next-themes |
- Next.js 16 (App Router) with React 19
- TypeScript 5 — fully typed codebase
- Tailwind CSS v4 + shadcn/ui — component library
- Framer Motion — page transitions and micro-animations
- Recharts — data visualization for match analytics
- Zustand — lightweight global state management
- React Hook Form + Zod — form validation with schema enforcement
- Supabase — PostgreSQL database + authentication (SSR-compatible)
- Prisma ORM — type-safe database client and migrations
- Google Gemini (
@google/genai) — LLM backbone for cover letter generation, JD parsing, resume feedback
pdf-parse— extract text from uploaded PDF resumesmammoth— parse DOCX files to structured contentjspdf— generate and export polished PDF documents@napi-rs/canvas— server-side canvas rendering
- ESLint (Next.js config) — code quality enforcement
- PostCSS — CSS processing pipeline
careercopilot/
├── prisma/ # Database schema and migrations
│ └── schema.prisma
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router pages and layouts
│ ├── components/ # Reusable UI components (shadcn/ui + custom)
│ ├── lib/ # Utility functions, Supabase client, AI helpers
│ └── store/ # Zustand global state
├── .gitignore
├── components.json # shadcn/ui config
├── next.config.ts
├── package.json
├── prisma.config.ts
└── tsconfig.json
- Node.js
>= 18 - A Supabase project (free tier works)
- A Google AI Studio API key for Gemini
git clone https://github.com/sidharth-vijayan/careercopilot.git
cd careercopilotnpm installCreate a .env.local file in the root:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
# Google Gemini
GOOGLE_GENERATIVE_AI_API_KEY=your_gemini_api_key
# Database (Supabase Postgres connection string)
DATABASE_URL=your_supabase_postgres_urlnpx prisma generate
npx prisma db pushnpm run devOpen http://localhost:3000 in your browser.
CareerCopilot is built to deploy on Vercel — Vercel deployment is currently in its final stage.
Once live, the deployment link will be added here.
To deploy your own instance:
- Push the repo to GitHub
- Import into Vercel
- Add all environment variables from
.env.localin the Vercel dashboard - Deploy
| Planned Enhancement | Description |
|---|---|
| 🐳 Dockerization | Containerize the full app for consistent local dev and self-hosting |
| ⚙️ CI/CD Pipeline | GitHub Actions workflows for lint, build checks, and auto-deploy on push to main |
| 🔔 Job Alert Notifications | Email/push notifications for application status changes |
| 🧠 Resume Improvement Suggestions | AI-powered resume feedback and bullet-point rewrites |
| 📊 Analytics Dashboard | Visual insights into application history and success rates |
| 🔗 LinkedIn / Job Board Integration | Scrape or import JDs directly from LinkedIn, Naukri, etc. |
| 🧪 Testing Suite | Unit and integration tests with Jest + Testing Library |
Contributions are welcome! Here's how to get started:
- Fork this repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request
Please follow the Conventional Commits standard for commit messages.
This project is open-source and available under the MIT License.
Built by Sidharth Vijayan
⭐ If you find this project useful, consider giving it a star!