A comprehensive AI-powered career development platform built with Next.js 15, featuring resume building, cover letter generation, interview preparation, and personalized industry insights.
- AI Resume Builder - Create professional, ATS-optimized resumes with AI assistance
- Cover Letter Generator - Generate tailored cover letters for specific job applications
- Interview Preparation - Practice with AI-generated interview questions specific to your industry
- Industry Insights Dashboard - Get real-time salary data, market trends, and skill recommendations
- User Onboarding - Personalized experience based on your industry and experience level
- Secure authentication with Clerk
- Protected routes and API endpoints
- User profile management
- Modern, responsive design with Tailwind CSS
- Dark mode support with next-themes
- Beautiful UI components with Shadcn UI
- Smooth animations and transitions
- Google Gemini AI for intelligent content generation
- Personalized industry insights
- Smart resume and cover letter suggestions
- Adaptive interview questions
- Framework: Next.js 15.1.4 (App Router + Turbopack)
- UI Library: React 19
- Styling: Tailwind CSS 3.4
- UI Components: Shadcn UI (Radix UI primitives)
- Forms: React Hook Form + Zod validation
- Markdown: React Markdown + MD Editor
- Charts: Recharts
- Icons: Lucide React
- Database: PostgreSQL (Neon DB)
- ORM: Prisma 6.2.1
- Authentication: Clerk
- AI: Google Generative AI (Gemini 1.5 Flash)
- Background Jobs: Inngest
- API: Next.js Server Actions
- Language: JavaScript (with JSConfig)
- Linting: ESLint 9 + Next.js config
- Package Manager: npm
- Version Control: Git
Before you begin, ensure you have:
- Node.js 18+ installed
- npm or yarn package manager
- A Neon DB account (free tier available)
- A Clerk account (free tier available)
- A Google AI Studio account for Gemini API (optional)
git clone https://github.com/echoAbhinav/Senpai.git
cd Senpainpm installCreate a .env.local file in the root directory:
# Database (PostgreSQL - Neon DB)
DATABASE_URL="your_neon_database_url"
# Clerk Authentication
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
# Google Gemini AI API Key (Optional - uses mock data if not provided)
GEMINI_API_KEY=your_gemini_api_keyAlso create a .env file for Prisma CLI:
DATABASE_URL="your_neon_database_url"Run Prisma migrations to set up your database:
# Deploy migrations
npx prisma migrate deploy
# Generate Prisma client
npx prisma generatenpm run devOpen http://localhost:3000 in your browser.
- Go to neon.tech and sign up
- Create a new project
- Copy your connection string
- Add it to both
.env.localand.envfiles
- Visit clerk.com and create an account
- Create a new application
- Copy your publishable key and secret key
- Add them to
.env.local - Configure sign-in/sign-up URLs in Clerk dashboard
- Go to Google AI Studio
- Sign in with your Google account
- Create a new API key
- Add it to
.env.local
Note: The app works without Gemini API key by using default mock data for industry insights.
Senpai/
βββ actions/ # Server actions
β βββ cover-letter.js
β βββ dashboard.js
β βββ interview.js
β βββ resume.js
β βββ user.js
βββ app/ # Next.js app directory
β βββ (auth)/ # Authentication routes
β βββ (main)/ # Main app routes
β βββ api/ # API routes
β βββ lib/ # App-specific utilities
βββ components/ # Reusable components
β βββ ui/ # Shadcn UI components
β βββ ...
βββ data/ # Static data
βββ hooks/ # Custom React hooks
βββ lib/ # Utilities and configs
βββ prisma/ # Database schema & migrations
βββ public/ # Static assets
- Rich markdown editor for resume content
- Real-time preview
- Export to PDF functionality
- ATS score and feedback (with AI)
- Template-based generation
- Job-specific customization
- Company and role information
- Multiple cover letters per user
- Industry-specific questions
- Multiple choice format
- Performance tracking
- Detailed analytics and improvement tips
- Real-time salary ranges by role
- Market growth rates
- Top in-demand skills
- Industry trends and outlook
- Personalized skill recommendations
# Development
npm run dev # Start dev server with Turbopack
# Production
npm run build # Build for production
npm start # Start production server
# Database
npx prisma migrate dev # Create and apply migrations
npx prisma migrate deploy # Deploy migrations
npx prisma generate # Generate Prisma client
npx prisma studio # Open Prisma Studio
# Linting
npm run lint # Run ESLint- Ensure DATABASE_URL is correct in both
.envand.env.local - Check that Neon DB instance is running
- Verify network connectivity
- Verify API keys are correct
- Check that redirect URLs are properly configured
- Ensure environment variables are loaded
- Clear
.nextfolder:rm -rf .next - Delete
node_modulesand reinstall:rm -rf node_modules && npm install - Run
npx prisma generateto regenerate Prisma client
Abhinav
- GitHub: @echoAbhinav
- Built with Next.js
- UI components from Shadcn UI
- Authentication by Clerk
- Database hosted on Neon
- AI powered by Google Gemini
Made with β€οΈ by Abhinav