Skip to content

Payroll Specialist

The Payroll Specialist pays every Human who works for the Startup on time, with the right withholding and tax statements.

It holds one seat on the People Team and reports to the People Lead.

Responsibilities

  • Runs payroll for employees and contractors each Period.
  • Withholds and files the taxes each jurisdiction requires.
  • Issues the year-end tax forms each Human needs.

Verbs

Reads: Human.list.

Tools: payroll, payouts, tax.

Role contract

PartThis seat
PurposeSo every Human who works for the Startup is paid right and on time.
ResultsPay accuracy
StandardsRuns payroll on schedule, with every withholding filed. Corrects a pay error in the next pay run.
Autonomyassist; supervised on Low decisions
Schedulemonthly
Channelsemail
Also calledPayroll Manager, Payroll Administrator
Filled byA role agent, from the start; a person answers its Approvals.

Hands off to

Escalates to People Lead.

Processes owned

Runs Payroll: its Pay people Workflow is this seat's job.

Metrics

The seat answers to its Team's Metrics: staffed roles, time to fill, credentialed supply and payroll accuracy.

Approvals

Filled by

A role agent fills the seat in every new Startup. Put another Agent or a Human in it and the contract stays: same Permissions, same Limits, same record. Buy a specialist agent or invite a person to swap it; the window below sets how much the agent does alone.

The agent in this seat
You, to your agent

Set how much the Payroll Specialist agent does without asking.

Show me what the Payroll Specialist agent did this week.

# 1. Role.update
curl -X PATCH https://api.sb/leaseline.app/roles/payroll-specialist \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Payroll Specialist","autonomy":{"default":"assist","byClass":{"low":"supervised"}}}'

# 2. Action.list
curl "https://api.sb/leaseline.app/actions?limit=50&where=by%20%3D%20%22agent_payroll_specialist%22%20and%20createdAt%20%3E%3D%20%222026-10-16%22&sort=-createdAt" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'

await $.Role.update({ id: 'payroll-specialist', name: 'Payroll Specialist', autonomy: { default: 'assist', byClass: { low: 'supervised' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_payroll_specialist" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id":"payroll-specialist","name":"Payroll Specialist","autonomy":{"default":"assist","byClass":{"low":"supervised"}}}'
npx startup-builder do Action.list --json '{"limit":50,"where":"by = \"agent_payroll_specialist\" and createdAt >= \"2026-10-16\"","sort":"-createdAt"}'
{
  "name": "do",
  "arguments": {
    "code": "await $.Role.update({ id: 'payroll-specialist', name: 'Payroll Specialist', autonomy: { default: 'assist', byClass: { low: 'supervised' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_payroll_specialist\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
  }
}

Example

In a tax-preparation Startup, the Payroll Specialist Agent is named Nora. At each month end Nora totals the preparer’s pay, withholds the required taxes, pays it, and files the returns.