Otto prepares. A person confirms.
Otto drafts hiring, leave, and payroll work. A named person confirms anything that changes a record. The confirm is logged. Two trays, one stamp: a suggestion, a decision, and an audit row. If nobody confirms, nothing posts. Otto HR (ottohr.com) is employer software for Türkiye, not autopilot payroll.
Leave, then payroll
Leave approved in one place does not put that person on the pay run by itself. Payroll still needs them in the run.
Otto assembles the packet from the approved leave, the attendance already on the record, and the salary. That packet sits in the suggestion tray. A named person stamps the run. Two trays, one stamp: if nobody confirms, nothing posts.
What "prepare" means
Otto can draft a pay run from attendance, leave, and salary. It can draft a leave reservation against policy and balance. It can draft a candidate stage-move and the email that goes with it. It can draft a company policy from a source PDF.
Each of those is a proposal. A proposal does not change the record.
What "confirm" means
A named person acts on the same record Otto drafted. They can edit before they confirm. A reject leaves no write.
If nobody confirms, nothing posts. Unsupervised writes are out of scope on purpose. The same gate holds in the HR workspace, the employee portal, and MCP apps, whether Claude, ChatGPT, Cursor, or any MCP client. Otto prepares wherever you ask. A person confirms. An MCP call cannot bypass the stamp.
What gets logged
The audit row holds the actor, the timestamp, and the subject, whether employee, candidate, or pay run, plus the before/after or a "rejected." HR can read it later, and where entitled so can the employee. It is not a black box, not a public score, and not a fabricated case study.
Where this shows up
Hiring: a stage move, a rejection, a hire packet. Payroll: pay-run draft → confirm → lock. Leave: request → approve or reject. Policies: draft → publish.
The product tour is /platform. The bordro page is /bordro-programi. The teams this loop is built for are on /ajan-ik.
What Otto will not do without a confirm
It will not post a pay run, move a candidate to Hired, publish a policy, or change someone's balance. Those writes wait for the stamp.
This is not "AI HR" and not autopilot payroll. Otto prepares work. A person stays accountable. See /ajan-ik for who that person usually is.
| Suggestion tray | A draft pay run, leave reservation, stage-move email, or policy draft. Each is a proposal. |
| Decision tray | A named person confirms, rejects, or edits the same record Otto drafted. |
| Stamp | An audit row: who, when, what. If nobody confirms, nothing posts. |
Where to read next
Agentic HR for a team in Türkiye with no HR department
HR-less, remote-first, and first-HR-hire playbooks.
Platform
The same loop across hiring, employment and payroll.
Bordro programı
How a prepared pay run becomes a confirmed one.
İnsan kaynakları yazılımı
The Turkish HR software product page.
İK sözlüğü
Turkish HR terms used in the loop.
Frequently asked
No. Draft only; a person confirms; the confirm is logged.
Yes. The audit row records the person, the time, and the action.
Edit or reject. A reject is no write.
No. Otto prepares work. A person stays accountable. See /ajan-ik.
No. Reads, lists, and explanations do not. Writes that change a person's record or money do.
Yes. The HR workspace, the employee portal, and MCP apps share the same permissions. Otto prepares the draft. A person confirms. A Claude, ChatGPT, or Cursor call cannot post a pay run or change a record on its own. See /mcp.