Intelligent Job-to-Roadmap Generator - Transform your resume and job description into a personalized 30-day learning roadmap.
PathFinder is a modern web application that analyzes job postings against your resume to identify skill gaps and generates personalized learning roadmaps. Perfect for career changers, skill upgraders, and job aspirants.
- 📄 Resume & Job Analysis - Upload resume (PDF/TXT) and paste job description
- 📊 Match Scoring - Get percentage match and identify missing skills
- 🎯 AI-Powered Skill Extraction - Uses OpenAI to intelligently extract and categorize skills
- 📅 30-Day Roadmap Generation - Creates structured learning plans with daily tasks
- ⚙️ Personalization - Customize roadmaps based on:
- Daily time commitment (30-45 min, 1-2 hrs, 2-3 hrs)
- Experience level (Beginner, Intermediate)
- Study schedule (Weekdays, Weekends, or Both)
- 🔄 Roadmap Comparison - Compare default vs. personalized learning paths
- 📋 Progress Tracking - Mark completed days and monitor streaks
- 🖨️ Print-Friendly - Export your roadmap for offline use
- Frontend: React 19 + Next.js 16
- Styling: Tailwind CSS 4 + PostCSS
- PDF Processing: PDF.js 5
- AI Engine: OpenAI API
- Backend: Next.js API Routes
- Node.js 18+ and npm
- OpenAI API key (get one at platform.openai.com)
-
Clone the repository
git clone <repository-url> cd PathFinder
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:NEXT_PUBLIC_API_KEY=your_openai_api_key_here
-
Start development server
npm run dev
-
Open in browser Navigate to
http://localhost:3000
- Navigate to the home page
- Upload your resume (PDF, TXT, DOC, or DOCX)
- Paste the job description
- Click "Analyze Job"
- See your job match percentage (0-100%)
- Review identified missing skills
- Analyze the match assessment
Option A: Default Roadmap
- Pre-made 30-day learning plan
- Covers all missing skills systematically
- Great for quick start
Option B: Personalized Roadmap
- Select your daily time commitment
- Choose your experience level
- Pick your study schedule
- System generates customized plan with:
- Specific daily task lists
- Time estimates per day
- Intensity levels (Light, Normal, Deep Dive)
- Strategic review and buffer days
- Click days to mark as complete
- Build your learning streak
- Compare roadmaps side-by-side
- Print your plan for reference
PathFinder/
├── app/ # Next.js app directory
│ ├── api/
│ │ └── analyze/ # Job analysis endpoint
│ ├── page.jsx # Home page
│ ├── results/page.jsx # Analysis results view
│ ├── personalize/page.jsx # Personalization interface
│ ├── roadmap/page.jsx # Roadmap display
│ └── roadmap/compare/page.jsx # Comparison view
├── components/ # React components
│ ├── Button.jsx # Reusable button
│ ├── JobInput.jsx # Job description input
│ ├── ResumeUpload.jsx # Resume file upload
│ ├── MatchScore.jsx # Score visualization
│ ├── SkillCard.jsx # Individual skill display
│ ├── LearningPlan.jsx # 30-day calendar view
│ ├── LearningPreferences.jsx # Personalization options
│ └── RoadmapTracker.jsx # Progress & comparison tracker
├── lib/ # Utility functions
│ ├── openai.js # OpenAI API integration
│ ├── skillExtractor.js # Skill extraction logic
│ ├── matchCalculator.js # Match scoring logic
│ └── roadmapGenerator.js # Roadmap generation logic
├── public/ # Static assets
├── globals.css # Global styles
└── tailwind.config.js # Tailwind configuration
SkillExtractor - Intelligently extracts skills from resume and job description
import { extractSkillsFromResume } from "@/lib/skillExtractor";
const skills = await extractSkillsFromResume(resumeText);
// Returns: { technical: [...], soft: [...], tools: [...] }MatchCalculator - Calculates job match percentage
import { calculateJobMatch } from "@/lib/matchCalculator";
const score = calculateJobMatch(resumeSkills, jobSkills);
// Returns: 0-100 percentageRoadmapGenerator - Creates personalized 30-day plans
import { generatePersonalizedRoadmap } from "@/lib/roadmapGenerator";
const roadmap = generatePersonalizedRoadmap(skills, preferences);
// Returns: Day-by-day learning plan with tasksPathFinder features a bright, clean white theme with:
- White backgrounds for clarity
- Blue accent colors (rgb(37, 99, 235) - rgb(59, 130, 246))
- Dark slate text for excellent readability
- Light borders and subtle shadows
- Status colors: Green (success), Red (warning), Blue (info)
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_API_KEY |
OpenAI API key | Yes |
- Sign up at platform.openai.com
- Navigate to API keys section
- Create new secret key
- Copy and paste into
.env.local
- Resume Upload → PDF.js extracts text
- Skill Extraction → OpenAI identifies all skills
- Job Parsing → OpenAI analyzes job requirements
- Matching → Compares resume vs. job skills
- Roadmap Gen → Creates 30-day learning plan
- Display → Shows results with interactive UI
- Time-aware distribution - Balances skill coverage based on available hours
- Progressive difficulty - Starts easy, increases complexity
- Strategic review - Includes buffer days every 7 days
- Intensity optimization - Alternates between Light, Normal, and Deep Dive days
- Priority-based - Focuses on high-priority missing skills first
# Development server (http://localhost:3000)
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Run tests
npm test- Quick Start Guide - Get started quickly
- Personalization Guide - Understand personalization features
- Usage Examples - Code examples and scenarios
- Implementation Summary - Technical details
- Integration Testing Guide - Test scenarios
Analyzes resume against job description and generates roadmap.
Request Body:
{
"resume": "string (resume text)",
"jobDescription": "string (job description text)"
}Response:
{
"matchPercentage": 85,
"matchingSkills": ["Skill1", "Skill2"],
"missingSkills": ["Skill3", "Skill4"],
"roadmap": {
"raw": "string (detailed roadmap)"
}
}- Daily breakdown of learning objectives
- Time estimates for each day (based on personalization)
- Specific tasks to complete
- Intensity levels to manage difficulty
- Skill tracking to see progress
- Review days to reinforce learning
- Mark completed days to build streaks
- Compare default vs. personalized paths
- View detailed day breakdowns
- Print roadmap for offline reference
- Export progress overview
- Resume data processed locally in browser
- Job descriptions never permanently stored
- Analysis results kept in session storage
- OpenAI API handles all NLP processing
- No database of user information
- Verify API key in
.env.local - Check OpenAI account has credits
- Confirm key has API access enabled
- Ensure file is PDF, TXT, DOC, or DOCX
- File size under 10MB
- Try extracting text from PDF if corrupted
- Increase OpenAI timeout in development
- Check network connection
- Verify OpenAI API is not rate-limited
- Load Time: ~2-3 seconds
- Analysis Time: ~5-10 seconds (API dependent)
- Roadmap Generation: ~3-5 seconds
- PDF Processing: ~1-2 seconds
- Real-time skill progress verification
- Video tutorial integration
- Community roadmap sharing
- Mobile app version
- Multi-language support
- Integration with learning platforms (Udemy, Coursera, etc.)
- Advanced analytics dashboard
- Peer learning groups
ISC License - See LICENSE file for details
- Check existing documentation in repo
- Review code examples in
USAGE_EXAMPLES.md - Check integration test scenarios
- Create feature branch
- Make changes following code style
- Test thoroughly
- Submit pull request
- OpenAI for powerful AI capabilities
- Next.js for modern React framework
- Tailwind CSS for utility-first styling
- PDF.js for PDF processing
- Framer Motion for smooth animations
For issues, questions, or suggestions:
- Check the documentation files
- Review existing issues
- Create a new issue with detailed description
Version: 1.0.0
Last Updated: February 2026
Status: Active Development