A comprehensive job seeker platform that combines AI-powered resume parsing, intelligent job matching, application tracking, and personalized learning roadmaps to help you land your dream job.
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Key Algorithms
- Environment Variables
- Usage
- Development
- Documentation
HireMeLah! is a privacy-first job seeker platform designed specifically for fresh graduates in Singapore. The platform helps users:
- Discover personalized job opportunities using intelligent matching
- Track application status with automated email detection
- Learn with AI-generated roadmaps to bridge skill gaps
- Manage their entire job search journey in one place
- Privacy-First: All data stored in browser localStorage, no backend database
- Client-Side Processing: Job matching happens in the browser
- AI-Powered: OpenAI GPT-4o-mini for resume parsing and roadmap generation
- User-Centric: Designed for fresh graduates with entry-level focus
-
Resume Parsing: Upload DOCX, PDF, or TXT files
- Extracts: Education, Experience, Projects, Awards, Skills
- Assigns proficiency scores (1-10) to each skill automatically
- Identifies skill categories from 200+ skills database
-
Transcript Parsing: Upload academic transcripts
- Extracts modules/courses with grades
- Identifies skills learned from each module
- Tracks academic progress
-
Manual Review: Users can review and edit all extracted data before saving
-
Career Fit Index (CFI): Composite matching score
- Skill Fit Index (50%): Compares user skills vs job requirements
- Relevance Index (50%): Measures alignment with target role
- Category Match (50% of relevance)
- Exact Role Match (25% of relevance)
- Target Role Skills Match (25% of relevance)
-
Dynamic Weighting: Users can adjust Skill Fit vs Relevance weights
-
Skill Proficiency Matching: Compares user skill scores (1-10) with job requirements
-
Multi-Source Job Data: Aggregates jobs from 7 platforms:
- MyCareersFuture
- Indeed
- Glassdoor
- JobStreet
- Prosple
- eFinancialCareers
- Master Jobs (consolidated)
-
Advanced Filters:
- Search by keywords
- Date posted (Today, Past Week, Past Month, Any time)
- Work arrangement (Remote, Hybrid, On-site)
- Industry
- Salary range
- Employment type (Full-time, Part-time, Contract, Internship)
-
Sorting Options:
- Career Fit Index (default)
- Skill Fit Index
- Relevance Index
- Salary (High to Low, Low to High)
- Date Posted (Newest, Oldest)
-
Job Detail View:
- Complete job description
- Skills breakdown with match percentages
- CFI breakdown (Overall, Skill Fit, Relevance)
- Company information
- Direct link to original listing
-
Kanban Board: Visual tracking with columns:
- Saved / Interested
- Applied
- Online Assessment (OA)
- Interview
- Offer
- Rejected
- Declined
- No Update (30+ days)
-
Drag & Drop: Move applications between statuses
-
Application Cards: Display key information:
- Job title and company
- Applied date
- Interview details (date, time, location, type, interviewer)
- OA details (deadline, platform, duration, deliverable)
- Offer details (deadline, salary, start date)
-
Lifetime Statistics:
- Total Applied (lifetime)
- Total Offers (lifetime)
- Response rate
-
Status Change History: Track all status transitions with timestamps
-
Email Detection: Automatically detects job-related emails
-
Status Updates: Identifies:
- Interview invitations
- Online assessment deadlines
- Offer letters
- Rejection notices
-
Smart Matching: Matches emails to applications using:
- Company name
- Job title keywords
- Sender information
-
Auto-Extraction: Extracts from email content:
- Interview date, time, location, type
- OA deadline, platform, duration, deliverable
- Offer deadline, salary, start date
-
Manual Calendar Export: Per-application calendar button
- Add to Google Calendar
- Add to Outlook Calendar
- Download .ics file
-
Event Types:
- Interview events (with location, time, interviewer)
- OA deadline events
- Offer deadline events
-
AI-Generated Roadmaps: Personalized learning paths to bridge skill gaps
-
Target Role Selection: Choose from 100+ roles across 10 categories:
- Software Engineering
- Data Science & Analytics
- Product Design
- DevOps & Cloud
- Security
- Mobile Development
- Finance & Tech
- Business Consulting
- Marketing & Growth
- Management
-
Customizable Constraints:
- Budget (SGD)
- Time frame (weeks)
- Hours per week
- Preference for free resources
- Include projects
-
Roadmap Structure:
- Monthly breakdown
- Weekly tasks
- Skill-focused learning
- Project recommendations
- Resource links
-
Progress Tracking: Mark tasks as complete, track budget usage
-
Visual Timeline: Bubble timeline view showing progress
-
Comprehensive Profile: Edit all aspects of your profile
- Personal information
- Education history
- Work experience
- Projects
- Awards & certifications
- Skills with proficiency scores
- Academic modules
- Job preferences (location, salary, work type)
- Target roles
-
Skill Management:
- Add/remove skills
- Adjust proficiency scores (1-10)
- Auto-suggestions from skills database
- Skills sorted by proficiency (highest to lowest)
- Next.js 14 - React framework with App Router
- React 18 - UI library with hooks
- TypeScript 5 - Type-safe development
- Tailwind CSS 3 - Utility-first CSS framework
- Lucide React - Icon library
- Next.js API Routes - Serverless backend functions
- NextAuth.js 4 - Authentication with Google OAuth
- OpenAI GPT-4o-mini - AI-powered resume and transcript parsing
- CSV Parsing - Job data from multiple sources
- PDF/DOCX Parsing - Document text extraction
- Local Storage - Client-side data persistence
- ESLint - Code linting
- PostCSS & Autoprefixer - CSS processing
- Date-fns - Date manipulation utilities
- Node.js 18+ and npm
- OpenAI API key (for AI features)
- Google OAuth credentials (optional, for Gmail integration)
-
Clone the repository
git clone <repository-url> cd jobseeker
-
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile in the root directory:# OpenAI API Key (Required for AI features) OPENAI_API_KEY=your-openai-api-key-here # NextAuth Configuration (Optional, for Google OAuth) NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-secret-key-here # Google OAuth (Optional, for Gmail integration) GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
jobseeker/
โโโ src/
โ โโโ app/ # Next.js App Router pages
โ โ โโโ api/ # API routes (backend)
โ โ โ โโโ auth/ # NextAuth authentication
โ โ โ โโโ parse-resume/ # AI resume parsing
โ โ โ โโโ generate-roadmap/ # AI roadmap generation
โ โ โโโ jobs/ # Job listing pages
โ โ โโโ onboarding/ # First-time user setup
โ โ โโโ profile/ # User profile management
โ โ โโโ roadmap/ # Learning roadmap view
โ โ โโโ tracker/ # Application tracker
โ โ
โ โโโ components/ # React components
โ โ โโโ ApplicationTracker.tsx # Kanban board
โ โ โโโ JobCard.tsx # Job display card
โ โ โโโ FilterPanel.tsx # Job filters
โ โ โโโ Sidebar.tsx # Navigation
โ โ
โ โโโ contexts/ # React Context providers
โ โ โโโ UserProfileContext.tsx # Global user profile state
โ โ
โ โโโ hooks/ # Custom React hooks
โ โ โโโ useJobs.ts # Job loading & matching logic
โ โ
โ โโโ lib/ # Core business logic
โ โ โโโ matching.ts # Career Fit Index (CFI) calculation
โ โ โโโ dataLoader.ts # CSV parsing & job normalization
โ โ โโโ roadmapGenerator.ts # Roadmap generation logic
โ โ โโโ resumeParser.ts # Resume parsing utilities
โ โ โโโ storage.ts # LocalStorage persistence
โ โ
โ โโโ data/ # Static data databases
โ โ โโโ skillsDatabase.ts # 200+ skills taxonomy
โ โ โโโ rolesDatabase.ts # 100+ roles with skill requirements
โ โ
โ โโโ types/ # TypeScript type definitions
โ โโโ index.ts # All shared types
โ
โโโ datasets/ # CSV job data files
โ โโโ master_jobs.csv # Consolidated job list (preferred)
โ โโโ [other sources].csv
โ
โโโ public/ # Static assets
โโโ datasets/ # Public CSV files (served to client)
For detailed architecture documentation, see CODEBASE_STRUCTURE.md
The CFI is a composite score that measures how well a job matches a user's profile:
CFI = (Skill Fit Index ร weight) + (Relevance Index ร weight)
Default weights: 50% Skill Fit, 50% Relevance (user-adjustable)
Compares user skill proficiency vs job requirements:
SFI = (1/N) ร ฮฃ min(1, Y/X) ร 100
Where:
N= total number of skills requiredX= required proficiency level (1-10)Y= user's proficiency level (1-10)
Measures alignment with user's target role:
RI = 100 ร (0.50 ร CategoryMatch + 0.25 ร ExactRoleMatch + 0.25 ร SkillsMatch)
- Category Match (50%): Job category vs target role category
- Exact Role Match (25%): Job title vs target role
- Target Role Skills Match (25%): Job skills vs target role skills
- Normalization: Handles skill name variations (e.g., "React.js" = "React")
- Proficiency Scoring: Compares user score (1-10) vs required score (1-10)
- Alias Resolution: Uses skills database to match variations
| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY |
Yes | OpenAI API key for resume parsing and roadmap generation |
NEXTAUTH_URL |
Optional | Base URL for NextAuth (default: http://localhost:3000) |
NEXTAUTH_SECRET |
Optional | Secret key for NextAuth session encryption |
GOOGLE_CLIENT_ID |
Optional | Google OAuth client ID for Gmail integration |
GOOGLE_CLIENT_SECRET |
Optional | Google OAuth client secret for Gmail integration |
-
Onboarding
- Upload your resume (DOCX, PDF, or TXT)
- Upload your transcript (optional)
- Review and edit extracted information
- Set your target role
- Configure job preferences
-
Find Jobs
- Browse personalized job listings
- Use filters to narrow down results
- Click on jobs to see detailed match breakdown
- Save interesting jobs to your tracker
-
Track Applications
- Move applications through stages using drag & drop
- Connect Gmail for automatic status updates
- Add interview/OA/offer details manually
- Export events to calendar
-
Learning Roadmap
- Select your target role
- Set time and budget constraints
- Generate AI-powered learning roadmap
- Track progress as you complete tasks
- Update Your Profile: Keep your skills and proficiency scores up to date
- Use Filters: Narrow down jobs by industry, location, salary, etc.
- Adjust CFI Weights: Prioritize skill fit or relevance based on your goals
- Track Everything: Use the tracker to stay organized during your job search
- Follow Roadmaps: Complete roadmap tasks to bridge skill gaps
# Development server
npm run dev
# Production build
npm run build
# Start production server
npm start
# Lint code
npm run lint- Components: Reusable UI components in
src/components/ - Hooks: Custom React hooks in
src/hooks/ - Lib: Core business logic in
src/lib/ - Types: TypeScript definitions in
src/types/ - API Routes: Backend endpoints in
src/app/api/
src/lib/matching.ts- Core matching algorithm (CFI calculation)src/hooks/useJobs.ts- Job loading and matching logicsrc/contexts/UserProfileContext.tsx- Global user profile statesrc/lib/dataLoader.ts- CSV parsing and job normalizationsrc/app/api/parse-resume/route.ts- AI resume parsing endpoint
- New Component: Add to
src/components/ - New Hook: Add to
src/hooks/ - New API Route: Add to
src/app/api/ - New Type: Add to
src/types/index.ts - New Utility: Add to
src/lib/
- CODEBASE_STRUCTURE.md - Detailed architecture and codebase structure
- PROJECT_WRITEUP.md - Comprehensive project documentation
| Feature | Description |
|---|---|
| ๐ค AI Parsing | Automatically extract skills, experience, and education from resumes |
| ๐ฏ Smart Matching | Career Fit Index (CFI) algorithm matches jobs to your profile |
| ๐ Application Tracker | Kanban board to track applications through all stages |
| ๐ง Gmail Integration | Auto-detect status updates from emails |
| ๐บ๏ธ Learning Roadmaps | AI-generated personalized learning paths |
| ๐ค Profile Management | Comprehensive profile with skill proficiency tracking |
| ๐ Advanced Filtering | Filter jobs by multiple criteria |
| ๐ Calendar Sync | Export interviews and deadlines to calendar |
This is a personal project, but suggestions and feedback are welcome!
This project is private and proprietary.
- OpenAI for GPT-4o-mini API
- Next.js team for the amazing framework
- All job platforms for providing data sources
For questions or issues, please refer to the documentation files or check the codebase structure.
Built with โค๏ธ for job seekers in Singapore