Back to Portfolio
Web & CMS Modernization

Recruitment Portal & CMS Modernization Platform

A comprehensive modernization of the company's recruitment portal and internal CMS. The old CodeIgniter/MySQL system was fully migrated to a modular, performant Next.js + Express.js + PostgreSQL architecture ready for long-term growth.

Role

Lead Architect & Full-Stack Developer

Timeline

2022 – 2023

Organization

PT. Jurnalindo Aksara Grafika (Bisnis Indonesia Group)

Next.jsExpress.jsPostgreSQLDockerRESTful APIs

Impact & Tangible Results

<1.2s

Page Load Time

Down drastically from >5 seconds in the old system, significantly improving user experience.

95+

Lighthouse Score

Near-perfect Lighthouse performance, accessibility, and SEO scores.

100%

Process Digitalization

The entire recruitment workflow from posting to onboarding is recorded in the system.

Auto

Candidate Notifications

Application status emails sent automatically, saving HR team hours of work every week.

Problem Statement

The old recruitment portal had very poor performance (load time >5 seconds), a non-responsive mobile interface, and no applicant tracking features. The HR team processed applications manually via email with no centralized candidate visibility.

Solution & Architecture

Built a modern recruitment platform with a Next.js frontend optimized for SEO and performance, a clean Express.js backend API, and PostgreSQL for well-structured data.

Architecture Details

Next.js App Router with SSR for job listing pages (SEO-optimized) and CSR for HR dashboards.

Express.js backend with a clean middleware chain: auth to validation to business logic to response.

PostgreSQL schema redesigned from scratch to support flexible recruitment workflows.

Email notification system using transactional email providers with customizable templates.

Role-based access: Admin HR, Recruiter, and Candidate with role-appropriate permissions.

Key Modules & Features

Public Job Listing Portal

SEO-optimized (SSR) job listing and detail pages, responsive on all devices, with category and location filters.

Next.jsTypeScriptTailwind CSS

Application & ATS System

Applicant Tracking System allowing applicants to apply online and recruiters to track each candidate from applied to hired/rejected.

Express.jsPostgreSQLNode.js

HR & Recruiter Dashboard

Admin panel for HR teams to manage job postings, review applications, schedule interviews, and update candidate status.

Next.jsReactExpress.js

Editorial Content CMS

Content management system for the editorial team to publish career articles and company information without needing a developer.

Next.jsExpress.jsPostgreSQL

Email Notification Engine

Automatic email sending for application confirmations, status updates, interview invitations, and selection result announcements.

Node.jsNodemailerTemplate Engine

Challenges & Engineering Solutions

Challenge #1

Migrating historical applicant data from old MySQL to PostgreSQL without data loss.

Solution

Node.js ETL script to extract, transform (normalize), and load data into the new schema, run in batches with checksum validation.

Challenge #2

SEO for job pages that were previously client-side rendered and not indexed by Google.

Solution

Implemented SSR with Next.js App Router, structured data (JSON-LD JobPosting schema), and a dynamic sitemap for optimal search engine indexing.

Challenge #3

Non-technical HR teams needed a truly easy-to-use CMS.

Solution

Redesigned the CMS interface with intuitive UX including drag-and-drop, real-time preview, and step-by-step wizards for HR team independence.