HR & timesheets
Just enough HR. Right next to the work.
A people directory, leave, lightweight reviews and the org structure behind them — on the same core as your projects. No 200-screen HRIS you'll configure for a quarter and never finish. And timesheets that fill themselves from the desktop tracker.
Minimal by design — timesheets live in the PM app, not bolted onto HR
SpiralDeck — People · Directory| Name | Department | Role | Salary |
|---|---|---|---|
AM Aanya Mehta | Engineering | Staff Engineer · L5 | •••••• |
DS Diego Santos | Design | Product Designer · L4 | •••••• |
LP Lena Park | Operations | People Lead · L5 | •••••• |
Salary hidden — visible to HR admins only, enforced at the API.
The minimal-HR bet
Most teams don't need an HRIS
They need to find a colleague, book time off, run a simple review, and keep the org chart honest — close to where the work happens. SpiralDeck ships exactly that surface, and is candid about the rest.
People directory
Table, grid and org-chart views of everyone. Search by name, department or role — with compensation fields gated to HR admins only.
Leave & time off
Requests, approvals, balances, accrual policies and company holidays. Balances move in lockstep with approvals — no manual reconciliation.
Performance reviews
Lightweight cycles: self + manager assessments and 1–5 ratings, with a hub that rolls up progress. No multi-rater ritual you won’t run.
Org & job architecture
Departments, reporting lines, job levels, families and salary bands — the structure the rest of HR hangs off.
Time & attendance policies
Accrual rules, working hours and holiday calendars. Policy configuration — deliberately not shift scheduling.
HR settings
Company profile, locale and formats, work schedule and the fiscal / payroll calendar — configured per workspace.
Timesheets, in the PM app
Time logs that write themselves
Time tracking lives with the work — in the PM app at /pm/time, not buried in HR. Better still, the desktop tracker drafts your week from what it captured: real hours against real tasks, ready to confirm in a click instead of reconstructed on Friday afternoon.
- Logged against tasks, not a free-text box
- Drafted from the desktop tracker — you just confirm
- Manager approvals by pay period
- Idle time auto-excluded, so hours stay honest
Sensitive by default
People data, handled like it matters
HR holds the most sensitive records in the workspace. The same isolation and default-deny rules that protect project data protect this — and pay lives behind an extra gate.
Compensation is gated
Salary, pay grade and bands return to HR admins only. A viewer reads the same record with those fields nulled — at the API, not just the UI.
Two HR roles, default-deny
A clean viewer / admin taxonomy: reads need viewer, writes need admin. A caller with no HR role sees an access notice, not data.
Tenant-isolated like everything else
HR tables carry tenant_id and sit behind Postgres Row-Level Security — the same backstop the rest of SpiralDeck relies on.
What it deliberately isn't
The honest list of what we don't do
Minimal means minimal. We'd rather name the gaps than ship half-built modules that print wrong numbers — so here's what SpiralDeck HR is not.
Benefits administration
No plan management or enrollment.
Hiring / ATS
No requisitions or candidate pipelines.
Employee & manager portals
No sprawling ESS/MSS surface.
Expense & billable invoicing
Out of the work-tracker core.
Shift scheduling & swaps
Policies, yes; rosters, no.
Goals / OKRs
Reviews stay assessment-only.
Payroll is on the roadmap for 2027 — as an in-app payroll register (runs, stubs, deductions), not a tax engine. We won't compute statutory withholding, and we won't fake it with a hardcoded rate that prints legally-wrong paychecks.
People ops that stays out of your way.
The HR essentials and self-filling timesheets on the same core as your projects — free to start, no per-seat pricing. Add the heavy stuff only if we ever build it.