Hyroo

Data Processing Agreement

How we process personal data on your behalf. Draft of 27 September 2026
Sign in

1. Parties and scope

This Agreement supplements the Terms of Service between JStar Technologies Pty Ltd ("Processor") and the customer ("Controller"), and governs Processor's processing of personal data on Controller's behalf.

The Processor's registered number and address, governing law and jurisdiction, and whether this is a standalone agreement or an annex to the Terms, are to be completed.

2. Roles

Controller determines the purposes and means of processing candidate and recruiter personal data. Processor processes it only on Controller's documented instructions.

Processor acts as an independent controller for a narrow, separable set: account administration, billing, and security telemetry about Controller's own users. That data is not candidate data. The exact boundary of this carve-out is to be confirmed.

3. Subject matter, duration, nature and purpose

  • Subject matter. Provision of an applicant tracking system.
  • Duration. The term of the Terms of Service, plus the deletion window in section 9.
  • Nature and purpose. Storing, organising, retrieving, analysing and transmitting personal data for recruitment: candidate management, pipeline progression, communication, automated match scoring, scheduling, reporting and data portability.

Categories of data subject

Candidates and applicants; Controller's own personnel (recruiters, hiring managers, administrators); contacts at Controller's client organisations; and — where Controller enables sourcing — individuals whose public professional profiles are retrieved from third-party sources and who have not applied.

Categories of personal data

Identity and contact details; CV and résumé content, including free text supplied by the data subject; employment and education history; skills and certifications; application and pipeline status; recruiter assessments, notes and interview scorecards; email and message content within connected threads; calendar entries for interviews; automated match scores and their explanations; and authentication data for Controller's own users.

Special categories and equivalent

Processor does not require special-category data. Two classes may nevertheless be present, and both are isolated by design:

  • Voluntary self-identification data. Collected only where Controller enables the AI-governance module and an organisation owner switches self-identification on, and only from candidates who volunteer it. It is held in a dedicated table that the candidate record cannot reach, and that reaches the candidate record only to be deleted with it, is never given to the scoring model, and is readable on recruiter-facing surfaces only as aggregates with small groups suppressed; the organisation owner's export of the whole workspace contains the individual answers.
  • Right-to-work declarations and compliance documents. Passport, visa and permit scans, and a candidate's self-declared right-to-work status. Not special-category data as such, but identity-document scans warrant equivalent handling, and work-authorisation status can proxy national origin — so it is excluded from the scoring model by design.

Whether a data protection impact assessment is a precondition to offering either module is to be confirmed with counsel.

4. Controller instructions

Processor processes personal data only on Controller's documented instructions, which comprise this Agreement, the Terms of Service, and Controller's own configuration of the service — including which integrations and sub-processors it enables. Processor informs Controller if an instruction appears to infringe applicable data-protection law.

5. Confidentiality

Personnel authorised to process personal data are bound by confidentiality obligations. The specific obligation relied on is to be referenced.

6. Security measures

Processor implements the measures in Annex A below. Annex A describes controls that exist in the software. It is not an audit result and asserts no certification.

7. Sub-processors

Controller gives general written authorisation for Processor to engage sub-processors. The current register is published at /legal/subprocessors.

Sub-processors are engaged in three ways, and the register says which applies to each. Hosting, the database and log collection are engaged whenever the service runs. Others are engaged by Processor's configuration of the deployment: file storage and backups on the storage service the deployment configures; a third-party service such as the AI, email or payment provider, which processes nothing until Processor supplies its credentials for that deployment, without which the service runs on local fallbacks; and the operations directory, which is configured once for the whole deployment. For each deployment the register records whether each one is engaged, not configured, or still undecided. The rest are engaged only by a choice made in Controller's workspace: a recruiter connecting their own Google or Microsoft account, Controller switching on paid WhatsApp and SMS messaging, or Controller registering its own webhook endpoint.

Processor gives Controller notice before adding or replacing a sub-processor that processes candidate data, on the sub-processor change feed, an Atom feed at /legal/subprocessors/feed, and Controller may object on reasonable data-protection grounds. The notice period and the objection and escalation mechanism are to be completed.

8. Data-subject rights

Processor assists Controller in responding to data-subject requests. The service provides:

  • Access and portability — per-candidate export, on the Professional plan and above, and a full workspace archive of the records and the stored files they reference.
  • Rectification — candidate records are editable throughout.
  • Erasure — a per-candidate erasure path that removes the candidate's records and stages a durable, retried deletion obligation for each stored file, which a deletion worker then carries out by the file's exact version identifier. Erasure itself records an obligation, not an accomplished deletion; see the limitations below. It acts on the candidate record chosen: another record of the same person in the workspace, such as a second application, is not erased with it, and the Service reports how many records share the erased record's email address or phone number or were copied from the same source record.
  • Restriction and objection — consent withdrawal, which suppresses further contact, retracts in-flight submissions to client organisations, and reaches the search index.
  • Automated decision-making — every automated score of an applicant or a candidate against a role, and every rubric score of a sourced profile, is recorded with the model, a content-hashed prompt version, the signals the model saw, and a redacted rationale; the similarity ranking that orders a sourcing run's profiles before they are scored is stored with them, stands as the score of a profile the rubric did not score, and is not recorded as a decision. Every human decision that departs from a recommendation is recorded.

9. Return and deletion

On termination, Controller may export its data through the service. Processor then deletes it, except where retention is required by law. The deletion window, and the separate period after which backups expire on their own schedule, are to be completed — and depend on the section 8 limitations being resolved first.

10. Audits

Processor makes available the information necessary to demonstrate compliance, and allows audits at reasonable frequency and on reasonable notice. Frequency, notice, cost allocation, and whether a third-party report may substitute, are to be completed.

No SOC 2 or ISO 27001 audit has been performed, and none is referenced anywhere in this agreement.

11. International transfers

The transfer position depends on the hosting region and the configured sub-processors, several of which are US-headquartered. The transfer mechanism, the transfer impact assessment, and any applicable addendum are to be completed.

12. Breach notification

Processor notifies Controller without undue delay after becoming aware of a personal-data breach, with the information available at the time. The notification deadline, contact channel and content are to be completed.

13. Liability

Caps, carve-outs and indemnities are to be completed, and must align with the Terms of Service.

Annex A — Technical and organisational measures

Each item is a control that exists in the software, not a plan, re-verified control by control against the code on 28 September 2026. Where a control depends on how a deployment is configured, that is stated; the production deployment does not exist yet, so no such control has been verified against it.

Workspace isolation

Workspaces are isolated from one another two independent ways: application-level query filters, and database row-level security enforced on every workspace-owned table. Per-record ownership checks then govern which member of a workspace may change which record. The application connects as a database role provisioned to be neither a superuser nor able to bypass row-level security, and not to own the schema — the deployment's provisioning scripts set that; outside development it refuses to start when its role is a superuser or can bypass row-level security. That the role does not own the schema is not checked at start, and a start at which the check cannot run logs a warning and continues. A test derived from the data model asserts that every workspace-owned table carries an active policy, and it runs against a real database.

Encryption

  • In transit. Plain HTTP is redirected to HTTPS — by the load balancer that the Google Cloud deployment kits configure, and by the application itself only where it is configured with its HTTPS port. A one-year strict-transport policy including subdomains is configured and is emitted where the deployment terminates TLS at the application, or terminates it at a reverse proxy the application has been configured to trust; a deployment that has not configured that trust does not send the header. Processor does not represent that the strict-transport policy reaches browsers in every deployment configuration.
  • Candidate contact fields at rest. Four fields are sealed with randomised AES-256-GCM through a dedicated key ring, separate from the framework's key ring: a candidate record's email address and phone number, the phone number on a candidate's own portal profile, and the phone number a CV parse extracts. Lookups use keyed blind indexes rather than decrypting. Outside development the application refuses to start without that key ring. Other copies of a candidate's contact details are held in the clear in the database, and Processor does not represent them as encrypted: the sign-in account an application or the candidate portal creates, which holds the email address; the opening text of the CV kept with the record, which usually holds both, and the parsed profile, which can; an address or number on the do-not-contact list while a record still holds it; an email waiting to be sent, which holds its recipient's address; the contact details revealed for a sourced profile; the number on a WhatsApp or SMS send log; message and note text; the address a Google Drive import parsed and a candidate-portal sign-in challenge's address, where those pilots are on; and security-audit records written before 27 September 2026.
  • Files at rest. Every uploaded CV, attachment and compliance document is encrypted at the storage boundary before it is written, in every storage mode, under the same key ring. The quarantine partition fails closed — it refuses to write rather than write unprotected, in every environment.
  • Backups. Sealed with an authenticated envelope bound to the workspace and archive name when a backup encryption key is configured: outside development a deployment that writes backups to cloud storage refuses to start without one, and the production manifest configures one; a backup written to the application host's own disk is sealed only if a key is set. Where a key is configured, a backup without that envelope is refused on read unless an operator explicitly opts in.
  • Scope limit, stated deliberately. The framework key ring that protects session cookies and stored OAuth tokens is held in the database and is encrypted at rest only where a deployment supplies a certificate for it. Outside development a deployment without one refuses to start unless an operator explicitly accepts an unencrypted ring, and key-ring entries written before a certificate was configured are not re-protected. Processor does not represent that all key material is encrypted at rest.

Access control

Role-based access with per-record ownership. Four separate authentication boundaries — internal staff, API keys, employer-portal contacts and candidate-portal users — none of which can satisfy another. Optional two-factor authentication with an authenticator app and recovery codes. A workspace can require it, and the requirement is enforced on every request: a member who has not set it up is sent to set it up and can use nothing else until they do — only signing in and out and the setup and account-security pages stay open to them — and the workspace's access review lists them. Account lockout after repeated failures. API keys are stored only as a hash. Every key is limited to the operations selected when it is created, and a key cannot be created with none; keys that had been created with none, which could then call every API endpoint, were each given the operations that existed at the time, listed on the key. A key changes a record only as the named person it was issued for, never as a workspace administrator.

Audit logging

Append-only and tamper-evident: every entry carries a chained SHA-256 hash. Updates are blocked by a database trigger on every deployment and revoked from the application's role by the deployment's provisioning scripts, and deletion requires an explicit session opt-in used by three named code paths. A verifier walks every chain once a day by default and writes each chain's head hash to the application log, so a truncation of a chain's newest entries can be detected by comparing it with a head written earlier. That comparison is not automated, and how long the log is kept is the deployment's.

Data minimisation and retention

A daily retention pass — on by default, and a production process refuses to start with it switched off — deletes each category below on its own configurable window: activity records, notifications and message threads (90 days by default); un-imported sourced profiles, sourcing decisions and WhatsApp and SMS send logs (30 days by default); and CVs uploaded to an application form that was never submitted, on a period that has no default and that a production process must be given before it will start. Candidate data supplied by Controller is retained for the term, since Controller determines its retention.

Automated decision-making safeguards

The dedicated name field is omitted from the scoring prompt, but résumé text may contain identifying information: the prompt carries the résumé summary, the first 800 characters of the CV, which usually hold the candidate's name and contact details. The prompt never receives self-identification data or work-authorisation status. The model is instructed not to use a name or any other protected attribute, which does not guarantee that it does not. The ranking of sourced profiles likewise omits the profile's name field, while the scraped text it carries may contain identifying information. Every automated score — including a score produced by the deterministic fallback when the model is unavailable — is recorded with the model (or "templated"), a hash of the prompt wording, the score and its band, the job-relevant signals the model was given, and a rationale from which contact details and the candidate's own name are removed; the records are erased with the candidate. Where a workspace uses the fairness report — a pilot that is switched off in the production configuration — adverse-impact statistics suppress small groups and defend against recovering them by subtraction, and the report is prevented in code from ever concluding "no bias found".

Development practices

Nullable-reference analysis; two automated test tiers, one of which runs against a real database under a least-privilege role; and structural tests that detect when a required security check is absent rather than merely wrong.

Processor does not assert any of these as a CI-enforced gate, and does not assert automated dependency-vulnerability gating or static analysis at all. All of those workflows exist in the repository, but as of 24 August 2026 every continuous-integration job was refused at start by an exhausted build-minutes budget and the default branch carries no protection rule requiring them — so "fails the build" would describe what the tests are written to do, not a control that was running. Annex A states only what is operating.

Data-protection questions? Email privacy@hyroo.pro.