HR Paperwork on Autopilot

End-to-end redesign of a 20-year-old attendance system into two agentic
apps, one for the people who clock in and one for their managers
Problem
A 20-year-old attendance app that staff were made to use and quietly resented: workers and managers squeezed into one app with separate logins, no clock-in from the phone, and screens that broke on new devices.
Direction
Fifteen interfaces benchmarked, five interviews and three personas split one tangled product in two: an app for the people on the floor and one for the people running it.
Build
Wireframed, prototyped and tested in six sessions, then taken further: AI that handles the routine within each manager’s own rules and flags everything else.
Outcome
Autopilot approves what meets the rules and answers routine questions, and every action it takes can be reviewed, approved or undone by the person in charge.
2Apps Delivered 1,000+Employees per Client 10,000+Active Users

Powerful software nobody enjoyed using

Tessel is an attendance and HR system with twenty years behind it, used by large European employers, firms and public bodies with 10,000+ users clocking in every day. It did almost everything: clock-ins, absences, vacation requests, even canteen bookings. We were brought in to rebuild it from the ground up, and in its latest iterations it became agentic: AI handles the routine, and a person stays in charge.

Tessel is a stand-in for a product that shipped under another name and brand, built for a company I can’t name, so confidential information and features have been changed or left out here.

Human as the tool

Most HR software hands people a tool, and lately that tool is AI. Tessel turns it around: agents run the everyday HR on their own, approving, answering and reminding, and HR is the tool they reach for when a case needs judgement, above all when the stakes are high.

“Old, developed internally, not the prettiest, and not functional.”

NunoProduct Owner

“The design is the big mistake of this application, and it doesn’t work on new phones.”

DanielDevelopment

The problems with the old system

The legacy app was a dense, list-first home that hadn’t kept pace with the phones people actually carried. Six problems defined the brief.

The legacy app's home screen, a dense list-based interface

How the project ran

The plan was a straight research-led arc: understand the product and its people first, then ideate, prototype and validate before handing over a build-ready file. The autopilot came later, after launch, and the final design picks up that part of the story. One curveball shaped the later stages: the other UX designers on the project rotated off halfway through, which the reflection comes back to.

01 Research Benchmark · interviews 02 Ideation The two-app split 03 Prototyping Miro to Adobe XD 04 Validation Six sessions · sign-off 05 Autopilot AI on top

What a modern punch-clock looks like

Before drawing a single screen, I mapped the field. Fifteen interfaces in all: the four faces of the client’s own suite (web and app, for employee and manager) alongside rivals like Clock Punch, Folha Certa (now Flash), Ponto Go and Sesame. Every screen went onto a Miro board and got scored on the same rubric.

What the benchmark made clear

The foundation was already in the building

The benchmark also turned up something useful inside the client’s own suite: a web version, with no clock-in, just schedules and justifications, but friendlier and more functional than the mobile app. It became the base of the whole project: the same Material Design foundation, carried onto the phone instead of reinvented.

The suite's web version, friendlier than its app, which became the design base
The web version: the design base

Cleaner hierarchy, real components, and patterns the company already trusted. Rather than start from a blank canvas, I lifted what worked here onto mobile and let the two products finally feel like one system.

The conversations that set the brief

Between October 25 and 29 I interviewed five people tied to the product, each with a protocol tuned to their discipline: Filipe (business), Nuno (product owner), Daniel (development), Francisca (marketing) and Joana (sales). I also sat down with the people who use it every day: workers clocking in on the floor and the managers signing off their requests. Reading across the transcripts, three quotes did more to shape the work than any feature list.

“The login, user and password for employee and manager is different. I don’t like that duality of logins, it would be easier to have two applications. When I want the manager side, I just go to the web.”

NunoProduct Owner

“The mobile element is a differentiator. On its own it rarely wins a deal, but we never get left out for lacking mobile, and we get very much in for having it.”

JoanaSales

“What causes the most strain is opening the project for maintenance, to fix bugs or meet a client need. It is very hard for us, we don’t have the resources to spare that time.”

DanielDevelopment

Three people on the clock

Most of these users work for traditional employers, many of them state-owned, where remote work is the exception and the law requires every hour worked and every request to be on record. The interviews and the client’s own user data converged on three recurring profiles, two on the floor and one running it. A persona was built around each, and every one carried a specific friction that shaped a screen later in the project.

One product, split in two

Research settled the shape of the product before any screen was drawn. Both apps run in the browser, on the desktop and on the phone, and this page shows each where it gets used most.

One login for three people

Maria and Joaquim clock in on the floor, António runs the shift from an office, and the shared home fit none of them. It was the loudest complaint in research.

Three routes on the table

A role switch built every screen for two people, and phone plus web left António switching tools mid-task. Two apps meant a second front end, kept small by one engine and one set of components.

Two focused apps
Tessel Employee opening on Rodrigo's clock status
Tessel Employee For the people on the clock
  • Clock in inside the site’s geofence, with Face ID
  • Gaps flagged before the timesheet closes
  • Time off and canteen, a few taps each
  • An assistant that reminds, answers and books
Tessel Manager opening on the day: requests waiting, machine alerts and who is out
Tessel Manager For the people running the floor
  • Who’s in, out and late, the moment it opens
  • Approvals on autopilot, within their own rules
  • Clocking machines and their alerts on a map
  • Rota gaps flagged, with a fix suggested

Two apps, one engine

Whatever a worker sends and whatever a manager decides goes through the same engine, and that is where the autopilot works.

EmployeeClock-ins, time off, lunch
One engineRecords, rules and one component setAutopilot, off until switched on
ManagerApprovals, rota, rules

From boxes and arrows to real screens

Both apps started as wireframes in Miro, sketched as one connected flow before any visual design. Cheap to draw, cheap to change, and reworked until the structure held.

Why the order mattered

The apps could have shipped a dozen features at once, but the development team had no room to build and maintain them all. So I built what people were angriest about first, and let the rest follow by how much it hurt to live without.

1
The last punch

Workers never knew if a clock-in had registered, and a wrong entry could cost them at payday. I led with the home screen that shows your last punch on open: the question workers asked most, answered cheaply with data the system already held.

2
Phone requests

Next came acting on it: requesting a day off or holiday from the phone. I held these back until testing fixed a confirmation gap, since a request you can't tell went through is worse than none.

3
Daily approvals

Managers clear approvals and check who is in every day; the shift rota is a weekly job. So the dashboard and one-tap approvals shipped before the fuller scheduling tools.

4
Fast follows

Nice-to-haves like canteen booking and a richer schedule became fast follows, close behind launch, so they never delayed what people were actually waiting for.

5
The autopilot

Only once people trusted the basics did the routine go to AI: approvals within each manager’s own rules, replies to routine questions, reminders before a deadline. There was no point automating an app people didn’t trust yet.

Rebuilt on Material and tuned for the final users

Tessel Employee: proof at a glance

Every screen answers a worker’s real question fast, starting with the one Maria and Joaquim asked most: did my clock-in count? Where something needs doing, the assistant says so first.

Clocking in from the phone also clears the queue at the machine, where hundreds of people can turn up at once at shift change. The map is what keeps it honest: the button only works inside the site’s geofence, with location switched on, so nobody clocks in from the sofa.

Tessel Manager: the floor on autopilot

An app of its own that opens on the day, so António sees who’s in, what’s waiting and what the AI already handled, and only steps in where it flags him.

From tolerated to trusted

Set the legacy home beside today’s: a wall of options nobody enjoyed opening became a calm screen that answers the first question of the day, with the assistant already pointing at what needs doing.

The legacy app's home screen
Before

The legacy app

  • The home was a list of every option at once, and nothing on it said whether you had clocked in.
  • Workers and managers shared one app with two logins, a shell built for neither of them.
  • A missing punch only showed up when payroll closed, too late to fix it calmly.
  • Every request waited for a manager, however routine it was.
  • Layouts fell apart on newer, larger phones.
After

Tessel today

  • It opens on your clock status, whether you’re in and inside the site, with the clock-in a tap away.
  • Two apps, one for each job, so nobody shares a login or a home built for someone else.
  • The assistant flags what needs you, a gap to justify, days about to expire or a lunch to book, before it turns into a problem.
  • Routine requests are approved within the manager’s own rules, each one listed and reversible.
  • Contrast is checked against WCAG, and the apps shipped in four languages, starting with European Portuguese.
Tessel Employee home screen

Six sessions before handoff

Before I called the prototype done, I ran six moderated remote sessions on it, solo, with four floor employees and two team managers from outside the company, people who had never seen the product. Each one thought aloud over a video call while sharing the Adobe XD prototype on their own screen. The core flows held up, and it scored 84 out of 100 on the System Usability Scale, the standard usability survey testers fill in at the end.

6 Moderated sessions, solo
84/100 System Usability Scale
4+2 Floor workers + team managers

A good score can still hide where things break, so every tester ran missions, the real jobs of a working day: four for the workers and one for the managers. Success, time on task and taps off the intended path show where the flow held and where it leaked.

What testing changed

Four issues came out of the sessions, three of them behind the weak missions, and each one changed the build before handoff.

Autopilot, with a person in charge

The autopilot came after launch, once AI could read a medical note and check it against the rota in seconds. HR teams were losing hours to that kind of back-and-forth, so the apps let a manager hand the routine to AI and keep the judgement calls.

Both prototypes are complete, unhappy paths included, from a clock-in outside the geofence to a Face ID that fails.

Rules a person sets
Autopilot approves only what meets the manager’s own rules: a late arrival under 15 minutes and the first that month, up to two remote days a week, a shift swap both people agreed to.
Flagged, with a reason
Anything outside the rules waits in Approvals with its reason attached, such as over the limit, the third this month or the team short that day, plus an AI summary to decide from.
Undo on everything
Everything the AI did today is listed in the assistant, each action with Undo, and every reply it sends to the team is labelled as AI.
On the employee’s side
On the phone, the assistant reminds staff to clock in at the site, flags gaps before timesheets close and books the usual lunch, each only if they switch it on.

From João’s phone and back

João asks for tomorrow off. Nobody else is out and the shift is covered, so there are no grounds to say no, and making him wait would add a day and change nothing.

João asks for tomorrow offTwo taps in the employee app
The autopilot checksThe rota, who else is out, his balance and any document
Within the manager’s rules?
Approved by the autopilotLabelled as AI, and the manager can still undo it
The undo window closesEach company sets how long it stays open
Flagged with the reasonWaiting in Approvals, with an AI summary
The manager decidesApprove or deny, from one screen
João hears backOnly once the answer is final, with who gave it
Off until a company says yes

In testing, people worried that one tap could approve everyone at once. So every automatic decision lands in a list with Undo, and the autopilot ships switched off: onboarding explains it, and each company decides.

What happened after handoff

I handed off a build-ready prototype, signed off screen by screen, and the product kept growing from there into the agentic apps it is today. After launch, the numbers moved where it mattered.

62%Clock-ins made on the phone, up from none
7×Faster approvals, 2.9 days → 10 hours
58%Routine requests settled by the autopilot, each one reviewable
−41%Back-and-forth messages per request, 4.6 → 2.7
The client got behind it

The client took to it fast and read it as a sales lever, the mobile edge their sales team had asked for in the interviews.

A prize, and a stage

The project won the company’s internal prize for best solution for an international client, and I was invited to present it to the whole company, more than once. Getting to tell its story to the people I had built it beside meant as much as the sign-off.

What the project taught me

Four things from this project stuck, and I lean on all of them now.

Trust starts at zero

Nobody chose this app; their employer handed it to them. What won them over was small: seeing their punch had counted the second they opened it. I bring that starting point to every internal tool now.

Document like you'll leave

When the other designers rolled off halfway through, only the documentation carried the thread. Now I write and share as if I could be gone tomorrow, so the work holds together as the team changes.

An agent shows its work

I’d rather ship an AI that shows what it did than a clever one. In Tessel every automatic action is listed, labelled as AI and one tap from Undo, because a manager who can’t check it will switch it off.

Paperwork can answer itself

A request for a Friday off used to take days of messages, with the answer in the system all along. Now agents read the request, the rota and the rules together, and people keep the calls that need a person.

More from the portfolio

A pension journey rebuilt from the brief up, and an academic
paper on how Japan’s design culture turned inward