Skip to content
All projects

full-stack job portal · react, node, socket.io

JobZee

A full-stack hiring platform where candidates and recruiters meet, apply and talk in real time.

JobZee — full-stack job portal case study cover

Overview

Built for two audiences at once

A job portal that keeps both sides moving

JobZee pairs a public job board with an authenticated dashboard for each role. Candidates search, filter and apply with a stored profile; recruiters post openings and move applicants through stages. Socket.IO carries the conversation between them, so an application never goes quiet while someone waits on email.

The problem

Hiring breaks down in the gap between applying and hearing back. Candidates submit into silence, recruiters lose track of who is at which stage, and the whole conversation ends up scattered across inboxes.

The goal

Build one place where both sides of a hire can act — search and apply, post and review — with the conversation attached to the application rather than living in email.

How it was built

  1. 01Discovery

    Mapping two journeys before writing a line

    Candidate and recruiter needs pull a product in opposite directions. I wrote both journeys out first — search to offer, post to hire — and let the shared screens fall out of the overlap instead of designing one flow and bolting the other on.

  2. 02Development

    Turning the flows into a working stack

    A React front end talks to a Node and Express API over REST, with authentication, role-based routing and file uploads for resumes. Socket.IO runs alongside it for messaging and application updates, so the interface reacts the moment something changes server-side.

  3. 03Strategy

    Shipping in slices, not in one drop

    Auth, listings, applications and messaging each landed as a self-contained slice that worked end to end before the next one started. The deployed build was never more than one feature away from being demonstrable.

Project details

Role
Design and full-stack development
Type
Web application
Stack
React, Node, Express, Socket.IO

Key features

  • Public job board with search and filtering
  • Separate authenticated dashboards for candidates and recruiters
  • Stored candidate profile and resume upload, so applying is not re-typing
  • Recruiters post openings and move applicants through stages
  • Real-time messaging and application updates over Socket.IO

Challenges

  • Two audiences, one interface

    Candidate and recruiter needs pull a product in opposite directions. Designing either one first would have made the other an afterthought, so both journeys were written out before any screen was drawn and the shared screens fell out of the overlap.

  • Keeping the interface in step with the server

    An application that changes state silently is the exact problem the product exists to solve. Socket.IO runs alongside the REST API so the interface reacts the moment something changes server-side, rather than waiting for a refresh.

The Result

A deployed portal that handles the full hiring loop — search, apply, review, respond — with live messaging rather than a mailbox in the middle of it.

What I learned

Designing two roles at once is far cheaper than retrofitting the second one. Writing both journeys end to end before building meant the shared screens were deliberate rather than compromises, and shipping in self-contained slices kept the deployed build demonstrable at every point instead of only at the end.

Next projectAgreeCare

Want something like this built?

Tell me what you have in mind and I will come back with a plan, a timeline and a price.