Skip to content

avan365/CareerRoad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

23 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ HireMeLah! - Your Career Cockpit

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.

Next.js TypeScript React Tailwind CSS


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Overview

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

Key Philosophy

  • 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

โœจ Features

1. ๐Ÿค– AI-Powered Onboarding

  • 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

2. ๐ŸŽฏ Intelligent Job Matching

  • 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)

3. ๐Ÿ” Job Discovery & Filtering

  • 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

4. ๐Ÿ“Š Application Tracker

  • 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

5. ๐Ÿ“ง Gmail Integration

  • 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

6. ๐Ÿ“… Calendar Integration

  • 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

7. ๐Ÿ—บ๏ธ Learning Roadmaps

  • 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

8. ๐Ÿ‘ค Profile Management

  • 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)

๐Ÿ› ๏ธ Tech Stack

Frontend

  • 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

Backend & APIs

  • Next.js API Routes - Serverless backend functions
  • NextAuth.js 4 - Authentication with Google OAuth
  • OpenAI GPT-4o-mini - AI-powered resume and transcript parsing

Data Processing

  • CSV Parsing - Job data from multiple sources
  • PDF/DOCX Parsing - Document text extraction
  • Local Storage - Client-side data persistence

Development Tools

  • ESLint - Code linting
  • PostCSS & Autoprefixer - CSS processing
  • Date-fns - Date manipulation utilities

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ and npm
  • OpenAI API key (for AI features)
  • Google OAuth credentials (optional, for Gmail integration)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd jobseeker
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file 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
  4. Run the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000


๐Ÿ“ Project Structure

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


๐Ÿงฎ Key Algorithms

Career Fit Index (CFI)

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)

Skill Fit Index (SFI)

Compares user skill proficiency vs job requirements:

SFI = (1/N) ร— ฮฃ min(1, Y/X) ร— 100

Where:

  • N = total number of skills required
  • X = required proficiency level (1-10)
  • Y = user's proficiency level (1-10)

Relevance Index (RI)

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

Skill Matching

  • 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

๐Ÿ” Environment Variables

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

๐Ÿ“– Usage

First Time Setup

  1. Onboarding

    • Upload your resume (DOCX, PDF, or TXT)
    • Upload your transcript (optional)
    • Review and edit extracted information
    • Set your target role
    • Configure job preferences
  2. 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
  3. 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
  4. Learning Roadmap

    • Select your target role
    • Set time and budget constraints
    • Generate AI-powered learning roadmap
    • Track progress as you complete tasks

Tips

  • 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

Available Scripts

# Development server
npm run dev

# Production build
npm run build

# Start production server
npm start

# Lint code
npm run lint

Code Structure

  • 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/

Key Files

  • src/lib/matching.ts - Core matching algorithm (CFI calculation)
  • src/hooks/useJobs.ts - Job loading and matching logic
  • src/contexts/UserProfileContext.tsx - Global user profile state
  • src/lib/dataLoader.ts - CSV parsing and job normalization
  • src/app/api/parse-resume/route.ts - AI resume parsing endpoint

Adding New Features

  1. New Component: Add to src/components/
  2. New Hook: Add to src/hooks/
  3. New API Route: Add to src/app/api/
  4. New Type: Add to src/types/index.ts
  5. New Utility: Add to src/lib/

๐Ÿ“š Documentation


๐ŸŽฏ Key Features Summary

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

๐Ÿค Contributing

This is a personal project, but suggestions and feedback are welcome!


๐Ÿ“„ License

This project is private and proprietary.


๐Ÿ™ Acknowledgments

  • OpenAI for GPT-4o-mini API
  • Next.js team for the amazing framework
  • All job platforms for providing data sources

๐Ÿ“ž Support

For questions or issues, please refer to the documentation files or check the codebase structure.


Built with โค๏ธ for job seekers in Singapore

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •