Security & responsible disclosure

Security controls are designed around least privilege, private candidate data and auditable administrative access.

Access control

Candidate records use row-level access controls. Private CVs are not public URLs. Candidate-to-hiring-team disclosure uses a vacancy-specific consent record and short-lived signed file links. Administrative access is restricted to the platform administrator and sensitive CV/export actions require a recorded business reason.

Payments and secrets

Hiring checkout is delegated to Stripe. TruRole does not collect or store full payment-card numbers. Server-side payment logic resolves prices from trusted configuration, webhooks verify Stripe signatures, and client-supplied prices are not trusted. Application secrets must remain in Base44 environment secrets and must never be committed to frontend code.

Application security

The launch baseline includes input validation, private-file type/container checks, rate/usage limits where implemented, secure URL handling, server-side authorisation checks and dependency vulnerability scanning. Security updates and dependency advisories are treated as release criteria.

Incident response

Suspected personal-data incidents must be contained, investigated and logged promptly. Where a breach is likely to risk individuals' rights and freedoms, the controller must assess notification to the ICO within the applicable statutory timeframe and inform affected individuals when the legal threshold requires it.

Responsible disclosure

If you believe you have found a security weakness, do not access data that is not yours, persist access, run denial-of-service tests, social-engineer users or publicly disclose personal data. Report the issue privately through the published support/privacy contact once the production legal identity is activated. Include the affected URL/feature, reproduction steps and impact without including unrelated personal data.