Pre-Employment Skills Testing for a Mauritian Bank
Designed and built a clickable skills assessment platform for a Port Louis commercial bank: campaigns tied to ATS requisitions, tests mapped to the competencies of each role, blind grading against calibrated rubrics with second marks, and scores that go back to the ATS as a suggested band while a recruiter makes every decision.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, campaigns, campaign detail with 4 tabs, grading queue with 5 tabs and the grading workspace for code and written answers, plus the New campaign sheet. All 15 demo campaigns and all 35 responses in the grading queue open their own page.
Graders see a response reference such as R-48120-2, never a name, accommodation or integrity flag. On a second mark the first grade stays hidden until the grader submits.
A 20% sample and every response within one rubric level of a cut get a second mark. A gap of more than one level on any criterion goes to the lead grader, and a lapsed calibration locks that rubric.
15 campaigns across 6 role profiles, 6 assessments with 16 sections, 5 rubrics with level descriptors and anchors, 44 grading assignments and 19 staff users.
Morne Brise hires about 550 people a year with three tools that did not talk to each other: a quiz tool whose 40 questions had circulated among students for four years, coding exercises emailed as zip files and marked without a shared rubric, and Word documents for the graduate case. A webcam monitoring trial was stopped by the data protection officer, accommodation requests went unanswered, nobody could tell whether any test disadvantaged a group, and rejected candidates got no feedback.
Balans runs each assessment campaign from an ATS requisition, only offers tests mapped to the role's competencies, and grades written and code answers blind against calibrated rubrics with second marks. It scores and suggests a band, sends results back to the ATS and leaves every progression or rejection to a recruiter.
A bank hiring tellers, credit and AML analysts, engineers and graduates has to show that each test measures the job, that graders agree with each other, and that candidates' personal and sensitive data is handled under Mauritian law.
Coding submissions were marked by whichever engineer had time, and two engineers scoring the same submission often disagreed by two grades out of five. Without rubrics, anchors or calibration, a score said as much about the grader as the candidate.
The Data Protection Act 2017 asks for collection limited to what the test needs. Balans records only focus loss, paste size, IP changes and a second device, with no webcam, microphone, screen recording or attention scoring, and no flag changes a result without a person's decision.
Impairment is a protected status under the Equal Opportunities Act 2008. Candidates can ask for 25%, 50% or 100% extra time, breaks or alternative formats, and only the accommodations coordinator sees the request. Graders and hiring managers never learn that one was made.
The Act generally gives people a right not to be subject to a decision based solely on automated processing. Balans auto-scores only against answer keys, test cases and query results, sends a suggested band to the ATS and has no auto-reject action anywhere.
Mapped 12 user roles from recruiter and grader to fairness analyst, data protection officer and candidate, and 38 screens: 32 for staff and 6 for candidates. Defined the data model for role profiles, assessments, items and pools, sittings, rubrics, calibration, integrity cases and accommodations, and wrote down the rules the design follows: the Data Protection Act 2017, the Equal Opportunities Act 2008, Bank of Mauritius outsourcing expectations, WCAG 2.2 AA and good testing practice.
Built 5 key screens on a production dashboard kit: the dashboard with KPIs, active campaigns, role-based My work and sittings per week; campaigns with status filters and completion; campaign detail with candidates, results histograms, setup and activity; the grading queue with calibration status; and the blind grading workspace with code, test results, diff against the starter code, case packs and rubric scoring. All actions run on local state.
Write-back to SAP SuccessFactors or Workday Recruiting, a self-hosted Judge0 sandbox and disposable PostgreSQL databases for code and SQL tasks, JPlag similarity checks, Microsoft Entra ID sign-on, email and SMS reminders, and ServiceNow for accommodation cases. The candidate test runner, item bank, calibration, integrity and adverse impact screens, the audit log, retention rules and Azure hosting with a recorded safeguard for each transfer.
When a recruiter sets up a campaign, only assessments linked to the requisition's role profile can be chosen; others show Not mapped to this role. The summary shows time per candidate, devices per section, competencies covered and estimated grader hours.
Campaign results show score histograms per section with the cut marked, and the cut is labelled guidance, not a decision. Bands are suggestions sent to the ATS, where the recruiter progresses or rejects the candidate.
Each rubric row shows its level descriptors and a calibration anchor, every score needs an evidence note, and the running total shows its band. Graders work only on rubrics they are calibrated for, valid for 6 months, and disagreements go to the lead grader.
The campaign candidate list shows a neutral Adjusted timing marker where an accommodation applies and never the reason. The grading workspace hides names, accommodations and integrity data entirely, so nothing but the answer shapes the grade.

Designed and built a clickable applicant tracking system for a Bratislava retail and logistics group that hires about 3,500 store, warehouse and driver staff a year: a hiring dashboard, jobs with pay ranges on every posting, a per-job pipeline board with no ranking or AI sort, candidate profiles with consent and retention, and a knockout review where a person confirms every rejection.

Designed and built a clickable AI-assisted screening tool for a New York City fintech's Technology Graduate Programme: blind resumes with quoted evidence against a short list of job-relevant criteria, a recruiter who advances, holds or rejects with reasons, a second review of risky rejects, and a candidate request inbox - with no auto-reject, no overall score and no ranking.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab