Tinder for WaterlooWorks 💘
We built a job matching platform that connects students with recruiters through swipe-based discovery.
As an engineering student already piled with the huge workload from courses, applying to jobs is the finishing blow to our mental wellbeing.
WaterlooWorks is not making things any easier. We are changing that by making the students' application and the recruiters' review processes faster and easier through a swipe-based interface, letting students apply and recruiters book interviews within seconds.
Whether you are cozy in bed or on the way to classes, students swipe right on roles they like while recruiters swipe right on the applicants they like. A mutual match is created and the interview invite has been sent. This reduces noise on both sides and makes the process feel natural.
- Swipe-based job feed — Students swipe right to apply or left to skip on job cards ranked by a compatibility score
- Compatibility matching algorithm — Each job is scored using skill overlap (50%), work experience (20%), academic year (30%), and location (10%)
- Two-sided platform — Separate interfaces for both students and recruiters, including role-specific dashboards and tools
- Integration with WaterlooWorks — Built to fetch data from WaterlooWorks and initiate the interview pipeline
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, React, Framer Motion, Tailwind CSS |
| Backend | Next.js |
| Storage | In-memory dictionaires (for demo purposes) |
Prerequisites
- Node.js 18 or higher
Step 1 — Clone the repository
git clone https://github.com/grantmgci2025/coopid.git
cd coopidStep 2 — Install dependencies
npm installStep 3 — Run the server
npm run devStep 4 — Open in browser
http://localhost:3000
- Jaccard Similarity — basis for the skill overlap calculation in the matching algorithm
Citation 1 — Frontend UI Components
| Field | Details |
|---|---|
| Model | Claude Sonnet 4.6 |
| Provider | Anthropic (claude.ai) |
| Usage | Used to generate the UI component "SwipeCard.tsx" and prototyping the Swipe Pages |
Reffered Files:
- components/SwipeCard.tsx
- app/swipe/seek/[id]/page.tsx
- app/swipe/recruit/[id]/page.tsx
Citation 2 — Matching Algorithm
| Field | Details |
|---|---|
| Model | Claude Sonnet 4.6 |
| Provider | Anthropic (claude.ai) |
| Usage | Used to research ways to design the compatibility scoring algorithm between student profiles and job postings |
Reffered Files:
- app/swipe/seek/[id]/page.tsx