Master navigating the sea of irrelevant jobs with JobCompass
See JobCompass in action! This video walkthrough demonstrates all key features, from guest mode to personalized job matching.
While there are numerous job search platforms available, even the most popular ones like LinkedIn have significant limitations:
- Promoted jobs clutter - Too many sponsored listings obscure relevant positions
- No skill matching metrics - Unclear whether a job matches your specific skills
- Limited sorting options - Can't sort by commute distance, skill relevance, or transfer convenience
- Poor location intelligence - No built-in commute calculations or transfer information
- Generic experience - One-size-fits-all approach without personalization
JobCompass addresses these pain points by providing:
- Smart skill matching - See exactly which of your skills match each job posting
- Intelligent sorting - Sort by skill matches, commute time, transfer count, or posting date
- Commute intelligence - Real-time travel calculations with Google Maps integration
- Guest mode - Try the platform without signup barriers
- Personalized experience - Tailored job recommendations based on your profile
- Job seekers who want more intelligent job matching
- Professionals looking to optimize their commute
- Career changers who need clear skill gap analysis
- Busy professionals who want pre-filtered, relevant opportunities
- Relevance score - Higher percentage of skill-matched positions
- Time saved - Reduced time from search to application
- Commute optimization - Better work-life balance through location intelligence
- User engagement - Increased time spent on relevant job listings
- π Job Search - Search and browse open positions without account
- β‘ Smart Matching - See skill matches with default profile
- πΊοΈ Commute Preview - Basic travel time calculations
- π± Try Before Signup - Full preview mode to test functionality
- π€ Personal Profile - Custom skills, address, and avatar
- β€οΈ Save Favorites - Bookmark jobs for later review
- π― Personalized Results - Job matching based on your actual skills
- π Direct Application - Apply to jobs through original postings
- π Account Management - Password reset via email, profile deletion
- π Skill Matching - Visual indicators showing skill alignment
- π Commute Calculator - Travel time and transfer count for each job
- π Intelligent Sorting - Multiple sorting options (skills, commute, date)
- ποΈ Advanced Filters - Job type, work mode, experience level
- π§ Email Recovery - Secure password reset functionality
- React 19 - UI library
- Vite - Build tool and dev server
- React Router DOM - Client-side routing
- Lucide React - Icon library
- Deployed on Netlify - https://job-compass-app.netlify.app/
- Node.js (>=24.0.0) - Runtime environment
- Express.js - Web framework
- PostgreSQL (Neon DB) - Database
- Firebase Admin - File storage and authentication
- JWT - Token-based authentication
- bcrypt - Password hashing
- Nodemailer - Email service
- Multer - File upload handling
- Google Maps API - Commute calculations
- Deployed on Render - https://job-compass-o40i.onrender.com
- Job Search: Currently using local job dataset for demonstration (real LinkedIn API integration available but requires paid API keys)
- Database: PostgreSQL hosted on Neon
- File Storage: Firebase for avatar uploads
- Email Service: SMTP for password reset functionality
- Husky - Git hooks
- ESLint - Code linting
- Prettier - Code formatting
- Concurrently - Run multiple commands
job-compass/
βββ client/ # React frontend application
β βββ src/
β β βββ components/ # Reusable React components
β β βββ pages/ # Page components
β β βββ context/ # React Context providers
β β βββ hooks/ # Custom React hooks
β β βββ util/ # Utility functions
β β βββ assets/ # Static assets
β βββ package.json
βββ server/ # Express backend application
β βββ src/
β β βββ controllers/ # Route controllers
β β βββ routes/ # API routes
β β βββ middleware/ # Express middleware
β β βββ services/ # Business logic services
β β βββ db/ # Database configuration
β β βββ config/ # Configuration files
β β βββ data/ # Data files
β β βββ util/ # Utility functions
β βββ package.json
βββ .github/ # GitHub workflows
βββ .husky/ # Git hooks
βββ package.json # Root package.json with workspace scripts
- Node.js >= 24.0.0
- npm (comes with Node.js)
- PostgreSQL database (Neon DB recommended)
- Firebase Firebase service account (as JSON string)
- SMTP credentials
- LinkedIn Job Search RapidAPI key
- Google Maps API key for commute calculations
-
Clone the repository
git clone https://github.com/HannaInIT/job-compass.git cd job-compass -
Install dependencies
npm run setup
This will install dependencies for both client and server.
-
Set up environment variables
In client and server directories, copy and rename the
.env.examplefiles into.env. Set all environmental variables. -
Run the development servers
npm run dev
This will start both the client (Vite dev server) and server (Express with nodemon) concurrently.
- Frontend: http://localhost:5173 (or the port Vite assigns)
- Backend: http://localhost:3000 (or your configured PORT)
npm run dev- Start both client and server in development modenpm run start- Start the production servernpm run build- Build the client for productionnpm run setup- Install dependencies for both client and server
The project is deployed using modern cloud platforms:
- Frontend: Netlify - Automatic deployment from GitHub
- Backend: Render - Containerized Node.js application
- Database: Neon PostgreSQL - Serverless database
- Storage: Firebase - File and avatar storage
Frontend (Netlify) β Backend (Render) β Database (Neon)
β Storage (Firebase)
β Google Maps API
Visit https://job-compass-app.netlify.app/ to experience JobCompass immediately.
Guest Mode Demo:
- Search for "Frontend developer" or any tech role
- Explore skill matching and commute calculations
- Try sorting and filtering options
- Experience the seamless user interface
Full Experience:
- Create an account or login
- Customize your profile (skills, address, avatar)
- Save jobs to favorites
- Get personalized job recommendations
This project was originally created as a group project by three developers:
- Yaroslav Kazeev - GitHub | LinkedIn
- Hanna Dubyna - GitHub | LinkedIn
- Yahya Al-Ademi - GitHub | LinkedIn
The project is currently maintained and further developed by Hanna Dubyna as an individual portfolio piece, featuring enhanced functionality and deployment optimizations.
ISC
- Originally developed as part of HackYourFuture curriculum
- Enhanced and maintained as an individual portfolio project
- Special thanks to the original team members and HYF mentors
- Thanks to all the APIs and services that make this platform possible