Skip to content
FH
All projects
In development

Full Stack · Enterprise

Cari Kerja

Multi-role job portal with a super-admin console

Job portal ecosystem with candidate and recruiter apps, an admin console, an Express API, and Elasticsearch-backed matching.

Vue 3ReactExpressPostgreSQLElasticsearchRedisBullMQSocket.IODocker
Cari Kerja homepage

Overview

Cari Kerja is a job portal product with three surfaces: a candidate and recruiter web application, a super-admin console for moderation and billing, and a modular REST API. It supports multilingual content, CV parsing, application pipelines, chat, and candidate matching.

Problem & solution

The problem

The product needed a consistent hiring experience across candidates, employers, and moderators while keeping multilingual content, CV processing, and billing in one coherent data model.

What was built

A modular Express API with per-domain command/query/repository layers, a Vue 3 public app, a React admin console, PostgreSQL migrations, Elasticsearch for search and matching, and Redis-backed jobs and sockets.

Key features

  • Job discovery by city, company, category, and industry
  • Candidate profiles, CV generation, and résumé parsing with OCR
  • Recruiter dashboards, applicant pipelines, and talent search
  • Hybrid candidate matching using Elasticsearch dense vectors
  • Super-admin moderation, verification, billing, and audit logs
  • Real-time chat with presence and blocked-user handling
  • Four-language content (English, Indonesian, Russian, Uzbek)
  • Staging CI/CD with Docker images and SSH deployment

Technical implementation

Three clients talk to one Express API. Search and matching run on Elasticsearch, background jobs and chat use Redis, and each surface deploys as a Docker image.

Clients

Vue 3 public portal · React super-admin console

API

Express 5 with per-module commands, queries, handlers, and repositories

Data

PostgreSQL with 60 SQL migrations · Elasticsearch dense-vector matching

Async

Redis + BullMQ workers · Socket.IO chat with presence

Delivery

Docker + nginx · GitHub Actions staging deployment

My contribution

  • Added backend health checks and job-title/category tenure filtering.
  • Wrote data remapping scripts and improved test coverage on the API.
  • Set up staging CI/CD with Docker and SSH deployment, including timeout fixes.
  • Improved frontend asset caching with nginx no-cache and immutable header rules.
  • Shipped the apply-job modal, CV drag-and-drop upload, and role guards.
  • Built category internationalisation and multi-locale news in the admin console.

Visual showcase

Cari Kerja job listing page
Job listing
Cari Kerja company directory
Company directory
Cari Kerja homepage on a mobile viewport
Mobile homepage
View all