-
Login Page
-
Feed Page
-
Opportunities Page
-
Applications Page
-
Launchpad
-
Resume Builder
-
Resume Preview
-
Cover Letter Generator
-
LinkedIn Optimizer
-
Skill Gap Analyzer
-
Email Templates AI generated templates of all types
-
Saved Opportunities
-
Profile Page
-
Conversations and Notifications Page
-
Employer Feed
-
Postings
-
Analytics Dashboard
-
Employer's Profile
-
Employer's Conversations and Notifications Page
-
Notifications Modal on both Dashboards
Inspiration
The modern job market is fundamentally broken. Job seekers spend 20+ hours per week applying to positions, often receiving no feedback. On the flip side, employers manually review hundreds of resumes per posting, with an estimated 75% being unqualified.
I experienced this frustration firsthand — sending applications into the void, never knowing why I wasn't selected, struggling to optimize my resume for ATS systems that rejected candidates before a human ever saw them.
The question became: What if AI could bridge this gap?
With the emergence of powerful language models like Google Gemini, I saw an opportunity to reimagine career navigation — not just as a job board, but as an intelligent career copilot that understands context, provides actionable feedback, and serves both sides of the hiring equation.
What I Learned
Technical Skills
- Genkit Framework — Building production-grade AI flows with type safety, observability, and easy model swapping
- Prompt Engineering — Crafting structured prompts that consistently extract meaningful information from LLMs
- Real-time Systems — Firebase Firestore subscriptions for live application tracking
- Email Automation — Resend integration for transactional notifications
AI/ML Concepts
- Semantic matching goes far beyond keyword matching — understanding relationships between skills (e.g., Python → Data Science)
- The importance of graceful degradation when AI services are unavailable
- Balancing model selection: Gemini Pro for complex reasoning, Gemini Flash for speed
Product Thinking
- Dual-sided platforms create network effects — the more employers use it, the more valuable it becomes for seekers, and vice versa
- Transparency builds trust — showing why a job was recommended matters as much as the recommendation itself
How I Built It
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ CareerCompass │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Frontend (Next.js 15) AI Engine (Genkit) │
│ ───────────────────── ────────────────── │
│ • React 18 + TypeScript • 17 Specialized Flows │
│ • Tailwind CSS • Gemini Pro / Flash │
│ • 67 UI Components • Structured Prompts │
│ • Framer Motion • Error Handling │
│ │
│ Backend (Firebase) External Services │
│ ────────────────── ───────────────── │
│ • Firestore (NoSQL) • Brevo (Email) │
│ • Auth (Google OAuth) • Cloudinary (Images) │
│ • Security Rules • Stripe (Payments) │
│ │
└─────────────────────────────────────────────────────────────────┘
Development Process
- Research Phase — Analyzed existing job platforms, identified pain points, studied ATS algorithms
- AI Flow Design — Defined 17 specialized flows covering the complete career journey
- Component Library — Built 67 reusable UI components with consistent design language
- Integration — Connected AI flows with real-time database and email automation
- Optimization — Achieved 95+ Lighthouse score through performance tuning
Key AI Flows
| Flow | Implementation |
|---|---|
| Candidate Ranking | Multi-factor scoring: skills match, experience alignment, availability |
| Resume Parser | Structured extraction from PDF/DOCX with validation scoring |
| ATS Optimizer | Keyword analysis against job descriptions with improvement suggestions |
| Interview Prep | Role-specific questions with company context and example answers |
Challenges I Faced
1. Balancing AI Quality vs. Speed
Problem: Gemini Pro provides better reasoning but is slower; Gemini Flash is fast but less nuanced.
Solution: Implemented a hybrid approach — use Flash for quick tasks (text enhancement, summaries) and Pro for complex reasoning (candidate ranking, skill analysis). Response times dropped from 4-5 seconds to under 1 second for simple operations.
2. Handling Unstructured Resume Data
Problem: Resumes come in countless formats with inconsistent structures.
Solution: Built a robust parsing pipeline with:
- Multi-format support (PDF, DOCX, TXT)
- Fallback mechanisms for partial extraction
- Confidence scoring to flag low-quality parses
3. Real-Time Updates at Scale
Problem: Keeping application statuses synchronized across job seekers and employers.
Solution: Leveraged Firebase Firestore's real-time subscriptions with debouncing to prevent excessive reads while maintaining sub-second update latency.
4. Email Deliverability
Problem: Transactional emails were hitting spam filters.
Solution: Configured proper SPF/DKIM records, used Brevo's reputation management, and optimized email templates for deliverability — achieving 99.2% delivery rate.
5. ATS Algorithm Accuracy
Problem: Different ATS systems use different matching algorithms.
Solution: Researched common ATS patterns and built a comprehensive scorer that evaluates:
$$ \text{ATS Score} = w_1 \cdot \text{Keywords} + w_2 \cdot \text{Format} + w_3 \cdot \text{Structure} + w_4 \cdot \text{Length} $$
Where \( w_1, w_2, w_3, w_4 \) are tuned based on industry research.
What's Next
- Video Interview Analysis — AI-powered mock interviews with feedback
- Skill Assessments — Interactive coding challenges and soft skill evaluations
- API Marketplace — Allow third-party integrations via public APIs
- Mobile App — Native iOS/Android experience
CareerCompass isn't just a project — it's my attempt to make job searching less painful for everyone.
Built With
- brevo
- cloudinary
- firebase-auth
- firebase-firestore
- framer-motion
- genkit
- google-gemini
- gsap
- lucide-react
- next.js
- radix-ui
- react
- react-hook-form
- recharts
- stripe
- tailwind-css
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.