Skip to content

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

CI

SkillMatched

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.


Features

  • 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

Tech Stack

Frontend

  • Next.js / React
  • TypeScript, Tailwind CSS

Backend

  • Node.js
  • Express.js

Database & Storage

  • PostgreSQL via Neon (primary database)
  • Supabase Storage (resume file storage)
  • Redis (caching layer)

Authentication & Security

  • JSON Web Tokens (JWT)
  • Google OAuth
  • bcrypt for password hashing

Project Structure

SkillsMatched/
│
├── frontend/
│   ├── components/
│   ├── app/
│   │   └── page.tsx
│
├── backend/
│   ├── routes/
│   ├── middleware/
│   └── server.js
│
└── README.md

Installation & Setup

1. Clone the Repository

git clone https://github.com/Crystlfly/SkillsMatched.git
cd SkillsMatched

2. Backend Setup

cd backend
npm install
npm run dev

Create 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_password

3. Frontend Setup

cd ../frontend
npm install
npm run dev

How It Works

Onboarding: 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.

Use Cases

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

Future Enhancements

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

About

Backend-focused job recommendation engine built with Node.js, PostgreSQL, and Redis. Features a cosine similarity scoring pipeline across 10,000+ job vectors with 99.5% latency reduction via Redis caching (600ms → <3ms), automated weekly batch dispatch via Node-Cron, and a stateless JWT auth layer. Deployed with Docker and CI via GitHub Actions.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages