Skip to content
Surhires

Security

The engineering answer to how your candidate data is protected

Tenant isolation is the boundary everything else rests on. Here is how it is enforced, how access is limited, and what is still being independently tested.

Surhires enforces tenant isolation as its primary security boundary, encrypts data in transit and at rest, applies least-privilege role and field permissions, writes an append-only audit log, and tests restores from encrypted backups. SOC 2 is a readiness programme with a Type I report as the first deliverable. No certification is claimed.

By Surhires Editorial · Published · Reviewed

Tenant isolation is the security boundary

A staffing platform holds several agencies who compete with each other in the same database. The candidate one firm has spent three years nurturing is a candidate a rival would pay for, so the boundary between tenants is not a feature of the security model; it is the security model. Everything else on this page is a control that sits behind it.

Isolation is enforced at the data layer rather than in application code alone. Every row that belongs to a tenant carries the tenant identifier, and access policies are evaluated in the database against the authenticated session rather than by a query the application remembered to filter. That distinction matters because the application-level approach fails silently: one endpoint written without the filter is enough, and nothing in a test suite necessarily notices.

The same rule applies to files. Resumes, right-to-work documents and call recordings are stored under tenant-scoped paths with access checked at retrieval, so a leaked object path is not a leaked document.

Encryption in transit and at rest

All traffic between a browser, the recruiter mobile app and the platform runs over TLS. Traffic between the platform and its subprocessors - the messaging providers, the job boards, the calendar services - runs over TLS as well, and credentials for those services are held in a managed secret store rather than in environment files checked into a repository.

At rest, the primary database, object storage and backups are encrypted. Particular categories are handled more tightly than the general record: demographic data collected for equal-opportunity reporting is stored apart from the hiring record and is not exposed to recruiter roles at all, and call recordings carry per-tenant retention limits so audio does not accumulate indefinitely because nobody set a policy.

Access control and least privilege

Permissions are role-based and field-level, not just page-level. A recruiter sees the pipeline they work; a desk lead sees the team; an owner sees billing. Compensation history, demographic fields and client margin can each be restricted independently, which is what lets a firm give a contractor or a temporary sourcer access to the database without exposing commercial data.

Internally, staff access to production is scoped and logged. Nobody holds standing access to customer data for convenience, support access is granted for a defined purpose and is visible in the audit trail, and administrative actions are separated from routine ones. Enterprise accounts can require SSO and SAML so that identity, offboarding and password policy stay in the customer's own directory rather than in ours.

  • Role-based permissions with field-level restriction on compensation and demographic data
  • Demographic data stored separately from the hiring record and hidden from recruiter roles
  • Scoped, logged and time-bound staff access to production rather than standing access
  • SSO and SAML available on Enterprise so identity stays in the customer's directory

The audit log is append-only and complete

Every stage change, disposition, permission change, export, deletion and message send is written to an audit trail with the actor, the timestamp and the reason code. Dispositions are a fixed list rather than free text precisely so that the record reconstructs a decision months later, which is what an equal-opportunity audit or a client dispute actually requires.

Automated actions land in the same log as human ones. When an AI agent scores a candidate, drafts an outreach message or moves a record, the entry names the agent, the model operation and the user on whose behalf it acted. There is no separate, quieter log for machine activity - that is the point of having one trail.

Audit records are append-only. A user with administrative rights can read them and export them; they cannot rewrite them.

Backups exist, and restores are tested

Encrypted backups run on a schedule with point-in-time recovery on the primary database. Object storage is versioned so that a deletion or an overwrite is recoverable inside the retention window rather than final at the moment somebody clicks.

A backup nobody has restored is a hypothesis, not a control. Restores are exercised on a recurring schedule into an isolated environment, and the exercise checks that tenant boundaries survive the restore - a restored dataset that mixes tenants is a breach, not a recovery. Findings from those exercises feed the same tracker as security findings.

Subprocessors are published, not implied

Surhires depends on other companies to send a WhatsApp message, post a job, place a call, transcribe a recording, run a model or take a payment. Each of those is a subprocessor with access to some category of customer data, and each is named in the published subprocessor register with what it processes and where.

Adding one is a change customers are told about rather than a detail buried in a terms update. Where a subprocessor introduces a data-residency implication - a model provider operating in a different region, for instance - the register says so, because that is the fact a data protection officer needs and it is precisely the fact that vendors tend to leave out.

Vulnerability handling and how to report an issue

Dependencies are monitored for known vulnerabilities and patched on a severity-driven schedule rather than whenever a release happens to be due. Findings from internal review, from customer security questionnaires and from external reports all enter the same tracker with an owner and a target date, so nothing survives by being reported through an unusual channel.

If you find a vulnerability, write to [email protected] with enough detail to reproduce it. Reports are acknowledged and triaged, and a reporter who acts in good faith - no data exfiltration beyond what proves the issue, no service degradation, no access to another tenant's records beyond demonstrating that access is possible - will not be pursued. There is no paid bug bounty programme at present, and this page will not pretend otherwise.

SOC 2 is a readiness programme, not a certificate

The wording used here is the wording used everywhere on this site: a readiness programme is under way with continuous control monitoring. A Type I report is the first deliverable; we do not claim a Type II report until one has been issued and we will publish the report date when it is.

That distinction gets blurred constantly in this category. A Type I report describes whether controls are suitably designed at a point in time. A Type II report describes whether they operated effectively over a period, usually three to twelve months, and it is the one most enterprise procurement teams actually want. Claiming the second while holding the first is a misrepresentation that a competent reviewer catches, and it poisons every other statement a vendor makes.

An independent test is being commissioned before general availability

An independent third-party penetration test and a tenant-boundary review are being commissioned ahead of general availability. The tenant-boundary component is specified separately from the general test because it is the failure mode with the worst consequences for a staffing platform, and a generic web application test does not necessarily probe it.

The result will be published. Not the raw report, which would itself be a disclosure risk, but the scope, the date, the testing firm, the severity distribution of findings and the remediation status of each. A summary that reports only that a test was performed tells a buyer nothing; a summary that reports what was found and what was fixed is the one worth reading.

Until that work is complete, this page describes controls that are implemented and names the ones that are not yet independently verified. Treat the difference as material, because it is.

What you get

Database-enforced isolation

Tenant policies evaluated at the data layer against the session, not by a filter the application remembered.

Tenant-scoped file storage

Resumes, documents and recordings stored under tenant paths with access checked at retrieval.

TLS everywhere

Browser, mobile app and subprocessor traffic encrypted in transit, with credentials in a managed secret store.

Encryption at rest

Primary database, object storage and backups encrypted, with tighter handling for sensitive categories.

Field-level permissions

Compensation, demographic and margin fields restricted independently of page-level access.

Separated demographic data

Equal-opportunity data held apart from the hiring record and invisible to recruiter roles.

Scoped staff access

No standing production access; support access is purpose-bound, time-limited and written to the audit trail.

SSO and SAML

Available on Enterprise so identity, password policy and offboarding stay in your own directory.

Append-only audit log

Actor, timestamp and reason code on every stage change, export, deletion and permission change.

Agent actions logged

AI operations write to the same trail as human ones, naming the agent and the user acted for.

Point-in-time recovery

Scheduled encrypted backups with versioned object storage so a deletion is recoverable, not final.

Tested restores

Recurring restore exercises into an isolated environment that verify tenant boundaries survive recovery.

Published subprocessors

Every processor named with what it handles and where, including data-residency implications.

Vulnerability reporting

Good-faith reports to the support address are acknowledged and triaged; no paid bounty is claimed.

Questions recruiters ask

Is Surhires SOC 2 certified?

No. A readiness programme is under way with continuous control monitoring, and a Type I report is the first deliverable. No Type II report is claimed until one has been issued, and the report date will be published when it exists. Any vendor page in this category claiming Type II without a report date is worth questioning.

How is one agency's data kept away from another's?

Tenant isolation is enforced at the data layer. Every row carries a tenant identifier and access policies are evaluated in the database against the authenticated session, rather than relying on the application to apply a filter on every endpoint. Files are stored under tenant-scoped paths with access checked at retrieval rather than by path obscurity.

Has an independent penetration test been done?

Not yet. An independent third-party penetration test and a separate tenant-boundary review are being commissioned ahead of general availability, and the scope, date, testing firm, severity distribution and remediation status will be published. Until then this page distinguishes between controls that are implemented and controls that are independently verified.

Can your staff see our candidate data?

Not by default. There is no standing production access for convenience. Support access is granted for a defined purpose, is time-limited, and is written to the same audit trail you can read and export. If a support case requires someone to look at a record, that access is visible to you rather than invisible.

What happens if we delete a candidate by mistake?

Object storage is versioned and the database supports point-in-time recovery, so a deletion inside the retention window is recoverable. A deliberate erasure run through the subject-erasure workflow is different: it removes the profile, parsed text, files and messages and records that the request was fulfilled, which is the behaviour a data subject request requires.

Do you have a bug bounty programme?

No paid programme exists at present. Good-faith reports sent to [email protected] are acknowledged and triaged, and a reporter who avoids exfiltrating data, degrading service or reaching into another tenant beyond demonstrating the issue will not be pursued. When a funded programme exists it will be announced rather than implied here.

Where is our data stored?

The primary region is AWS us-east-1 with encrypted backups. If your organisation requires EU or UK residency, raise it before contract, because it is a scoping question rather than a settings toggle. The subprocessor register names where each processor operates, including model providers, so a residency assessment can be done properly.

See it against your own reqs

Bring one live role and three resumes. In twenty minutes you will see the match scores, the shortlist and the placement invoice that comes out the other end.