· 2 min read

What AI is allowed to touch in payroll, and what it is not

Cayamanan is AI-first, and an LLM still does not get to decide what lands in someone’s payslip. Those two statements are not in tension. Here is where the line sits and why it is drawn in code rather than in a policy document.

iBAS Software FR

A hard vertical rule separating a field of records from a single approved action

Every HR product now has a chat box. Most of them are a text field wired to a model with a system prompt describing the product, sitting beside the real application and reaching into it through a second, weaker path.

That design has two problems. The assistant can do things the logged-in user could not do through the interface, and the assistant can be confidently wrong about a number.

One boundary, stated up front

Deterministic software is authoritative for every payroll amount. AI explains, flags and assists. It never computes the amount.

This is not a caveat in a footer. It is a structural rule. When someone asks the assistant why their net pay dropped, the answer is assembled from what the engine computed and recorded, not from a model reasoning about contribution tables. The assistant can say which deduction changed and point at the rule. It cannot produce the figure itself.

The permission problem, solved by not having two paths

Missy, the built-in assistant, does not have her own API. Every read and every mutation in Cayamanan is a registered action, and the screens and the assistant call the same one.

That single decision removes an entire category of bug. Exposing something to the assistant is a flag on the action, not new plumbing, and the role check inside the action is the real boundary. A hallucinated tool name does not reach a hidden endpoint. It hits a genuine permission failure, exactly as a forged request from the browser would.

High risk needs a human, bound to the exact input

Salary changes, bank details, terminations and bulk writes are high risk. For those, the assistant proposes and a person approves. The approval is a one-time token bound to the exact input that was shown, so the thing approved is the thing executed. A preview that says one number cannot be approved into a different one.

Everything at that level is audited. Not the trivial UI events, the things whose prior value cannot be recovered from the row itself.

Where the assistant earns its place

Not in arithmetic. In the parts of HR work that are genuinely tedious and genuinely language shaped.

Reading a stack of resumes and pulling out structured candidate records. Mapping the columns of whatever spreadsheet a company has kept for nine years onto real fields. Answering "who is due for regularisation next month" without somebody building a report. Explaining a payslip line in plain Tagalog or English to the person who received it.

That is a large amount of real work, and none of it requires letting a model decide what a person is owed.

Keep reading