AI-powered career OS β resumes, mock interviews, job tracking, portfolios, fellowships, GitHub intelligence and outreach, all in one full-stack platform.
Documentation Β· Discord Β· License: MIT Β· Built with β€οΈ by the Career Pilot community
Career Pilot is a full-stack, AI-first career operating system that turns job hunting from a chaotic, multi-tab slog into a single workflow. It's not a single-purpose resume builder β it's a unified platform that combines resumes, mock interviews, job search & tracking, portfolio publishing, GitHub intelligence, fellowships, paid challenges, community, outreach, and admin tooling behind one authenticated dashboard.
Powered by multi-provider AI (OpenAI, Anthropic Claude, Groq, Google Gemini, OpenRouter and a Bring-Your-Own-Key path), Career Pilot writes your resume, critiques it like an ATS, runs you through mock interviews with an avatar, tracks every job application on a kanban board, deploys a designer-grade portfolio to Netlify / Cloudflare Pages / GitHub Pages, parses your GitHub for risk and impact, and emails recruiters on your behalf β all from the same Express + React app.
It's modular by design: the Express backend exposes 30+ route groups, the React frontend has 50+ pages across feature hubs, and contributors can pick up good-first-issue tickets in any one of them without having to grok the rest of the system.
Career Pilot is organized into six tightly-integrated pillars. Each pillar ships its own UI hub, REST routes, AI services, and MongoDB models β and they share authentication, presence, notifications, and rate limiting.
| Pillar | What you get | |
|---|---|---|
| π | Resume Studio | AI-built resumes, 60+ templates, ATS scorer, drag-and-drop sections, text-to-resume, tailoring, translation, versions & sharing |
| π€ | Interview Sim | Audio + video mock interviews with an avatar interviewer, coding round (Monaco editor, executed against hidden tests), 14 languages, confidence meter, replay |
| πΌ | Jobs & Tracker | JSearch-powered search, drag-and-drop kanban tracker, scheduled email alerts, company research, JD summarizer, recruiter outreach & tracking |
| π¨ | Portfolio Studio | 250+ themes, AI content enhancer + extractor, deploy to Netlify / Cloudflare / GitHub Pages, custom domains, accessibility audit, SEO, GitHub sync |
| π§ | AI Career Tools | Cover-letter generator, email drafter (3 variants), LinkedIn optimizer, skill-gap analyzer, career-trajectory predictor, weekly digest |
| π | Community, Fellowships & GitHub Intel | Channels, posts, DMs, scheduled posts, paid fellowship challenges, Razorpay payouts, repo analyzer, project visualizer, CI/CD & dependency detection |
- Node.js 18+ and npm 10+ (or yarn / pnpm)
- MongoDB 6.0+ (local or Atlas)
- Redis 7.0+ (local, Upstash, or Memorystore)
- Firebase project (Authentication + Firestore)
- Optional: Cloudinary for media, OpenAI / Anthropic / Groq keys for AI features, RapidAPI for JSearch, Razorpay for fellowship payments, GitHub token for higher rate-limits
git clone https://github.com/anurag3407/career-pilot.git
cd career-pilot
# Install root, backend, and frontend deps
npm install
cd backend && npm install
cd ../frontend && npm install
cd ..# Backend
cp backend/.env.example backend/.env
# Edit backend/.env β set MONGODB_URI, REDIS_URL, OPENAI_API_KEY, RAPIDAPI_KEY,
# FIREBASE_PROJECT_ID, FIREBASE_SERVICE_ACCOUNT_PATH, FRONTEND_URL
# Frontend
cp frontend/.env.example frontend/.env
# Edit frontend/.env β set VITE_API_URL, VITE_FIREBASE_* keys# Terminal 1 β backend (Express on :5000)
cd backend
npm run dev
# Terminal 2 β frontend (Vite on :5173)
cd frontend
npm run devVisit http://localhost:5173 and sign up. Two-factor authentication, social login, and Firebase auth are wired in β registration takes one click.
docker compose up --buildThe included Docker-compose.yml builds the frontend, the backend, and pulls in MongoDB + Redis with health-checks so you can be running in a single command on Linux, macOS, or Windows.
After installation, the most-used workflows are:
# Resume
cd frontend && npm run dev # open /dashboard β "New Resume"
# AI: paste a job description into Enhance β ATS score + rewrite
# Mock interview
# Open /interview-prep β pick a role β speak or type answers
# Job tracker
# Open /jobs-hub β "Track" a job β drag across the kanban
# Portfolio
# Open /portfolio-hub β "New Portfolio" β pick a theme β DeployThe Hubs (/resume-hub, /jobs-hub, /portfolio-hub, /career-growth-hub, /community-hub) act as mission control β every tool you need for that pillar is one click away.
A complete resume authoring + analysis environment.
| Feature | Description |
|---|---|
| Visual Builder | Step-wizard with sections for Personal, Education, Experience, Projects, Skills, Certifications, Custom Sections. Drag-and-drop reorder with persistence. |
| 60+ Templates | From ClassicSerif and IvyLeague to TechMono, IDETheme, Glassmorphism, BrutalistBold, NeumorphismSoft, PhotoBanner, StockholmScandi, BerlinTwoCol β pick the one that matches your industry. |
| Text-to-Resume | Paste a wall of text (LinkedIn export, old bio, anything) and the AI structures it into a resume. See /text-to-resume. |
| AI Enhancement | Enhance.jsx runs a multi-pass critique: ATS scoring, achievement rewrites with action verbs, quantified-impact suggestions, tone analyzer, consistency checker. |
| Resume Tailor | Paste a job description β AI rewrites your resume to match keywords and rank for that specific role. |
| Resume Translator | Translate to 14 languages while preserving layout and section ordering. |
| ATS Scorer | Section-aware keyword matching with role dictionaries (software engineer, frontend, backend, data scientist, PM, designer, marketing, sales, HR, PM, etc.). Returns 0β100 with actionable feedback. |
| Versions & Compare | Every save snapshots a ResumeVersion. Diff two versions side-by-side, restore any prior snapshot. |
| Sharing & Comments | Generate a public link (/shared/:token) with optional expiry. Reviewers can leave inline comments without an account. |
| Resume β Portfolio Compare | Detects drift between your resume claims and your live portfolio content. |
| PDF Export | One-click export via jsPDF + html2canvas, paginated, print-ready. |
Routes: /dashboard, /resume-builder, /enhance, /resume-templates, /resume-view/:id, /shared/:token, /text-to-resume
Backend: routes/resume.js, routes/enhance.js, routes/collaboration.js, services/atsScorer.js, services/resumeJobMatcher.js, services/keywordOptimizer.js, services/pdfGenerator.js
A real interview, not a quiz.
| Feature | Description |
|---|---|
| Avatar Interviewer | 3D-animated interviewer with idle/active/listening states β built in AvatarInterviewer.jsx. |
| Audio + Video | Browser mic capture via VoiceToTextButton, video toggle, push-to-talk. Falls back gracefully on devices without a camera. |
| Speech-to-Text | Server-side transcription pipeline (transcribeAudio) uploads buffer to storage and returns text β so any candidate can answer verbally. |
| Coding Round | Lazy-loaded Monaco editor with syntax highlighting. Code is executed against hidden test cases (runCodeAgainstTests) and graded. |
| 14 Languages | English, Spanish, French, German, Italian, Portuguese, Dutch, Hindi, Japanese, Korean, Simplified Chinese, Arabic, Russian, Turkish β the AI gives feedback and ideal answers in your chosen language. |
| Company-Specific Bank | A curated QuestionBank model ships pre-vetted questions for top companies. AI generation fills the gaps. |
| Confidence Meter | Real-time audio analysis + answer-quality scoring β see how you sound under pressure. |
| Body Language Tips | Browser-side heuristics for posture, eye contact, and pace β actionable prompts mid-interview. |
| Replay | Every interview is saved (Interview.model.js) with question, your answer, ideal answer, and AI analysis. Replay any past attempt in /interview-history and /interview-replay/:id. |
| JD-Driven Questions | Drop in a job description URL or paste text β the parser extracts role / level / skills and generates a tailored loop. |
| Share Cards | Generate a poster-style image of your interview summary to share on LinkedIn. |
Routes: /interview-prep, /interview-history, /interview-replay/:id
Backend: routes/interview.js, services/interviewService.js, services/jdParser.service.js, models/Interview.model.js, models/QuestionBank.model.js
Find, organize, follow up β without losing a single application.
| Feature | Description |
|---|---|
| Job Search | Filters for title, location, salary, remote/on-site, recency. Backed by RapidAPI JSearch with a multi-source Scraper Registry (LinkedIn, Naukri, AngelList, RemoteOK) as a fallback when the API quota is exhausted. |
| Job Tracker | Drag-and-drop kanban: Saved β Applied β Interviewing β Offered β Rejected. Each card tracks company, role, link, notes, salary, status updates, and timeline. |
| Mobile Kanban | Swipe-friendly board for on-the-go status changes (MobileKanban.jsx). |
| Job Alerts | Define keyword + location + frequency; a BullMQ worker runs the query, dedupes, and emails matching roles. (jobFetcher.js, jobAlertQueue.js) |
| Smart Email Alerts | Open + click tracking via emailTracker.js + bounceHandler.js; unsubscribe links; weekly digest summary. |
| Company Research | Paste a company name β AI returns structured intelligence (size, funding, tech stack, culture, recent news) for interview prep. |
| JD Summarizer | One-line "what this job actually wants" + responsibility breakdown + must-have vs. nice-to-have skills. |
| Recruiter Outreach | /outreach β give it a company URL and it drafts 3 personalized cold emails using your resume + the company's open roles, then queues them. |
| Email Tracking | Open pixels + click redirects tell you which recruiter actually read your email. |
| Offline Tolerant | Status changes are queued locally (getQueuedStatusUpdates) and replayed when you're back online β track a job from the train. |
Routes: /job-search, /job-tracker, /job-alerts, /outreach
Backend: routes/jobsRoute.js, routes/jobTracker.js, routes/jobAlerts.js, routes/outreach.route.js, routes/emailTracking.js, services/jobFetcher.js, services/companyResearchService.js, services/jobSummarizer.js, services/scrapers/*, services/outreachQueue.js, services/weeklyDigestService.js
A working portfolio site in under a minute β themed, accessible, and live on your domain.
| Feature | Description |
|---|---|
| 250+ Themes | From Aurora_Sky to Cyberpunk, Cyber_Security_Red_Team, Magazine_Editorial, Liquid_Morph, Apple_Showcase, Spotify_Wrapped, Vercel_Deploy, IKEA_Assembly_Manual, Cyber_Security_Red_Team, Reddit_Whistleblower, Notion_Workspace, VS_Code_Theme, and many more β including tribute templates inspired by Delba, Dev Jadiya, Clyde D'Souza, and ChiragChrg. |
| AI Portfolio Extractor | Paste your resume β AI extracts structured data (hero, projects, skills, experience, education) β pre-fills the editor. |
| AI Content Enhancer | Section-by-section rewrites to sharpen your "About", tighten project descriptions, and humanize your tone. |
| Theme Selector + Color Customizer | Live preview with custom palette, fonts, and accent colors per section. |
| Resume β Portfolio Compare | Detects drift so your portfolio never contradicts your resume. |
| Section Editor | Reorder, hide, or duplicate hero / projects / about / skills / experience / education sections. |
| Social Links Editor | GitHub, LinkedIn, X, Email, Website β rendered as themed buttons. |
| Accessibility Audit | accessibilityChecker.js scores contrast, alt-text, ARIA, heading order, and keyboard traps; surfaces a per-page report. |
| Image Optimization | Sharp-based pipeline that resizes, re-encodes, and lazy-loads every asset. |
| One-Click Deploy | Push to Netlify, Cloudflare Pages, or GitHub Pages with the same UI. Custom slugs, deploy logs, and rollback are all in-app. |
| GitHub Sync | portfolioGitHubSync.js watches a connected repo, auto-rebuilds the portfolio on new commits, and pins your best work. |
| SEO | Auto-generated robots.txt, sitemap.xml, OpenGraph, and Twitter cards. |
| Screenshot Service | screenshotService.js uses a shared Puppeteer browser instance to generate social-share previews. |
| HTML Sanitization | Every user-pasted HTML block is sanitized through htmlSanitizer.js and threat-scanned before render. |
| Portfolio Versions | Snapshot every publish, roll back in one click. |
Routes: /portfolio-hub, /portfolio/:id, /deployments
Backend: routes/portfolio.js, services/portfolioTemplateEngine.js, services/portfolioGitHubSync.js, services/accessibilityChecker.js, services/screenshotService.js, services/imageOptimizer.js, services/deploy/{netlify,cloudflare,githubPages}Deployer.js, services/deploy/portfolioHtmlGenerator.js, services/ai/portfolioExtractor.js, services/ai/portfolioContentEnhancer.js
A bag of focused, deterministic AI utilities that compose with everything else.
| Tool | What it does |
|---|---|
| AI Resume Enhancer | Multi-pass rewrite of bullet points, with action verbs, quantified impact, and tone control. |
| ATS Scorer | Section-aware keyword density, role-specific dictionaries, 0β100 score with concrete fixes. |
| Resume β JD Matcher | Match score, missing skills, strengths, and tailored recommendation list. |
| Skill Gap Analyzer | Paste a JD β see what you're missing, get a personalized learning plan. |
| Career Trajectory Predictor | 3 career paths Γ 4 roles Γ 3 skills each, from your current role + skills. |
| Salary Estimator | Industry + experience + location β market salary band with reasoning. |
| Cover Letter Generator | Upload your resume PDF β AI extracts text β tone picker (formal / conversational / enthusiastic) β PDF-ready letter. |
| Cold Email Generator | 3 variants + 3 subject lines from your resume + a job description; pickable tone. |
| LinkedIn Optimizer | Section-by-section critique of your LinkedIn profile with a ScoreRing UI, copyable rewrites, and impact-tagged recommendations. |
| LinkedIn Headline Generator | Standalone generator powered by LinkedInHelper. |
| LinkedIn Dashboard | Importer, engagement analytics, and connection-tracking. |
| JD Summarizer | Compresses any job description into responsibilities / requirements / nice-to-haves / red flags. |
| Company Research | AI-driven company intelligence report. |
| Keyword Optimizer | Finds high-value keywords missing from your resume for a target role. |
| Weekly Digest | Personalized email of new jobs, alerts fired, interview stats, and application status. |
| Multi-Provider AI | aiProviders.js routes between OpenAI, Anthropic Claude, Groq, Gemini, OpenRouter. BYOK via extractAIProvider middleware. |
Routes: /enhance, /skill-gap, /cover-letter, /email-generator, /linkedin-optimizer, /linkedin-dashboard, /analytics
Backend: services/atsScorer.js, services/resumeJobMatcher.js, services/keywordOptimizer.js, services/coverLetterService.js, services/emailGeneratorService.js, services/linkedinOptimizerService.js, services/linkedinService.js, services/linkedinImporter.js, services/careerPathSuggester.js, services/salaryEstimator*, services/companyResearchService.js, services/jobSummarizer.js, services/weeklyDigestService.js, services/ai/*, services/anthropicChatService.js
The non-resume half of Career Pilot: where humans (and code) meet.
- Channels with member counts and unread badges
- Posts feed with rich text + image uploads, scheduled posts (
postScheduler.js) - Comments with like-toggle and threaded replies
- Direct Messages with online presence indicators
- Presence service via Socket.IO (
presenceService.js) β see who's online right now - Real-time updates through
socketServiceFirebase.js - Bull-Board UI at
/admin/queuesfor ops to watch queues live
- Browse Challenges (
/fellowship/challenges) across Design, Content, Development, Research, Marketing - Submit Proposals with budget and timeline
- Onboarding & Verification β email + 6-digit code with rate-limited attempts (
verifyCodeLimiter) - Chat Rooms scoped per challenge (
FellowshipChat) - Razorpay Payouts β proposals are funded via
paymentService.js(routes/payments.js): create order β user pays β signature verified β funds released - My Challenges / My Proposals β personal dashboards
- Repo Analyzer Workspace (
/repo-analyzer/workspace) β paste a GitHub URL, get a node-graph of files, dependencies, and complexity. Includes file drawer, chat panel, and interview mode where the AI quizzes you on the codebase. - Project Visualizer (
/project-visualizer) β architecture canvas, module inspector, language bar, dependency-health panel, risk cards, contributor grid, commit timeline, AI suggestions. - CI/CD Detector β auto-detects GitHub Actions, Jenkins, CircleCI, Travis, GitLab CI, and reports coverage.
- Dependency Analyzer β surfaces outdated, vulnerable, or unused packages.
- GitHub Dashboard β contribution heatmap, productive hours chart, repo radar, README generator, profile import β resume.
- Repo Ingestion β clones and indexes repos for offline analysis.
Routes: /community, /fellowship/*, /repo-analyzer/*, /project-visualizer/*, /github-dashboard
Backend: routes/community.js, routes/fellowships.js, routes/payments.js, routes/repoAnalyzer.js, routes/projectVisualizer.route.js, routes/githubImporter.js, services/postScheduler.js, services/presenceService.js, services/socketServiceFirebase.js, services/repoScanner.js, services/repoIngestionService.js, services/dependencyAnalyzer.js, services/cicdDetector.js, services/githubEnricherService.js, services/paymentService.js, services/twoFactorService.js
| Capability | Implementation |
|---|---|
| Firebase Authentication | Email/password, Google, GitHub social login. Token verified server-side via verifyToken middleware. |
| Two-Factor Auth | TOTP via speakeasy, AES-256-GCM-encrypted secrets, QR code setup, 10 single-use backup codes, secure recovery flow (routes/twoFactor.js). |
| Rate Limiting | Per-route, per-user limits on AI endpoints (aiRateLimiter), fellowship verify codes, and cover-letter generation. |
| Role-Based Access | adminOnly middleware protects admin routes; /api/admin/* exposes stats, user management, login logs, bug reports. |
| GDPR | /api/gdpr/* endpoints for export and deletion. |
| Email Bounce Handling | bounceHandler.js unsubscribes and flags invalid addresses. |
| HTML Sanitization | htmlSanitizer.js + threat scanner protect portfolio rendering. |
| Payments | Razorpay HMAC signature verification on every callback. |
| Security Settings UI | /security-settings β enable/disable 2FA, regenerate backup codes, view active sessions. |
career-pilot/
βββ backend/ # Express 4.18 API server
β βββ src/
β β βββ routes/ # 30+ route groups (resume, jobs, portfolio, etc.)
β β βββ controllers/ # Request handlers
β β βββ services/ # 50+ business-logic services (AI, jobs, deployβ¦)
β β βββ models/ # 30+ Mongoose schemas
β β βββ middleware/ # auth, rateLimiter, aiKey, validate, errorHandler
β β βββ schemas/ # Zod request validators
β β βββ config/ # aiProviders, firebase, redis, multer
β β βββ utils/ # htmlSanitizer, diff, sitemapGenerator
β β βββ validators/ # Custom validators
β β βββ templates/ # Email + portfolio template sources
β βββ tests/ # Jest test suite
β βββ Dockerfile
β βββ .env.example
β
βββ frontend/ # React 19 + Vite 7 SPA
β βββ src/
β β βββ pages/ # 50+ pages grouped by pillar
β β βββ components/ # 200+ components grouped by feature
β β βββ services/ # Typed API clients
β β βββ stores/ # Zustand stores
β β βββ hooks/ # useAuth, useSocket, usePrefetchβ¦
β β βββ constants/ # Languages, statuses, tooltips
β β βββ utils/ # resumeChecker, toneAnalyzer, shareCardβ¦
β β βββ data/ # Static data
β βββ Dockerfile
β βββ .env.example
β
βββ docs/ # PROJECT_DOCUMENTATION, AI architecture, GDPR, deployment
βββ API_DOCS/ # API documentation index
βββ ARCHITECTURE.md # System diagrams and deeper flows
βββ DATABASE_SCHEMA.md # MongoDB schema reference
βββ firebase/ # Firestore rules + indexes
βββ activity/ # Activity tracking
βββ scripts/ # Operational scripts
βββ prometheus.yml # Prometheus scrape config
βββ docker-compose.yml
βββ Dockerfile
βββ README.md (this file)
Stack detail:
- Backend β Node.js 18+, Express 4.18, Mongoose 8, Socket.IO 4, BullMQ, Bull-Board, Redis 7, Firebase Admin, Razorpay, Puppeteer, Sharp, Tesseract.js, Speakeasy, Multer, Zod, Jest
- Frontend β React 19, Vite 7, TailwindCSS 4, Framer Motion, React Router 7, Zustand, React Query, Monaco Editor, Recharts, @hello-pangea/dnd, react-hot-toast, Lucide Icons
- Infra β Firebase (Auth + Firestore + Storage), Redis (queues + rate limit + pub/sub), MongoDB, Prometheus metrics
- Socket.IO gateway for live presence, kanban updates, post scheduling, job-alert push, outreach progress, and editor collaboration.
- BullMQ workers for job-alert fetching (
jobAlertQueue.js), outreach queue (outreachQueue.js), email queue, image processing, portfolio build, and digest emails. - Bull-Board UI at
/admin/queuesfor live queue inspection. - Cron-scheduled weekly digest (
weeklyDigestService.js), job-alert polling, GitHub repo re-sync. - Circuit breaker in
jobFetcher.jsto protect upstream APIs.
Career Pilot is primarily a web app, but the most-used flows are mirrored as frontend "Hubs" and individual routes for fast access.
| Workflow | Route | Hub |
|---|---|---|
| Build / edit a resume | /resume-builder |
/resume-hub |
| AI-enhance a resume | /enhance |
/resume-hub |
| Generate resume from text | /text-to-resume |
/resume-hub |
| Browse resume templates | /resume-templates |
/resume-hub |
| View a shared resume | /shared/:token |
β |
| Practice a mock interview | /interview-prep |
/career-growth-hub |
| Review past interviews | /interview-history, /interview-replay/:id |
/career-growth-hub |
| Search jobs | /job-search |
/jobs-hub |
| Track applications | /job-tracker |
/jobs-hub |
| Manage job alerts | /job-alerts |
/jobs-hub |
| Recruiter outreach | /outreach |
/jobs-hub |
| Generate a cover letter | /cover-letter |
/career-growth-hub |
| Generate cold emails | /email-generator |
/career-growth-hub |
| Optimize LinkedIn | /linkedin-optimizer, /linkedin-dashboard |
/career-growth-hub |
| Skill-gap analysis | /skill-gap |
/career-growth-hub |
| Analytics dashboard | /analytics |
β |
| Build a portfolio | /portfolio-hub |
/portfolio-hub |
| Deploy a portfolio | /deployments |
/portfolio-hub |
| Community channels | /community |
/community-hub |
| Fellowship challenges | /fellowship/challenges |
/community-hub |
| Repo analyzer | /repo-analyzer/workspace |
β |
| Project visualizer | /project-visualizer/dashboard |
β |
| GitHub dashboard | /github-dashboard |
β |
| Security & 2FA | /security-settings |
β |
| Admin console | /admin/* |
β |
| Live queue board | /admin/queues (Bull-Board) |
β |
All long-form documentation lives in docs/ and at the repo root:
| File | Contents |
|---|---|
| docs/PROJECT_DOCUMENTATION.md | Full technical map β frontend/backend, route groups, data models, env vars, local setup, build/test, deployment, security, troubleshooting |
| ARCHITECTURE.md | System diagrams and deeper technical flows |
| DATABASE_SCHEMA.md | MongoDB schema reference for every collection |
| docs/ai-features.md | Multi-provider AI architecture, prompt engineering, skill-gap & trajectory logic |
| docs/user-guide.md | Onboarding walkthrough + FAQ |
| docs/environment-setup.md | Step-by-step env configuration |
| docs/deployment-setup.md | Netlify / Cloudflare / VPS / Docker deployment |
| docs/creating-portfolio-themes.md | How to author a new portfolio theme |
| docs/cdn-setup.md | Cloudinary and CDN configuration |
| docs/component-guide.md | Frontend component conventions |
| docs/portfolio-architecture.md | Deep dive into the portfolio system |
| API_DOCS/README.md | API documentation index |
| Real_life_usecase.md | End-to-end user journeys |
| SECURITY.md | Vulnerability disclosure policy |
| CONTRIBUTING.md / CONTRIBUTION.md | Contribution guide |
| CICD_DETECTOR_DOCUMENTATION.md | CI/CD detection internals |
# Backend
cd backend
npm test # Jest
npm run test:watch
# Frontend
cd frontend
npm test # Vitest / React Testing Library
npm run test:coverageTests live in backend/src/__tests__/, backend/src/services/__tests__/, and frontend/src/__tests__/.
Career Pilot is built to deploy on the platform of your choice:
- Frontend β
frontend/dist/is static; works on Netlify, Vercel, Cloudflare Pages, GitHub Pages, Firebase Hosting, or any Nginx + CDN. - Backend β Node.js process; works on Render, Railway, Fly.io, EC2, GCP Cloud Run, or your own VPS.
Dockerfileis included. - Queues β Redis 7 (Upstash, Memorystore, or self-hosted).
- Storage β Firebase Storage (default), Cloudinary optional.
- MongoDB β Atlas recommended; self-hosted works too.
See docs/deployment-setup.md and docs/cdn-setup.md for full step-by-step instructions.
Coming from another platform? Career Pilot ships importers that turn your existing footprint into Career Pilot data:
| From | What gets imported |
|---|---|
linkedinImporter.js β profile, headline, experience, education, skills. Maps straight into a new resume. |
|
| GitHub | githubImporter.js β public repos, languages, contribution stats; populates Portfolio "Projects" and GitHub Dashboard. |
| Existing resume PDF | Drop into Cover Letter generator or Text-to-Resume β AI extracts and structures it. |
| Other resume builders | Import JSON or use the Resume Builder wizard to recreate; AI enhancer will close the quality gap. |
After import, run the AI Enhancer and ATS Scorer to make sure the resume meets Career Pilot's quality bar.
- β Multi-provider AI with BYOK
- β 60+ resume templates, 250+ portfolio themes
- β Audio + video mock interviews with avatar
- β Coding round with hidden test execution
- β BullMQ job-alert queue with email tracking
- β Razorpay-powered fellowship challenges
- β Repo analyzer + project visualizer
- π² Native mobile apps (React Native)
- π² Public Skills Hub β share + remix community-built prompts
- π² Recruiter-side portal (companies post challenges, candidates apply)
- π² Interview pair-programming rooms with live coding
- π² Pluggable scraper marketplace
- π² Real-time multi-user resume co-editing (Yjs)
- The project is actively developed; expect weekly releases.
- Local-only by default; cloud deploy is opt-in.
- Firebase is the identity layer β configure a Firebase project before first run.
- All AI endpoints are rate-limited per user per route.
- Portfolio HTML is sanitized before serving; you cannot inject scripts.
We welcome contributions from developers of all levels β from GSSoC first-timers to senior engineers.
git clone https://github.com/anurag3407/career-pilot.git
cd career-pilot
npm install
cd backend && npm install && cd ..
cd frontend && npm install && cd ..
# Create a feature branch
git checkout -b feature/your-feature
# Make changes, commit, push, open a PR
git add .
git commit -m "feat(resume): add export to DOCX"
git push origin feature/your-featurefeature/<short-description>fix/<short-description>docs/<short-description>ai/<short-description>refactor/<short-description>
- Change is described clearly in PR title and description
- Code passes linting and local tests
- Environment setup steps documented (if new vars introduced)
- Breaking changes called out in the description
- Linked to the issue it closes
- Documentation improvements for setup or environment variables
- Fixing UI/UX issues on the dashboard or resume builder
- Backend bug fixes around authentication and job search
- Adding a new portfolio theme (see
docs/creating-portfolio-themes.md) - Adding a new resume template
- Writing tests for an existing service
- Improving AI prompt quality for a specific workflow
If you are part of GSSoC or a first-time contributor, comment on an issue or open a discussion to request mentorship.
See CONTRIBUTING.md and CODE_OF_CONDUCT.md for the full policy.
- π¬ Discord β coming soon
- π GitHub Issues
- π Full Documentation
- π Star the repo to follow releases
Career Pilot is open-source under the MIT License β see LICENSE.

