Enterprise-grade HR data security.
Multi-tenant isolation built in.
HR data is sensitive — payroll numbers, performance reviews, exit reasons, and personal information. Our platform enforces data security and tenant isolation at the database level, not just in application code. Every row, every field, every action is auditable.
Row-Level Security (RLS)
Every database table is isolated by organization at the PostgreSQL level — not just application code. Data from Org A can never leak to Org B, even via API manipulation.
Role-Based Access Control
Six built-in roles — Super Admin, HR Admin, Payroll/Finance, Department Manager, Recruiter, L&D Coordinator, Executive. Each role sees only the data and features they're authorized for.
Encrypted at Rest & In Transit
All PII (dates of birth, salary data, exit reasons) is encrypted at rest. TLS is enforced on every connection — no exceptions.
Full Audit Trail
Every create, edit, and delete on master HR data is logged with who changed what, when, and before/after values. Required for SOX, GDPR, and internal compliance.
Granular Field-Level Control
Sensitive fields like salary and DOB are masked by role. Executives see aggregate payroll spend, not individual salaries. Payroll staff see individual records, not other departments.
How tenant isolation works
When a user authenticates, we set three session-level configuration parameters (GUCs) in PostgreSQL: the organization ID, the user ID, and their role. Every query runs inside a transaction-scoped security context.
⚠ Never use a transaction pooler (port 6543) — it multiplexes connections and can leak GUCs between tenants. Our connection pool uses session-mode pooling exclusively.
✓ Database-level RLS policies — even if application code is bypassed, PostgreSQL Row Level Security ensures no tenant can read another tenant's rows.
Built for compliance
Your HR data security is non-negotiable.
Start your free trial and see how enterprise-grade security works.