B2B SaaS · Fintech

Designing an invoice platform people can trust.

Product Design UX / UI Design System 2026
app.nemesh.io / overview
Nemesh Admin Overview dashboard: org-wide metrics, AI insights, processing trend, team performance and top suppliers.

When I joined Nemesh, the startup had a scanning server and a goal, faster invoice scanning, and nothing designed yet. As the sole designer, I shaped what the product became, end to end, for a BPO handling thousands of invoices a month, and wove an AI assistant through the interface, flagging, explaining, and guiding the work wherever it helps. It became a system of clear decisions: what clears on its own, what needs a person, and how every step stays legible.

From the product

65%
Shorter cycle time
87%
Zero Touch rate
40%
Lower exception rate
30%
More value processed

The Challenge

Thousands of invoices to fix.

Employee view

Scanning invoices is slow work. Employees correct them one at a time, all day, reading every field by eye and fixing what the scan got wrong. It is repetitive and draining, and every hour it takes is an hour the company pays for.

Team Lead view

No manager can see who is overloaded, which client takes the most time, or where errors are getting through.


Competitive Analysis

The gap no tool was built for.

I benchmarked the field, from legacy OCR suites to modern AP platforms. Each processes invoices for a single company. A BPO processes them for dozens of clients at once, and that gap defined the design.

Capability Legacy OCR & ERP SAP Concur, ABBYY, Kofax AP Platforms Rossum, Vic.ai, Medius, Tipalti Nemesh Where the design competed
AI Integration AI absent A few touchpoints ✓Extraction, checks, and insights
Automation Rate KPI Not measured Just a number ✓Live, per person & client
Exception Handling UX Manual, every time No source link ✓Every error linked to the doc
Anomaly Detection Human eyes only Rule-based flags ✓Explains why, in plain language
Multi-Client Architecture Out of scope One org only ✓Many clients, one interface
Processor-Level Visibility None Team-level only ✓Down to each person
Admin Intelligence After-the-fact reports Dashboards to read ✓Speaks up first, with next steps

Strategic approach

From messy inputs to a system that scales.

The research pointed at the real constraint: a single team carrying dozens of clients at once. Saving that team time was the business case, so I made it the measure every design decision had to answer to, and designed features of my own where the market had none, keeping only what got an invoice done faster.


The AI assistant

Designed to assist, the person decides.

01

Confidence you can act on

Every field carries a certainty signal, surfaced only where it drops, and the queue is ordered by what the AI is least sure of.

02

Anomalies caught early

Each invoice is checked against the client's history, so an unusual amount or a duplicate reaches a person before it clears.

03

A correction, not a flag

Beside every flagged field sits the value the AI believes is right, accepted or rejected in one click, so a fix costs a second.

04

Insights that recommend

Duplicates arriving from one supplier, a processor carrying twice the team average, each surfaced with a fix already attached.


Who it's for

One product, three roles.

Nemesh serves three roles, each with a different level of authority. The work here was making one product fit all three.

UD
Admin
e.g. Uri Davidoff

Manages users, clients, integrations, and automation policy.

Authority
Full platform
Team Lead
Owns a client group

Owns a team and its client group, and its Zero Touch Rate.

Authority
Approves ₪10K-₪50K
NC
Invoice Processor
e.g. Noa Cohen

Fixes fields on invoices the AI couldn't clear, then saves.

Authority
Their own client queue

Design system

Built for consistency.

I built the design system from the ground up: semantic tokens named for intent, a variable layer carrying theme and state, a status model with one color per state, and a component library on a strict type and spacing scale. I extended it with agents and skills I set up in Claude Code, one source of truth as it grew.

Text
Five roles carry every word, from bold headings to faint meta.
Heading
0E1525
Body
374151
Secondary
4B5563
Tertiary
6B7280
On color
FFFFFF
Surface
Depth from canvas to raised cards, plus a distinct AI surface.
Canvas
F8F9FB
Raised
FFFFFF
Sunken
F1F3F7
Selected
EAF1FE
AI
F1EEFE
Inverse
0E1525
Status
The core of the product: each state has one owned color, never reused.
Success
0B6B52
Warning
8A5410
Anomaly
9A3412
Error
A32D2D
Returned
992E54
Action & AI
Blue drives user action with a defined hover; violet is reserved for the AI.
Action
1B5FD9
Action hover
1549B0
AI
5A1BD9
Border
Three weights of edge, from hairline to selected.
Default
E7EAF0
Strong
D5DAE3
Selected
CFE0FB

Status and core text colors clear WCAG AA on light.

Typeface
Interface and data, English only.
Aa
Inter
Tabular numbers for aligned amounts.
Regular · Medium · SemiBold · Bold
Type scale
Six styles, 14px floor. Numbers show size / line-height in px.
Display
Zero Touch
24 / 32 · Bold
H1
Invoice review
20 / 28 · SemiBold
H2
Needs attention
18 / 26 · SemiBold
H3
Supplier details
16 / 24 · SemiBold
Body
Every field carries a confidence score.
14 / 20 · Regular
Overline
Zero touch rate
14 / 20 · SemiBold · caps
Spacing
A four-point grid. Every gap is a multiple of four.
space / 44px
space / 88px
space / 1212px
space / 1616px
space / 2424px
space / 3232px
space / 4848px
Radius
Two corners plus a pill. Consistency over choice.
radius / 8
Controls
radius / 12
Cards, modals
radius / pill
Toggles, avatars
Selected components
Input field component in placeholder, focused, filled and error states.
Input
Period selector dropdown showing quarters
Dropdown
Chart hover tooltip reading Week 9, Volume 300
Tooltip
Button component: primary, secondary, outline, text and danger variants, each in default, hover, focus and disabled states.
Button
Switch component, shown off and on.
Switch
Checkbox component, shown unchecked and checked.
Checkbox
Radio button component, shown unselected and selected.
Radio
Range slider for the AI quality filter, with linked min and max fields.
Slider
KPI card showing invoices processed, the value 3,128 and a 12 percent trend.
KPI card
Toast confirming an invoice was sent to a colleague, now in their queue to fix and resubmit.
Toast
AI insight card: a finding about a drop in Zero Touch, its likely cause, and a Review action.
AI insight
Zero-Touch trend chart with a Both, Amount and Zero Touch toggle
Chart

Feature spotlight · Admin view

Send to employee.

Send to employee is the path I designed to turn a flagged invoice into someone's task: the admin filters to the anomalies the AI flagged, opens one, and either clears it or picks an employee, a reason and a note, so the invoice lands in that person's queue with a name and a reason attached.

The full user flow

Start / end Admin action ✦ AI step Decision System step
Admin signs in Overview loads Open Invoices Filter · Status: Anomaly 6 AI-flagged anomalies Open an anomaly Approve or send? Approve Cleared Send Pick employee, reason, note Send to employee In the employee's queue

1 · Sign in

Nemesh log-in screen: email and password fields, with forgot-password, sign-up and contact-support links.

2 · Overview

1
AI insights, top-right
Insights that recommend
Each insight: a finding and a fix.
Nemesh admin Overview: KPI cards for invoices processed, Zero Touch rate, exceptions open and total value; three AI Insights each ending in a Review link; a processing trend chart; team performance with a Zero Touch rate per employee; invoices by status; and top suppliers by spend.
1 2
2
Team performance, right
Workload, visible
5 rates: the outlier shows itself.

3 · Invoices

1
KPI row, top
The whole picture, first
3,128 invoices, 25 need him.
The Invoices list for all clients, grouped by client, each group showing its invoice count, value and Zero Touch rate, with columns for supplier, amount, assigned employee, AI quality, status and due date.
1 2
2
AI quality column, center
Confidence you can see
Color and %: what needs a fix first.

4 · Filters

1
Status filter, center
Anomalies only
Filter to anomalies: the most urgent work.
The Filters panel open over the invoice list, with columns for client, assigned employee, status, supplier, an AI quality range, an amount range and a due date.
1 2
2
AI quality range, right
Doubt drives the queue
The AI's least certain, first in line.

5 · Anomalies

1
Filter chips, top-left
Filters you can see
3 chips: 3,128 down to 7.
The invoice list filtered to anomalies: seven invoices across four clients, each row showing its AI quality score, with one CloudServe invoice of two hundred thousand shekels left unassigned.
1 2
2
Top row, center
The AI sets the order
Least certain and unassigned, on top.

6 · Invoice detail

1
Read-only chip, right
Read-only on purpose
The admin routes; the employee fixes.
The anomaly invoice open for review: the source document on the left, read-only extracted fields on the right, an explanation that the amount is about ten times this supplier's usual, supplier history for comparison, and Approve or Send to employee actions.
1 2
2
Actions, bottom-right
Two ways to resolve
Approve the invoice, or assign it to an employee.

7 · Send to employee

1
Overlay, center
One overlay, the whole hand-off
Who, why, and what to do next.
The Send to employee overlay: a searchable list of six employees each showing the clients they run, the invoice being sent, four defined reasons, and a note that only the employee sees.
1 2
2
Reason radios, right
A reason is required
4 reasons: no blank hand-offs.

8 · Sent

1
Toast, top-right
Undo, not confirm
One toast, one way back.
Back on the filtered anomaly list with a toast confirming the invoice was sent to Ron Mizrahi and is now in his queue, with an Undo action, and the list now showing six invoices across three clients.
1 2
2
Filter chips, center
He never loses his place
Back to the filtered list, not the start.

Feature spotlight · Employee view

Upload and fix.

Upload and fix is the path I designed to keep the employee out of the data entry: the server extracts every field on drop, the AI flags what it doubts with a suggested value, and one click accepts it, so the invoice saves in seconds.

The full user flow

Start / end Employee action ✦ AI step System step
Employee signs in Dashboard loads Upload invoice Drop the file Server extracts every field ✦ 2 fields flagged, with a fix Accept the suggestion All fields extracted Save Saved successfully

1 · Employee dashboard

1
Completed today, top-right
His clients, one view
What he completed today, what cleared on its own, and how the queue breaks down.
The invoice processor's dashboard for Adva Pharmaceuticals: queue composition, Zero Touch rate, an anomaly banner and the invoice list.
1 2
2
Anomaly banner, right edge
The AI raises it
The most urgent of 12 anomalies, why it stands out, and a way straight to it.

2 · Upload invoice

1
Drop zone, center
Error prevention
Formats, size and outcome, stated before the upload.
The upload overlay: drop an invoice here, up to 10 MB, as PDF, JPG or PNG, with a note that Nemesh will auto-extract all invoice fields.
1 2
2
Overlay footer, bottom
One drop instead
Typing an invoice by hand was the heaviest task; he drops it and the AI takes it from there.

3 · Fields to confirm

1
Link line, center
Spatial anchoring
Each flagged field connects to its spot on the invoice, so he never hunts for the error.
The invoice with two fields flagged for review, each showing the AI's suggested correction and an Accept button, with connector lines drawn back to the source document.
1 2
2
AI suggestion, right edge
Doubt, named and fixed
The AI names what it doubts, shows its confidence, and proposes the right value, so the work is one click.

4 · Saved

1
Summary card, top-right corner
Task closure
Supplier, total and client in the confirmation, so he checks the result without reopening anything.
A confirmation overlay: invoice saved successfully, with a summary of supplier, total and client, and a button back to the dashboard.
1 2
2
Back to dashboard, bottom
One button back
A single button to the dashboard, so he picks up the next invoice right away.

Beyond the invoice

Running the operation, not just the invoice.

The flows follow a single invoice. These two screens run the operation around it: which client is healthy, and what the AI costs.

The Add client overlay: company profile and VAT ID, an approval threshold, a choice of delivery method between ERP, accounting app, file feed or manual, and the team members the account is assigned to.

Clients

Every client receives their data differently: a live ERP, an accounting app, a file feed, or a package they download. Adding a client is where that is chosen, with the account owner and the amount above which a person must approve. Three choices, made once, that the rest of the platform follows.

Billing & AI Credits

Billing is where SaaS design usually slips into dark patterns. The model here is two-part, a plan for invoice volume plus credits for the AI, each with its own balance so the customer sees what the AI actually costs. The cheaper tier sits above the buy-more options, and surfaces when the math favors the customer, shown first.

app.nemesh.io / settings / billing
Billing & AI Credits screen: Business plan, monthly invoice usage, and a separate AI credits balance with tier options.
The AI credits card in detail: the per-credit rate, the balance of 320 of 1,000 remaining, a cheaper Scale tier offered above the buy-more options, and three credit packs.

Want to hear more?

Happy to walk through the decisions, what each one cost, and what I'd change if I built it again.