SkillMatched is a backend-focused job recommendation platform that matches users to relevant opportunities using cosine similarity scoring across 10,000+ simulated job vectors, with Redis caching delivering sub-3ms p99 response times.
- Redis-cached job matching: 99.5% latency reduction (600ms → <3ms) on match queries
- Cosine similarity scoring engine across 10,000+ simulated job vectors
- Weekly automated batch dispatch via Node-Cron processing 1,000+ user profiles
- Stateless JWT authentication with role-protected REST API routes
- Containerized deployment via Docker with CI pipeline via GitHub Actions
- Structured error handling across all API endpoints
- Next.js / React
- TypeScript, Tailwind CSS
- Node.js
- Express.js
- PostgreSQL via Neon (primary database)
- Supabase Storage (resume file storage)
- Redis (caching layer)
- JSON Web Tokens (JWT)
- Google OAuth
- bcrypt for password hashing
SkillsMatched/
│
├── frontend/
│ ├── components/
│ ├── app/
│ │ └── page.tsx
│
├── backend/
│ ├── routes/
│ ├── middleware/
│ └── server.js
│
└── README.md
git clone https://github.com/Crystlfly/SkillsMatched.git
cd SkillsMatchedcd backend
npm install
npm run devCreate a .env file in the backend directory:
DATABASE_URL=your_postgres_password
JWT_SECRET=your_jwt_secret
SUPABASE_URL=your_supabase_connection_url
SUPABASE_SERVICE_ROLE=your_service_role
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
EMAIL_USER=your_email_id
EMAIL_PASS=your_email_pass
FRONTEND_URL=http://localhost:3000
NEXT_PUBLIC_BACKEND_URL=http://localhost:5000
REDIS_HOST=your_redis_host
REDIS_PORT=your_redis_port
REDIS_USERNAME=your_redis_username
REDIS_PASSWORD=your_redis_passwordcd ../frontend
npm install
npm run devOnboarding: User signs up via email or Google OAuth and sets job preferences. Matching: The Node.js backend computes cosine similarity scores across 10,000+ simulated job vectors against the user's preference vector. Caching: Results are cached in Redis — repeated queries are served in under 3ms without recomputation. Dispatch: Node-Cron batches weekly recommendation emails across 1,000+ user profiles.
- Finding technical collaborators for open-source or side projects.
- Skill-based networking within academic or professional circles.
- Pairing mentors with mentees based on specific technology stacks.
- Worker thread pool for offloading cosine similarity computation off the main thread
- Real-time job alert notifications
If you like this project, please consider giving it a star!