A full-stack AI-powered career coaching platform built with Next.js, featuring resume building, cover letter generation, interview preparation, and industry insights.
- AI-Powered Career Guidance: Personalized career advice using advanced AI technology
- Smart Resume Creation: Generate ATS-optimized resumes with AI assistance and scoring
- Cover Letter Generation: Create compelling cover letters tailored to job descriptions
- Interview Preparation: Practice with role-specific questions, get instant feedback, and track performance
- Industry Insights: Real-time industry trends, salary data, and market analysis
- User Dashboard: Comprehensive dashboard to track progress and manage career documents
- Onboarding Process: Professional onboarding to personalize user experience
- Authentication: Secure authentication using Clerk
- Frontend: Next.js 15, React 19, Tailwind CSS, Shadcn UI
- Backend: Next.js API Routes, Server Actions
- Database: PostgreSQL with Prisma ORM (hosted on Neon)
- Authentication: Clerk
- AI: Google Gemini API
- Background Jobs: Inngest
- Styling: Tailwind CSS with custom components
- Icons: Lucide React
- Charts: Recharts
- Forms: React Hook Form with Zod validation
- Node.js 18+
- npm or yarn
- PostgreSQL database (Neon recommended)
- Clerk account for authentication
- Google Gemini API key
-
Clone the repository:
git clone <repository-url> cd ai-career-coach
-
Install dependencies:
npm install
-
Set up the database:
- Create a Neon PostgreSQL database
- Run Prisma migrations:
npx prisma migrate deploy
-
Generate Prisma client:
npx prisma generate
Create a .env file in the root directory with the following variables:
DATABASE_URL=postgresql://username:password@host:port/database
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
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
GEMINI_API_KEY=your_gemini_api_keyDATABASE_URL: Connection string for your PostgreSQL database (Neon format)NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: Public key from your Clerk applicationCLERK_SECRET_KEY: Secret key from your Clerk applicationNEXT_PUBLIC_CLERK_SIGN_IN_URL: URL for sign-in pageNEXT_PUBLIC_CLERK_SIGN_UP_URL: URL for sign-up pageNEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL: Redirect URL after sign-inNEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL: Redirect URL after sign-upGEMINI_API_KEY: API key for Google Gemini AI
The application uses Prisma with PostgreSQL. The schema includes the following models:
- User: User profiles with skills, experience, and industry
- Resume: User resumes with ATS scoring and feedback
- CoverLetter: Generated cover letters for job applications
- Assessment: Interview quiz results and performance tracking
- IndustryInsight: Industry trends, salary data, and market analysis
To set up the database:
- Ensure your
DATABASE_URLis set in.env - Run migrations:
npx prisma migrate deploy
- Generate the Prisma client:
npx prisma generate
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser
-
For production build:
npm run build npm start
- Sign Up/Sign In: Create an account or sign in using Clerk authentication
- Onboarding: Complete your professional profile with industry and skills
- Dashboard: View your career progress and access all features
- Resume Builder: Create and optimize your resume with AI assistance
- Cover Letter Generator: Generate tailored cover letters for job applications
- Interview Preparation: Take practice quizzes and track your performance
- Industry Insights: Explore market trends and salary information
The application includes several API routes for background processing:
/api/inngest: Inngest webhook for background jobs (industry insights generation)
- Industry Insights Generation: Runs weekly to update industry trends and salary data using AI
ai-career-coach/
├── app/ # Next.js app directory
│ ├── (auth)/ # Authentication pages
│ ├── (main)/ # Main application pages
│ │ ├── dashboard/ # User dashboard
│ │ ├── resume/ # Resume builder
│ │ ├── interview/ # Interview preparation
│ │ └── ai-cover-letter/ # Cover letter generator
│ └── api/ # API routes
├── components/ # Reusable UI components
├── lib/ # Utility functions and configurations
├── prisma/ # Database schema and migrations
├── actions/ # Server actions
├── data/ # Static data files
└── public/ # Static assets
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting:
npm run lint
- Submit a pull request
This project is intended solely for academic and research purposes.
- UI components from Shadcn UI
- Icons from Lucide React
- AI powered by Google Gemini
Build with ❤️ by Jagrat Agrawal