top of page

Enterprise Platform

EMD 

An Enterprise Management platform — five user roles, nine HR modules, eight finance modules, ten cross-operational workflows — currently in active development.

Role

Lead Product & UX Designer

Client 

Confidential

Team

SOC

Hero.png

The Problem

The existing HRMS had outdated UI, inconsistent flows, and a design that no longer reflected how the business operated. The immediate priority was the Jobs Module — a multi-stakeholder approval flow connecting Managers, Finance, and HR with discussion, objection, and resolution built in.


The broader challenge: how do you design for five completely different user types — Employee, Manager, HR Admin, Finance Manager, CEO — without building five disconnected products?

My Role

Led the full UX and UI across the platform — IA, lo-fi wireframes, design system, hi-fi screens across all modules. Also mentored a junior designer through hi-fi execution, using the design system I built as the shared foundation. Both designers working simultaneously across a large surface area, consistently.

Design Process

Stakeholder

Alignment

Existing

Product Audit 

IA &

User Flows

Lo-Fi

Wireframes

Design System

Creation

Hi-Fi Design

(Led + Mentored)

Developer Handoff

Ongoing Iteration

Information Architecture

Information Architecture.png

User Flows

Wireframs, Lo-Fi Ideation 

The Jobs Module was designed and handed off first — developers began building while the rest of the platform was still being designed.

Key Design Challenges

01

A multi-stakeholder approval chain that didn't collapse under its own complexity Manager creates, Finance approves budget, HR approves headcount — at any point either can request changes, raise queries, or reject. The challenge was making this feel like a guided conversation, not a bureaucratic obstacle course.

The solution: a discussion and objection system built directly into the approval flow — query flags with severity levels, shared conversation history, unread badges, and response status tracking. Every stakeholder always knows exactly where the request stands.

02

The org chart at the moment of decision, not elsewhere Finance and HR were approving job requests without seeing where the role sat in the company hierarchy. The org chart was embedded directly into the review interface — role position, band, and salary range visible at the point of decision. No individual employee names exposed.

03

Role-based access that reflected real trust boundaries Every permission boundary was a trust decision as much as a design decision. Managers see their team but not all employee contact details. HR and Managers toggle between administrative and personal views. The CEO sees strategic KPIs, not individual task tracking.

04

Design system before design Designing without a shared foundation across a large surface area with two designers would have created inconsistency that cost more to fix than to prevent. Components, spacing, typography, colour tokens, and interaction patterns were defined before a single hi-fi screen began. The system became the reference layer connecting design to implementation.

05

What a job post actually needed to be Once approved, HR needed to turn a request into a publishable post without writing from scratch every time. A drag-and-drop text block library — pre-defined blocks for culture, benefits, requirements, and policies — solved it. Applicants apply via a direct platform link so every candidate is tracked internally from first touch.

The Product

(Under NDA)

Preview.png

AI in my Workflow

Information Architecture

Five user roles and ten workflows stress-tested with AI for completeness before wireframing — missing states and edge cases caught early

Flow Logic

Multi-stakeholder approval chains, query resolution states, and permission boundaries worked through with AI before design began

Layout Exploration

Figma Make used to explore layout directions rapidly at wireframe stage

Design System

Component naming conventions, spacing logic, and token structure defined with AI consistently across a large system

UI Copy

Copy across all five portals — empty states, notifications, error states, status labels — written and refined with AI

AI accelerated architecture, logic mapping, and exploration — all final design decisions, visual direction, and system thinking remained my own.

Where it stands

The Jobs Module is designed, handed off, and in active development. All remaining modules are in hi-fi design, progressing in parallel with development. The platform is on track to replace an outdated HRMS with a system that connects three stakeholders clearly, scales without breaking, and gives each user exactly what they need — without exposing what they shouldn't see.

Success Metrics

(The primary question: is the Jobs Module making the hiring process faster and clearer for all three stakeholders??)

Jobs Module — primary

Job request approval turnaround — average time from manager submission to published job post. Validates the multi-stakeholder approval chain design. Target: under 5 business days

Query resolution rate — percentage of queries raised by Finance or HR that are resolved within one response cycle. Validates the discussion and objection system. Target: 70%+

Resubmission rate after rejection — percentage of rejected job requests that are edited and resubmitted. Validates feedback clarity in the review interface. Target: 65%+

Time from request to published post — end-to-end flow efficiency from manager creation to live job post. Measures whether the full approval chain is working as designed

Stakeholder adoption — diagnostic

Manager wizard completion rate — percentage of managers who complete all five steps without abandoning. Validates the wizard flow design. Target: 80%+

Finance and HR review turnaround — average time each stakeholder takes to act on a request. Identifies bottlenecks in the approval chain

Org chart reference rate — how often Finance and HR view the embedded org chart during review. Validates the decision to integrate it at the point of decision

More Projects

bottom of page