Claude AI

How Javra Built a Production-Grade HR System Powered by Claude AI?

How Javra Built a Production-Grade HR System Powered by Claude AI?

How Javra Built a Production-Grade HR System Powered by Claude AI?

The Challenge

A Legacy System That Had Outlived Its Time

Javra's Leave Management System (LMS) — the HR backbone used by employees across Nepal, the Netherlands, and Portugal — was build on OpenEdge ABL, a 1990s enterprise platform with steep licensing costs, a shrinking developer pool, and a UI that hadn't meaningfully changed since 2011.

Every year, licensing renewal came around and the question was the same: pay again, or migrate? The answer was always 'pay again' — because migrating a complex, multi-country HR system with 15+ years of accumulated business rules felt impossibly risky and expensive.

The legacy system contained 27 database tables, 98 business rules spread across ~70 procedure files, and a thick-client admin app with a jQuery web portal from 2011. Four core problems made the status quo unsustainable:

  • High OpenEdge licensing costs renewed annually with no reduction in sight

  • Scarce developer talent — OpenEdge/ABL specialists are nearly impossible to hire

  • No mobile support — employees were forced to use desktop browsers only

  • GDPR compliance gaps increasingly difficult to address on legacy infrastructure

"This isn't a greenfield build. It's replacing a running production system that all employees depend on daily. Getting a single rule wrong means someone's leave balance is incorrect."

Not a Chatbot — an AI Coding Agent

Claude Code is Anthropic's AI coding agent that runs directly in your terminal. It reads files, writes code, runs commands, and executes tests — guided by project-level configuration. It is fundamentally different from a chat assistant.

  • Not a chatbot — it operates directly on the codebase, running real commands in the terminal

  • Configurable — project instructions, rules, hooks, skills, and agents define its behaviour

  • Persistent memory — remembers decisions and conventions across sessions

  • 1 developer + Claude Code built this entire system in 9 days with 137 commits


Spec-Driven Development — Writing Specs Before Code

Instead of coding first and documenting later, Javra wrote specifications first and used them as the contract between human decisions and AI implementation. Every line of code traces back to a spec section. No orphan code. No undocumented behaviour.

  • Product spec (product.md, 250 lines) — what and why, 73 requirements across 14 areas

  • System spec (system.md, 2,250 lines) — full architecture, schemas, algorithms

  • Legacy spec (legacy.md, 700 lines) — reverse-engineered from source code and live databases

  • Task plan (tasks.md) — ordered implementation tasks mapped to spec sections

  • Design spec (design.md) — visual patterns, tokens, accessibility rules

Total spec surface: ~3,200 lines. Management can read product.md and know exactly what is being built.

"Claude Code reads the specs before writing any code. The specs are the interface between human judgment and AI execution."

The Automated Development Loop

For each of the 52 implementation tasks, Claude ran a complete, automated quality loop: write code, run tests, lint, review, and fix — before marking the task complete:

HOW THE AI WAS CONFIGURED 

The Bootstrap Sequence — Teaching the AI the Project

The Claude Code configuration was not written all at once. It evolved over the first six days as patterns emerged and corrections were made:

  • Day 1: Specs first — wrote product.md, system.md, legacy.md from stakeholder interviews and legacy DB exploration

  • Day 1: Scaffold — CLAUDE.md with commands and ports; first rules for structure, database, and TypeScript

  • Day 2: Discovery agent — built to extract legacy business rules; ran against each domain before coding

  • Day 2–3: First CRUD cycle — built Employees manually, noticed the repeating 16-file pattern across the stack

  • Day 3: Skills emerge — codified CRUD into /crud-scaffold; created /task-prep and /task-review workflows

  • Day 4+: Rules from corrections — every time Claude Code was corrected, the correction became a permanent rule file

The result: 11 rule files, 7 specialized reviewer agents, 5 reusable skills, and 8 automated hooks — all version-controlled alongside the code. The AI configuration gets smarter over time through a self-learning loop: each correction in one session becomes a known pattern in the next.

PHASE 1: LEGACY EXTRACTION 

Deep Legacy Extraction — In Days, Not Months

The biggest risk in any migration is missing business rules buried in legacy code. The old LMS had 98 business rules spread across ~70 procedure files, with logic dispatched through a framework event system and country-specific branches buried deep in conditionals.

Claude's discovery agent connected directly to the legacy OpenEdge database, read every line of the relevant procedures, traced framework event handlers, anotated every branch by country, and cross-referenced code understanding against actual data dumps. Artifacts were saved per domain for persistence across sessions.

What would have taken a senior developer 4–6 weeks of careful archaeology took days. The artifacts were not summaries — they were annotated function-level extractions with branches, edge cases, and test scenarios that fed directly into the task checklists.


WHAT WAS DELIVERED 

A Full-Featured, Multi-Country HR Platform

The new LMS is not a simplified rewrite — it is a full-fidelity migration with a modern foundation, serving all four user personas across three countries.

Multi-Country Business Logic — All in One Codebase

  • Nepal — Nepali calendar, mid-July fiscal year start, monthly leave accrual (0.5 days/month)

  • Netherlands — Statutory vs. non-statutory leave expiry rules, GDPR compliance built in

  • Portugal — Country-specific leave types, holiday calendars, and eligibility rules

PROJECT PROGRESS 

Five Milestones — 40 Features Delivered

The project is structured into five milestones. Three are complete, one is in progress, and the final data migration milestone is pending external readiness.


TECHNICAL FOUNDATION 

Built to Last — Modern Stack, Zero Proprietary Licensing

The new system uses a modern, widely-supported stack that any TypeScript developer can maintain — no proprietary runtimes, no expensive licenses, no platform lock-in beyond Azure which the client already uses.

QUALITY ASSURANCE 

Quality Was Non-Negotiable

One concern with AI-generated code is quality drift — code that works today but becomes unmaintainable tomorrow. Javra addressed this directly by encoding quality constraints into Claude's workflow itself.

  • Spec traceability on every file — every implementation file has a @spec comment linking it to the product or system spec section. Code and requirements stay in sync.

  • Automated drift detection — a custom hook checks before every task completion that API docs match routes, schemas match types, and environment variables are documented.

  • Three-tier test coverage — unit tests for business logic, integration tests against a real PostgreSQL database, and Playwright E2E tests for user-facing flows.

  • Security enforced at both layers — authorization at the service layer (backend enforcement) and UI layer (UX). Self-approval prevention, ownership scoping, and role delegation all verified by tests.

  • Independent code review agents — after implementation, separate reviewer agents checked for bugs, security issues, and logic errors with no shared context from the implementing agent.

BUSINESS CASE 

The Numbers That Matter to a Business

Here is the business case in plain terms — comparing the legacy OpenEdge system against the new TypeScript stack on every dimension that affects cost, risk, and maintainability.

A system of this complexity — multi-country HR logic, approval workflows, balance engines, attendance tracking, reporting — would traditionally require a team of 4–5 engineers and 12–18 months. With Claude Code, a leaner team delivered 40 complete, tested features across three milestones in a fraction of that time.

WHAT MAKES THIS DIFFERENT 

Traditional Migration vs Spec-Driven + AI Agent

This approach differs from traditional migration in every phase — from how knowledge is captured, to how code is written, to how quality is enforced.

HUMAN-AI COLLABORATION 

The Human-AI Division of Labor

The human makes all architectural and business decisions. The AI executes with high fidelity. The specs are the interface between human judgment and AI execution.

  • Human decides: what to build, how to structure it, which business rules to preserve, design direction

  • AI executes: writes code, runs tests, catches drift, applies patterns consistently across all files

  • Human reviews: task-review output, milestone-review findings, all design choices

  • AI remembers: project conventions, past decisions, patterns — across sessions via persistent memory

RISK MITIGATION 

How Risk Was Managed

Migration risk was addressed systematically at every layer — not left to hope or manual review.

  • Business rule fidelity — every legacy rule has a spec reference, a checklist item, and a test

  • Data migration — planned parallel run (M5) to verify before cutover; legacy system stays available for rollback

  • Security — defence-in-depth enforced by rules; every action checked independently at backend and frontend layers

  • Knowledge retention — all decisions live in specs and rules, not in anyone's head

  • Quality — 76 test files, automated drift checks, specialized review agents for each layer

  • Zero downtime — parallel run period means both systems run simultaneously before cutover.

WHAT THIS MEANS FOR YOU 

A Repeatable AI-Assisted Delivery Process

Javra is not just using AI as a productivity tool. We have built a repeatable AI-assisted delivery process — with structured discovery, spec-driven implementation, automated quality gates, and persistent project memory that carries context across sessions.

This process works for:

  • Legacy migrations — extract buried business rules, modernize the stack, keep every rule. Reduce migration risk dramatically.

  • Greenfield products — go from spec to working, tested software faster than traditional development. No shortcuts on quality.

  • Long-running systems — quality gates and spec traceability keep the codebase maintainable as it grows over years.

  • Cost reduction — eliminate proprietary licensing, shrink the team needed, cut delivery timelines without cutting corners.

If your organization is running on aging technology — whether OpenEdge, Oracle Forms, legacy Java, or a custom framework — and you've been putting off migration because it felt too risky or expensive, the calculus has changed.

AI-assisted development with Claude Code makes complex migrations achievable at a cost and timeline that was previously impossible.

LET'S TALK 

Contact Javra

Javra has been building software for over two decades. We now combine that engineering experience with the newest generation of AI tooling to deliver projects that are faster, higher quality, and less expensive to maintain.

If you have a legacy system you've been living with longer than you should — or a new product you want to build right the first time — we'd like to hear about it.

Visit us at javra.com to start the conversation.

Javra Software · Engineering solutions that last · javra.com · Published June 2026

Share Blog

Share your vision with us, and we’ll craft the technological solutions that make it a reality

Share your vision with us, and we’ll craft the technological solutions that make it a reality

Share your vision with us, and we’ll craft the technological solutions that make it a reality

Team up with Javra and turn your business challenges into intelligent, future‑proof digital solutions — built with precision and purpose.

Team up with Javra and turn your business challenges into intelligent, future‑proof digital solutions — built with precision and purpose.

Netherlands

+31 (0)345 515 930

Head Office

Landzichtweg 64, 4105 DP Culemborg, The Netherlands

Landzichtweg 64, 4105 DP Culemborg, The Netherlands

Portugal

+351 213 011 414

Nearshore Office

Alameda Fernão Lopes, Nº12, 6º Floor, 1495-190 Algés, Lisbon, Portugal

Alameda Fernão Lopes, Nº12, 6º Floor, 1495-190 Algés, Lisbon, Portugal

Nepal

+977-01-5408782

Offshore Office

Javra Software Nepal, Ward no 18, Nakhu, Lalitpur, Nepal

Javra Software Nepal, Ward no 18, Nakhu, Lalitpur, Nepal

Copyright © 2026 Javra Software | All Rights Reserved

JAVRA SOFTWAREJAVRA SOFTWAREJAVRA SOFTWARE