Transform your career with AI-powered guidance, personalized coaching, and intelligent tools for professional success.
- Overview
- Features
- Tech Stack
- Architecture
- Getting Started
- Installation
- Environment Setup
- Database Setup
- Usage
- API Routes
- Project Structure
- Contributing
- Deployment
- License
AI Career Coach is a comprehensive full-stack web application that empowers job seekers and professionals to advance their careers through AI-powered tools and personalized guidance. The platform combines cutting-edge artificial intelligence with intuitive user experience to provide:
- Smart Resume Building with ATS optimization and AI feedback
- Intelligent Cover Letter Generation tailored to specific job applications
- Interactive Interview Preparation with mock interviews and performance analytics
- Industry Insights with real-time salary data and market trends
- Career Progress Tracking with personalized dashboards and goal setting
- Resume Builder: Create ATS-optimized resumes with AI suggestions and real-time feedback
- Cover Letter Generator: Generate personalized cover letters using Google Gemini AI
- Interview Simulator: Practice with AI-generated questions and receive performance insights
- Skill Assessment: Evaluate your technical and behavioral skills with detailed analytics
- Real-time Salary Data: Access current market rates across 50+ industries
- Market Trends: Stay updated with industry growth rates and demand levels
- Skill Recommendations: Discover trending skills and learning paths
- Career Insights: Get personalized recommendations based on your profile
- Modern UI: Beautiful, responsive interface built with Tailwind CSS and Shadcn UI
- Dark/Light Mode: Seamless theme switching for optimal user comfort
- Mobile-First: Fully responsive design that works on all devices
- Real-time Updates: Live data synchronization and instant feedback
- Secure Authentication: Powered by Clerk with social login options
- Data Protection: Enterprise-grade security for user information
- Role-based Access: Granular permissions and user management
- Session Management: Secure token-based authentication
- Next.js 15.1.4 - React framework with App Router
- React 19.0.0 - UI library with latest features
- Tailwind CSS 3.4.1 - Utility-first CSS framework
- Shadcn UI - Modern component library
- Lucide React - Beautiful icons
- React Hook Form - Performance forms with validation
- Recharts - Composable charting library
- Next.js API Routes - Serverless functions
- Prisma 6.16.1 - Next-generation ORM
- Neon PostgreSQL - Serverless PostgreSQL database
- Inngest - Background job processing
- Google Gemini AI - Advanced language model for content generation
- Clerk - User authentication and management
- TypeScript - Type-safe JavaScript
- ESLint - Code linting and formatting
- Zod - Schema validation
- Date-fns - Modern date utility library
graph TB
A[Client Browser] --> B[Next.js App Router]
B --> C[React Components]
C --> D[Shadcn UI]
B --> E[API Routes]
E --> F[Prisma ORM]
F --> G[Neon PostgreSQL]
E --> H[Gemini AI]
E --> I[Inngest Jobs]
B --> J[Clerk Auth]
K[Vercel Deployment] --> B
L[External APIs] --> E
- Server Components: Leveraging Next.js 15 server components for optimal performance
- Client Components: Strategic use of client-side rendering for interactive features
- Atomic Design: Modular component architecture for maintainability
- Repository Pattern: Clean data access layer with Prisma
- Event-Driven: Background processing with Inngest for heavy operations
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm or pnpm (recommended)
- Git
- PostgreSQL (or use Neon for cloud database)
-
Clone the repository
git clone https://github.com/x0lg0n/AI-Career-Coach.git cd AI-Career-Coach -
Install dependencies
# Using npm npm install # Using pnpm (recommended) pnpm install
Create a .env.local file in the root directory with the following variables:
# Database Configuration
DATABASE_URL="postgresql://username:password@localhost:5432/ai_career_coach"
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_your_clerk_publishable_key"
CLERK_SECRET_KEY="sk_test_your_clerk_secret_key"
# Clerk URLs
NEXT_PUBLIC_CLERK_SIGN_IN_URL="/sign-in"
NEXT_PUBLIC_CLERK_SIGN_UP_URL="/sign-up"
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL="/onboarding"
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL="/onboarding"
# Google Gemini AI
GEMINI_API_KEY="your_gemini_api_key"
# Inngest (optional for development)
INNGEST_EVENT_KEY="your_inngest_event_key"
INNGEST_SIGNING_KEY="your_inngest_signing_key"- Sign up at Clerk.dev
- Create a new application
- Copy the publishable and secret keys from the dashboard
- Go to Google AI Studio
- Create a new API key
- Enable the Generative AI API
- Sign up at Neon.tech
- Create a new database
- Copy the connection string
-
Generate Prisma Client
npx prisma generate
-
Run database migrations
npx prisma migrate dev
-
Seed the database (optional)
npx prisma db seed
-
View your data with Prisma Studio
npx prisma studio
# Start the development server
npm run dev
# or
pnpm dev
# With Turbopack (faster)
npm run dev --turboOpen http://localhost:3000 to view the application.
# Build the application
npm run build
# Start the production server
npm start- Authentication: Sign up/in using Clerk
- Onboarding: Complete your profile setup
- Dashboard: View your career progress and insights
- Resume Builder: Create and optimize your resume
- Cover Letter Generator: Generate tailored cover letters
- Interview Prep: Practice with AI-powered mock interviews
- Industry Insights: Explore salary data and market trends
GET /api/auth/user- Get current user profilePOST /api/auth/onboard- Complete user onboarding
GET /api/resume- Fetch user resumePOST /api/resume- Create/update resumePOST /api/resume/analyze- Get ATS score and feedback
GET /api/cover-letters- List user cover lettersPOST /api/cover-letters- Generate new cover letterPUT /api/cover-letters/[id]- Update cover letterDELETE /api/cover-letters/[id]- Delete cover letter
GET /api/interviews/questions- Get interview questionsPOST /api/interviews/assess- Submit interview responsesGET /api/interviews/analytics- Get performance analytics
GET /api/industries- List all industriesGET /api/industries/[slug]- Get industry detailsGET /api/salary-data- Get salary information
ai-career-coach/
├── app/ # Next.js App Router
│ ├── (auth)/ # Authentication routes
│ │ ├── sign-in/
│ │ └── sign-up/
│ ├── (main)/ # Main application routes
│ │ ├── dashboard/
│ │ ├── resume/
│ │ ├── ai-cover-letter/
│ │ ├── interview/
│ │ └── onboarding/
│ ├── api/ # API routes
│ │ └── inngest/
│ ├── globals.css # Global styles
│ ├── layout.js # Root layout
│ └── page.js # Landing page
├── components/ # Reusable components
│ ├── ui/ # Shadcn UI components
│ ├── header.jsx
│ ├── hero.jsx
│ └── theme-provider.jsx
├── actions/ # Server actions
│ ├── cover-letter.js
│ ├── dashboard.js
│ ├── interview.js
│ ├── resume.js
│ └── user.js
├── data/ # Static data
│ ├── faqs.js
│ ├── features.js
│ ├── industries.js
│ └── testimonial.js
├── hooks/ # Custom React hooks
│ └── use-fetch.js
├── lib/ # Utility libraries
│ ├── inngest/
│ ├── checkUser.js
│ ├── prisma.js
│ └── utils.js
├── prisma/ # Database schema and migrations
│ ├── migrations/
│ └── schema.prisma
├── public/ # Static assets
└── package.json
We welcome contributions to the AI Career Coach project! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Test your changes
npm run test npm run lint - Commit your changes
git commit -m "Add amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Use TypeScript for type safety
- Follow ESLint configuration
- Use Prettier for code formatting
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
If you find a bug or have a feature request:
- Check existing issues first
- Create a detailed issue with reproduction steps
- Include screenshots or error messages
- Specify your environment (OS, browser, Node.js version)
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy with zero configuration
-
Build the application
npm run build
-
Set up production database
-
Configure environment variables
-
Deploy to your hosting platform
Ensure all environment variables are set in your production environment:
- Database URL (production)
- Clerk keys (production)
- Gemini API key
- Inngest keys (if using background jobs)
- Core Web Vitals: Optimized for perfect Lighthouse scores
- Image Optimization: Next.js Image component for optimal loading
- Bundle Analysis: Use
@next/bundle-analyzerfor optimization - Error Tracking: Integration ready for Sentry or similar tools
- Analytics: Built-in support for analytics platforms
Database Connection Issues
# Reset the database
npx prisma migrate reset
npx prisma generateAuthentication Problems
- Verify Clerk configuration
- Check environment variables
- Ensure redirect URLs are correct
AI API Issues
- Verify Gemini API key
- Check API quotas and limits
- Review error logs
- 📖 Documentation
- 💬 Discussions
- 🐛 Issues
- 📧 Email Support
This project is licensed under the MIT License - see the LICENSE file for details.
Siddhartha - Full Stack Developer
- GitHub: @x0lg0n
- LinkedIn: Siddhartha Kunwar
- Twitter: @Siddhar08958424
- Next.js Team for the amazing framework
- Vercel for seamless deployment
- Clerk for authentication solutions
- Google for Gemini AI capabilities
- Neon for serverless PostgreSQL
- Shadcn for beautiful UI components
- Open Source Community for inspiration and support
Made with ❤️ by Siddhartha
⭐ Star this repo if you find it helpful!
