- Project Overview
- Features
- Tech Stack
- Architecture & Components
- Installation & Setup
- Usage
- Database Schema
- Background Jobs & Workflows
- Configuration & Environment Variables
- Future Enhancements
- Contributing
- Contact
The SkillSync is a full-stack web application designed to guide users through the career development process with AI-driven insights and tools. From onboarding and industry analysis to resume generation, quizzes, and cover letters, this platform centralizes all aspects of career planning into an intuitive, personalized experience.
Key Objectives:
- Personalize career guidance based on user-selected industries and skills
- Automate resume and cover letter creation using Markdown and AI (Google Gemini)
- Provide interactive AI-generated quizzes to track learning progress
- Visualize industry trends and user performance with dynamic charts
- User Authentication & Profiles: Secure signup/login via Clerk, with customizable profile pages
- Onboarding Flow: Industry, sub-industry, and skill selection stored in PostgreSQL
- Industry Insights: AI-curated market outlooks, salary trends, trending jobs, and recommended skills (charts powered by Shadcn)
- Resume Builder: Markdown-driven resume templates, real-time preview, customization, and PDF download
- AI Quiz Module: Dynamic multiple-choice quizzes, automated scoring, and performance tracking over time
- Cover Letter Generator: AI-generated, role- and company-specific cover letters (powered by Google Gemini), stored and editable
- User Dashboard: Central hub displaying insights, resume, quiz history, and cover letters
| Layer | Technology |
|---|---|
| Frontend Framework | Next.js |
| UI Components | Shadcn (Tailwind CSS) |
| Authentication | Clerk |
| Background Jobs | Inngest |
| ORM & Database | Prisma & PostgreSQL |
| AI & Language Model | Google Gemini API |
| Hosting & Deployment | Vercel (Next.js) |
-
Next.js Client & Server
- Server-side rendering for SEO and performance
- API routes for backend logic and data operations
-
Clerk
- User authentication, sessions, and profile management
- Prebuilt React components and hooks
-
Prisma & PostgreSQL
- Data models: User, IndustryPreference, ResumeData, QuizResult, CoverLetter, Skill
- Easy migrations and type-safe queries
-
Inngest
- Background workflows (quiz scoring, cover letter generation)
-
AI Integrations
- Google Gemini prompts for quizzes and cover letters
-
Clone the repository
git clone https://github.com/your-username/ai-career-coach.git cd ai-career-coach -
Install dependencies
npm install
-
Configure environment variables Create a
.env.localfile:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= your_publishable_key_clerk CLERK_SECRET_KEY= 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 DATABASE_URL= postgresql_database_url DIRECT_URL= postgresql_direct_url GEMINI_API_KEY= your_gemini_key
-
Run database migrations
npx prisma migrate dev --name init
-
Start development server
npm run dev
- Onboarding: Navigate to
/onboardingto set industry preferences - Dashboard: Visit
/dashboardfor personalized charts and insights - Resume: Go to
/resumeto build, preview, customize, and download your resume - Interview (Quizzes): Access
/interviewfor AI-generated quizzes and performance tracking - Cover Letter: Open
/ai-cover-letterto generate and manage cover letter drafts
model User {
id String @id @default(cuid())
email String @unique
clerkId String @unique
preferences Preference[]
resumeData ResumeData?
quizResults QuizResult[]
coverLetters CoverLetter[]
createdAt DateTime @default(now())
}
// ... other models (Assessment, , IndustryInsight, CoverLetter, Resume)- Quiz Workflow: Generates quiz questions via Gemini, scores submissions, and updates
QuizResult - Cover Letter Workflow: Sends prompts to Gemini, saves generated cover letter
- Resume PDF Generation: Converts markdown resume to PDF on demand
| Variable | Description |
|---|---|
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Clerk frontend publishable key |
CLERK_SECRET_KEY |
Clerk backend secret key |
NEXT_PUBLIC_CLERK_SIGN_IN_URL |
Path for sign-in page |
NEXT_PUBLIC_CLERK_SIGN_UP_URL |
Path for sign-up page |
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL |
Redirect after sign-in |
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL |
Redirect after sign-up |
DATABASE_URL |
Primary Neon Postgres connection string |
DIRECT_URL |
Direct Neon Postgres connection string |
GEMINI_API_KEY |
Google Gemini API key |
- Connection pooling
- Built-in ATS scanning
- AI chatbot for career queries
- Real-time job board API integrations (LinkedIn, Indeed)
- LinkedIn profile auto-import
Contributions are welcome! Please open an issue or submit a pull request.
Developed by [Namra Vora] – [voranamra625@gmail.com]
GitHub: https://github.com/Vora-Namra
LinkedIn: https://www.linkedin.com/in/namra-vora/