Oshy Role Bots · Terms of Service · Privacy Notice · Data Processing Agreement · Subprocessors
Version 1.0 · Effective 4 November 2026
1.1 This DPA is between the Customer (the controller) and OSHY LABS LTD (trading as Oshylabs), company number 16883720, registered office 100 St Pier Court, 549 Green Street, London E13 9GU, United Kingdom, ICO registration reference ZC107032 (the processor). It forms part of the Oshy Role Bots Terms of Service (the "Agreement").
1.2 It applies when Oshylabs processes personal data inside a Customer workspace ("Customer Personal Data") to provide the service. It does not cover Oshylabs' own processing as a controller (for example account administration, security logging and billing), which is described in the Privacy Notice.
1.3 "Data Protection Law" means the UK GDPR, the Data Protection Act 2018, the EU GDPR (Regulation (EU) 2016/679) and national laws implementing or supplementing them, as they apply to the processing.
2.1 Oshylabs will process Customer Personal Data only on the Customer's documented instructions, including with regard to international transfers, unless required to do otherwise by law. In that case Oshylabs will tell the Customer before processing, unless the law forbids it.
2.2 The Agreement, this DPA, and the Customer's use and configuration of the service (including adding a provider key, connecting a repository, running tasks and approving actions) are the Customer's instructions.
2.3 Oshylabs will tell the Customer if, in its opinion, an instruction breaches Data Protection Law.
2.4 Model processing under the Customer's own key. When a Bot runs, Oshylabs sends prompts containing Customer Content to Anthropic using the Customer's own Anthropic API key, on the Customer's instruction. Anthropic processes that data under the Customer's own agreement with Anthropic, as the Customer's provider, and is not a subprocessor of Oshylabs. The same applies to GitHub when the Customer connects a repository.
Oshylabs will:
The Customer:
5.1 The Customer gives general authorisation for Oshylabs to engage the subprocessors listed on the Subprocessors page.
5.2 Oshylabs will give at least 30 days' notice of a new or replacement subprocessor by email to the workspace owner and an update to that page. The Customer may object on reasonable data protection grounds within that period. If the parties cannot resolve the objection, the Customer may end the Agreement as its remedy, with a pro-rata refund of any prepaid fees.
5.3 Oshylabs will impose data protection terms on each subprocessor that offer at least the same protection as this DPA, and remains responsible to the Customer for its subprocessors' performance, as required by Data Protection Law.
6.1 If Oshylabs receives a request from a data subject about Customer Personal Data, it will not respond directly (except to confirm it has passed the request on) and will forward it to the workspace owner within 5 working days.
6.2 Tools available to the Customer:
6.3 Data held by Anthropic under the Customer's own key is governed by the Customer's agreement with Anthropic. Oshylabs cannot access or delete it.
7.1 Oshylabs will notify the Customer without undue delay, and in any case within 48 hours, after becoming aware of a personal data breach affecting Customer Personal Data.
7.2 The notice will include, as far as then known: the nature of the breach, categories and approximate numbers of data subjects and records, likely consequences, measures taken or proposed, and a contact point. Information may be provided in stages.
7.3 Notification is not an admission of fault. Oshylabs will not notify regulators or data subjects about Customer Personal Data on the Customer's behalf unless the Customer instructs it or the law requires it.
8.1 During the Agreement the workspace owner can export and delete data as described in section 6.2.
8.2 When the Agreement ends, Oshylabs will delete Customer Personal Data within 30 days after the export period in the Terms, unless the Customer has already deleted the workspace. Deleting the workspace removes every workspace record immediately.
8.3 Any copies in database backups are deleted when backup retention expires, within 30 days.
8.4 Oshylabs may keep platform alerts that contain ids and counts only, and any data it must keep by law.
9.1 Oshylabs will answer reasonable written security questionnaires no more than once a year, and make available its security documentation.
9.2 If that is not enough to demonstrate compliance with Article 28, or a regulator requires it, the Customer may carry out an audit at its own cost, on 30 days' notice, during business hours, under confidentiality, no more than once a year, and without access to other customers' data.
9.3 Oshylabs holds no third-party certification or penetration test report at the date of this DPA.
10.1 Oshylabs will not transfer Customer Personal Data outside the UK or the EEA except in line with Data Protection Law.
10.2 Customer Personal Data is stored and processed in Stockholm, Sweden. Where a subprocessor accesses it from outside the UK or EEA, the transfer is covered by that subprocessor's data processing terms using the EU Standard Contractual Clauses (Commission Decision 2021/914) with the UK International Data Transfer Addendum, or another mechanism recognised by UK and EU law. Transfers from the EEA to Oshylabs in the UK rely on the EU adequacy decision for the UK.
11.1 Liability under this DPA is subject to the limits in the Agreement.
11.2 This DPA lasts as long as Oshylabs processes Customer Personal Data.
| Item | Details |
|---|---|
| Subject matter | Providing the Oshy Role Bots service: turning job ads and company context into configured AI assistants that draft documents, messages, spreadsheet rows, summaries, triage lists, plans, reports and, for software roles, code patches and pull-request descriptions |
| Duration | The term of the Agreement plus the deletion periods in section 8 |
| Nature and purpose | Storage, retrieval, structuring, transmission to the AI model provider using the Customer's key, display, export and deletion, to provide the service to the Customer |
| Categories of data subjects | Customer's authorised users; individuals named in job ads, documents, CVs or task requests (for example hiring managers, candidates, team members, customers, suppliers); individuals whose details appear in repository content the Customer connects |
| Categories of personal data | Names, contact details, job titles, employment history in CVs and other details contained in workspace content; user identifiers in audit logs and approvals |
| Special categories | None intended. Customers must not submit them without written agreement |
| Customer data held | Approved outgoing emails and chat messages (recipients and text, kept in the approval record); job ads and documents (text only; uploaded PDF and DOCX files are converted to text and the file is not stored); bot configurations and versions; bot outputs; short task summaries in bot memory; usage records; audit log (actions and ids, no content); encrypted provider keys and connector tokens |
| Retention defaults | Bot memories 90 days; bot outputs 365 days (both configurable per bot, purged daily); audit log for the life of the workspace; revoked keys wiped immediately; workspace deletion immediate by the owner; backups up to 30 days |
| Processing locations | Stockholm, Sweden (Vercel arn1, Supabase eu-north-1) |
| Area | Measure |
|---|---|
| Tenant isolation | Postgres row-level security on every tenant table. The application connects as a restricted role that cannot bypass it. The workspace is taken only from the session. Background jobs run under the owning workspace's context |
| Encryption of secrets at rest | Provider keys and tokens use AES-256-GCM envelope encryption: a random data key per secret, wrapped by a versioned master key held outside the database. Ciphertext is bound to workspace, record and purpose. Master key rotation is supported |
| Secret handling | Keys are masked in the UI (last 4 characters only), never returned to the browser, never placed in prompts, and redacted from logs and provider errors. Configurations that contain secret-like strings are rejected |
| Encryption in transit | HTTPS between browser and service; TLS between the application and the database |
| Access control | Role-based permissions (viewer, operator, admin, owner). Only owners change roles, export or delete. Nobody can change their own role. Bots cannot approve actions |
| Authentication and sessions | Scrypt password hashing; httpOnly, SameSite=Lax, Secure session cookie; session tokens stored as SHA-256 hashes; 12-hour expiry; logout and member-disable revoke sessions; account locks for 15 minutes after 5 failed logins |
| Request integrity | Same-origin check on all writes |
| Human approval of external actions | Every external action needs approval bound by a hash to the exact workspace, action, target, payload, config version and bot. Re-checked at execution; executes once |
| AI output containment | Model output cannot perform actions; it can only produce drafts. Generated code is never executed by the platform. A message is sent only after a person approves its exact recipients and text |
| Untrusted input | Instruction-like lines in job ads are flagged and dropped; untrusted content is labelled in prompts. This detection is heuristic |
| Uploads and URLs | PDF and DOCX only, file-type check, 5 MB cap, text extraction only, file not stored. URL fetches block private, loopback, link-local and cloud metadata addresses |
| Audit | Append-only audit log of actions and ids, without content |
| Staff access | Oshylabs admin view returns counts and spend only, not workspace content |
| Spend and run limits | Per-run and monthly spend limits, timeouts, retries with backoff, dead-letter queue and alerts |
Known limits: no third-party penetration test yet; no single sign-on or multi-factor authentication; an admin may set a member's first password instead of sending an email invite; the master key is held in the hosting provider's encrypted environment settings rather than a key management service.
See the Subprocessors page.