Skip to main content
gameTheory

Legal

Privacy Policy

Last updated: 25 August 2026Data Controller: gameTheory Solutions Pte Ltd

01Introduction

gameTheory Solutions Pte Ltd (“we”, “us”, “our”) is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our products and services.

Products Covered

This policy applies to all gameTheory products:

ProductDescription
RosieAI-powered note capture and GTD triage assistant
MatrixCourse management and learning platform (LMS)
CrucibleLeadership simulation and coaching platform
SynapseAI-powered structured ideation and brainstorming platform
AxonShared platform services (authentication, AI routing, analytics)

All products share a common platform layer (Axon) for authentication, AI processing, and analytics. This policy covers data practices across all products collectively, with product-specific details noted where relevant.


02Information We Collect

2.1 Account & Profile Information

When you create an account, we collect:

DataRequired?Source
Email addressYesProvided at signup
PasswordYesManaged by Supabase Auth (we never see raw passwords)
Display nameYesProvided by you or derived from email
Avatar imageNoUploaded by you
BioNoProvided by you
LinkedIn URLNoProvided by you

Product-specific profile fields:

  • Crucible: Seniority level (new-manager, mid-level, senior)
  • Rosie: None beyond shared fields

2.2 Organization & Team Data

If you belong to an organization:

  • Organization name, logo, industry
  • Your membership role (member or org_admin)
  • Organization profile text and default constraints (Synapse)

Users without an organization are “freelancers” — this is a first-class status, not an error.

2.3 User Content

We store content you create within our products. This varies by product:

Rosie

  • Captures: Notes from multiple sources (text, email, calendar, health data, monitoring alerts)
  • Triage results: GTD classification (inbox, next action, project, waiting, someday, reference) with AI reasoning
  • Conversations: Chat messages with Rosie (text, audio transcripts, files)
  • Threads: Processing lifecycle records linking captures to actions
  • Email contacts: Cached contacts from connected Gmail account
  • Voice recordings: Audio captured via Notetaker (temporary — cleared after transcription)
  • Transcripts: Speech-to-text output from voice recordings

Matrix

  • Course content: Programs, courses, modules, assets (slides, documents, videos, images)
  • Enrollment data: Learner enrollments, attendance records
  • Submissions: Assignment submissions (files, links, text)
  • Session data: Scheduled Zoom meetings, session artifacts (recordings, transcripts, notes)
  • Course completions: Instructor-awarded completion records
  • Voice recordings: Audio captured via Notetaker (temporary — cleared after transcription)
  • Transcripts: Speech-to-text output

Crucible

  • Session transcripts: Full conversation transcripts from AI coaching sessions
  • Coaching debriefs: AI-generated performance feedback
  • Coaching nudges: In-session coaching with emotion/signal metadata
  • Multi-conversation cases: Handoff summaries between case conversations
  • Company interviews: Full interview transcripts with AI interviewer
  • Company profiles: Structured intelligence extracted from interviews
  • Generated scenarios: AI-generated training scenarios
  • Performance data: Competency scores/levels, assessment answers, reflection text
  • Voice recordings: Audio captured via Notetaker (temporary — cleared after transcription)
  • Transcripts: Speech-to-text output

Synapse

  • Sessions: Session title, topic, context, configuration, tags
  • Rounds: Human direction/input per iteration, technique selection, AI-generated summaries
  • Agent conversations: AI-generated text per agent role, user messages within agent conversation
  • Artifacts: Ideas, lenses, conditions, questions (knowledge graph nodes) with user notes
  • Constraints: User-defined design boundaries
  • Conclusions: AI-generated session summaries
  • Document uploads: PDF, text, Markdown, JSON, DOCX, CSV, HTML, RTF (max 50 MB per file)
  • Voice recordings: Audio captured via Notetaker (temporary — cleared after transcription)
  • Transcripts: Speech-to-text output

2.4 OAuth Connections & Encrypted Credentials

When you connect external accounts:

ProviderProductsData StoredEncryption
Google (Gmail, Calendar, Contacts)Rosie, CrucibleOAuth access/refresh tokens, provider user ID, granted scopesAES-256-GCM encrypted
LinkedInRosieOAuth access/refresh tokens, granted scopesAES-256-GCM encrypted

2.5 BYOK API Keys (Bring Your Own Key)

If you supply your own LLM API key:

  • Provider name (e.g., anthropic, openai, gemini, groq, huggingface, openrouter)
  • Encrypted API key (AES-256-GCM ciphertext)
  • Non-reversible key hint for UI display (e.g., sk-...abc)

Master encryption key is stored in environment variables, never in the database.

2.6 Analytics & Usage Data

We operate privacy-first, first-party analytics. No third-party analytics services are used.

What we collect:

  • Page paths visited
  • Referring URLs
  • Device type and browser (parsed, not raw User-Agent)
  • Country-level location (no precise geolocation)
  • Product-specific events

What we do NOT collect:

  • Raw IP addresses (only a hashed prefix is used for visitor identification)
  • Raw User-Agent strings
  • Cookie-based tracking identifiers
  • Third-party tracking pixels or beacons

Privacy-preserving visitor identification: Visitor IDs are computed using HMAC-SHA256 of the IP/24 prefix (first 3 octets) combined with a daily-rotating salt. Raw IP addresses are never stored, the hash cannot be reversed, and the salt rotates daily preventing long-term tracking.

2.7 Operational Logs

For system reliability and debugging:

  • LLM usage logs: Token counts per model, session IDs (no user content)
  • LLM failure logs: Error messages, models tried, recovery info (may contain up to 2KB of truncated LLM output)

03How We Use Your Information

PurposeLegal BasisData Used
Provide our servicesContract performanceAccount data, user content, OAuth tokens
AI processingContract performanceUser content sent to LLMs for triage, coaching, ideation, transcription
Authenticate usersContract performanceEmail, password (via Supabase Auth)
Enable integrationsConsentOAuth tokens for Google, LinkedIn
AnalyticsLegitimate interestPrivacy-first engagement events
System reliabilityLegitimate interestLLM usage/failure logs
Organizational featuresContract performanceOrg membership, org profiles, org constraints
SecurityLegitimate interestEncrypted credentials, rate limiting

04AI Processing & Large Language Models

All gameTheory products use AI extensively. This section explains how your data is processed by large language models.

4.1 LLM Providers

We route AI requests through a self-hosted LiteLLM proxy to the following providers:

ProviderModelsCost Tier
AnthropicClaude Sonnet 5, Claude Haiku 4Paid
OpenAIGPT-4oPaid
GoogleGemini 2.5 FlashFree
GroqLlama 3.3 70BFree
Hugging FaceLlama 3.1 8BFree
OpenRouterLlama 3.3 70B, Gemma 4 31B, Nemotron, Qwen3Free
OllamaLlama 3.2Local (no data leaves infrastructure)

4.2 What Data Is Sent to LLMs

ProductData Included in Prompts
RosieCaptures, conversation messages, triage context, email content, intent classification context
MatrixCourse content, assignment context, notetaker transcripts
CrucibleFull session transcripts, scenario/character data, company profiles, competency frameworks, learner name/seniority, coaching nudge context
SynapseSession topic/context, user constraints, human direction per round, uploaded document text, prior artifacts, organization profile/constraints

Data NOT sent to LLMs:

  • User email addresses
  • User bio or LinkedIn URL
  • User avatar images
  • OAuth tokens or API keys
  • Raw audio (sent to Deepgram for transcription, not to LLMs)

4.3 BYOK (Bring Your Own Key)

If you supply your own API key, your AI requests are routed to your own provider account. We do not have access to your key (it is encrypted and decrypted only in memory during request routing).

4.4 AI-Generated Content

ProductAI Artifacts Stored
RosieTriage classifications, intent detection results, chat responses
MatrixNot applicable (AI features dormant)
CrucibleCoaching debriefs, nudges, handoff summaries, company profiles, generated scenarios, competency scores
SynapseAgent conversation turns, extracted artifacts, round summaries, conclusion outputs, constraint violation detections

Watermarking: LLM outputs are watermarked using invisible zero-width Unicode characters containing session ID and timestamp. This does not affect readability but allows provenance tracking.

4.5 Voice Processing

StepServiceDataRetention
1. Audio captureClient-sideRaw audioTemporary (in-browser)
2. UploadgameTheory serverAudio blobTemporary (database BYTEA column)
3. TranscriptionDeepgram (nova-3)Audio streaming via WebSocketTranscript stored; audio cleared
4. Voice synthesis (optional)ElevenLabs (turbo v2.5)Text for playbackSynthesized audio returned to client

Audio recordings are cleared from our database after transcription completes. Only transcripts are persisted.


05Third-Party Service Providers

5.1 Infrastructure

ProviderServiceData ProcessedLocation
SupabaseDatabase (PostgreSQL 17), Auth, Storage, Edge Functions, RealtimeAll application data, auth tokens, file uploadsSupabase-managed cloud
VercelApplication hosting, deployment, serverless functionsApplication code, request metadataGlobal edge network
RailwayLiteLLM proxy deploymentLLM API requests with promptsRailway-managed
UpstashRedis (rate limiting, optional)Rate-limit counters (UUID + endpoint key)Upstash-managed

5.2 AI & Voice Services

ProviderServiceData Processed
AnthropicLLM (via LiteLLM)Prompts containing user content
OpenAILLM (via LiteLLM)Prompts containing user content
GoogleLLM (via LiteLLM), OAuthPrompts; OAuth tokens
GroqLLM (via LiteLLM)Prompts containing user content
Hugging FaceLLM (via LiteLLM)Prompts containing user content
OpenRouterLLM (via LiteLLM)Prompts containing user content
DeepgramSpeech-to-textAudio recordings for transcription
ElevenLabsText-to-speechText for voice synthesis

5.3 OAuth Providers (User-Initiated)

ProviderProductsData Accessed
GoogleRosie, CruciblePer-scoped OAuth access (email, calendar events, contacts)
LinkedInRosiePost creation, badge creation

5.4 Product-Specific Integrations

ProviderProductPurposeData Exchanged
ZoomMatrixVideo conferencing for course sessionsMeeting metadata, participant reports
GarminRosieHealth data ingest (planned)Health events
OttaiRosieDiabetes/health data ingest (planned)Health events
UptimeRobotRosieService monitoring alertsAlert webhooks

5.5 Services We Do NOT Use

  • No third-party analytics: No PostHog, Mixpanel, Google Analytics, Segment, Amplitude, Plausible
  • No advertising or tracking: No ad networks, no tracking pixels, no remarketing
  • No payment processors: No Stripe, Paddle, PayPal
  • No monitoring/APM: No Sentry, Datadog, LogRocket, New Relic
  • No email marketing: No SendGrid, Resend, Postmark, Mailgun (beyond Supabase's built-in SMTP for auth emails)

06Cross-Product Data Sharing

All gameTheory products share a common platform layer (Axon). The following data is shared across products.

6.1 Shared Data (All Products)

DataShared ViaPurpose
User identity (email, display name, role)Shared users tableSingle sign-on across products
Organization membershipShared organizations tableCross-product org federation
Usage tier (free/paid/byok)Shared axon_user_tiers tableConsistent usage limits
Daily session countsShared axon_usage_counters tableUsage tracking
BYOK API keys (encrypted)Shared axon_user_keys tableReuse your keys across products
Analytics eventsShared engagement_events tableUnified analytics

6.2 Product-Specific Data (NOT Shared)

Each product's content remains private to that product:

ProductPrivate Data
RosieCaptures, triage results, conversations, threads, email contacts, pending actions
MatrixCourses, enrollments, submissions, attendance, session artifacts
CrucibleSession transcripts, debriefs, company profiles, generated scenarios, competency scores
SynapseSessions, rounds, artifacts, constraints, conclusions, uploaded documents

6.3 Cross-Product Event Dispatch

Products can send events to each other via a persistent outbox pattern:

FlowData
Rosie → SynapseDelegate dispatch: trigger brainstorm rounds (no session content shared)
Rosie → MatrixDelegate dispatch: send to LMS assistant (no course content shared)
Any product → othersNotetaker transcript finalized events (transcript text only)

07Data Storage & Security

7.1 Storage Locations

Data TypeStorageEncryption
Application dataSupabase PostgreSQLSupabase infrastructure encryption at rest
File uploadsSupabase Storage (S3-compatible)Supabase infrastructure encryption
Avatar imagesSupabase Storage (avatars bucket, public read)Supabase infrastructure encryption
Audio recordingsPostgreSQL BYTEA column (temporary)Cleared after transcription
OAuth tokensPostgreSQL (encrypted columns)AES-256-GCM application-level encryption
BYOK API keysPostgreSQL (encrypted columns)AES-256-GCM application-level encryption
PasswordsSupabase Auth (internal)bcrypt hashing

7.2 Encryption Details

DataEncryption MethodKey Management
OAuth access/refresh tokensAES-256-GCMMaster key in environment variable (never in database)
BYOK API keysAES-256-GCMMaster key in environment variable (never in database)
Ciphertext formatv1.<iv>.<ct+tag>Versioned for future key rotation

7.3 Access Control

  • Row-Level Security (RLS): All data tables enforce RLS — users can only access their own data
  • Owner-only access: User data is scoped to auth.uid() — only the data owner can read/write
  • Admin access: Platform admins can read (not modify) user data for operational support
  • Service role: Backend processes use a service role with explicit, audited access

7.4 Security Measures

  • TLS/HTTPS for all data in transit
  • bcrypt password hashing (managed by Supabase Auth)
  • JWT session tokens (1-hour expiry, refresh token rotation)
  • AES-256-GCM encryption for sensitive credentials
  • HMAC-authenticated server-to-server webhooks
  • Rate limiting (Upstash Redis in production)

08Cookies & Tracking

8.1 Cookies We Use

CookieProviderPurposeLifetime
Supabase auth session cookiesSupabaseJWT session management1 hour (refresh token rotation)
axon_invite_tokengameTheoryTemporary invite token during OAuth flowCleared after redemption

8.2 What We Do NOT Use

  • No third-party cookies
  • No tracking cookies
  • No advertising cookies
  • No analytics cookies
  • No tracking pixels or beacons
  • No raw IP address storage (only hashed prefixes for privacy-first analytics)

09Data Retention

9.1 Account Data

DataRetention
Account (email, profile)Retained while account is active
User contentRetained while account exists; cascade delete on account removal
OAuth tokensDeleted on disconnect or account removal
BYOK API keysDeleted on account removal
Organization membershipDeleted on membership removal or account removal

9.2 Operational Data

DataRetention
Audio recordingsCleared after transcription completes
Analytics eventsRetained in-database (aggregate, privacy-first)
LLM usage logsRetained per-session (operational)
LLM failure logsRetained per-session (operational)
Invitation tokensRetained until redeemed or expired (7 days)

9.3 Data Deletion

You can request deletion of your account and all associated data by contacting us. Upon deletion:

  • All user content is cascade-deleted from the database
  • OAuth tokens are revoked and deleted
  • BYOK API keys are deleted
  • Avatar images are removed from storage
  • Analytics events retain only the hashed visitor ID (no longer linked to your account)

10Your Rights

Depending on your jurisdiction, you may have the following rights:

RightDescription
AccessRequest a copy of your personal data
RectificationRequest correction of inaccurate data
ErasureRequest deletion of your account and data (“right to be forgotten”)
PortabilityRequest your data in a machine-readable format
RestrictionRequest limitation of processing
ObjectionObject to processing based on legitimate interests
Withdraw consentWithdraw consent for OAuth connections or BYOK keys

To exercise these rights, contact us at the address below.

Data Portability

You can export your data at any time:

  • Rosie: Captures, triage results, conversations are accessible via API
  • Matrix: Course content, submissions, attendance records are accessible via the application
  • Crucible: Session transcripts, debriefs, company profiles are accessible via the application
  • Synapse: Sessions, artifacts, constraints, conclusions are accessible via the application

11Children's Privacy

Our products are not directed to children under 16. We do not knowingly collect personal information from children. If you believe we have collected data from a child, please contact us.


12International Data Transfers

Our service providers may process data in jurisdictions outside your country. We ensure appropriate safeguards are in place:

  • Supabase: Data stored in Supabase-managed infrastructure (region determined by project settings)
  • Vercel: Global edge network (processing occurs at edge locations worldwide)
  • LLM providers: Anthropic (US), OpenAI (US), Google (US), Groq (US), Hugging Face (US), OpenRouter (US)
  • Deepgram: US-based
  • ElevenLabs: US-based

Where transfers occur to countries without adequate data protection laws, we rely on standard contractual clauses or your explicit consent.


13Changes to This Policy

We may update this Privacy Policy from time to time. We will notify you of material changes by:

  • Posting the updated policy on our website
  • Updating the “Last updated” date at the top

Your continued use of our products after changes are posted constitutes acceptance of the updated policy.


14Contact

gameTheory Solutions Pte Ltd

For privacy inquiries or to exercise your rights:


Appendix A: Complete Data Inventory by Product

Rosie — Data Summary

CategoryData Elements
AccountEmail, display name, avatar, bio, LinkedIn URL
CapturesNotes from 7 sources (UI, email, calendar, health, uptime, synapse, other), text, audio, files
TriageGTD classification, confidence scores, LLM reasoning
ConversationsChat messages with Rosie (text, audio, files)
ThreadsProcessing lifecycle (initiated → clarified → refined → actioned → closed)
Email contactsCached Gmail contacts for intent resolution
OAuthGoogle (Gmail, Calendar, Contacts), LinkedIn (encrypted tokens)
IntegrationsDeepgram, OpenRouter, Garmin/Ottai (planned), UptimeRobot

Matrix — Data Summary

CategoryData Elements
AccountEmail, display name, avatar, bio, LinkedIn URL
Course contentPrograms, courses, modules, assets (slides, docs, video, images)
EnrollmentsLearner enrollments, attendance, completions
SubmissionsAssignment submissions (files, links, text)
SessionsZoom meetings, artifacts (recordings, transcripts, notes)
OAuthGoogle (encrypted tokens)
IntegrationsZoom, Deepgram, ElevenLabs, LiteLLM

Crucible — Data Summary

CategoryData Elements
AccountEmail, display name, avatar, bio, LinkedIn URL, seniority
SessionsFull AI coaching transcripts, debriefs, nudges
CasesMulti-conversation cases with handoff summaries
Company interviewsFull interview transcripts, extracted company profiles
Generated scenariosAI-generated training scenarios
PerformanceCompetency scores/levels, assessment answers, reflection text
OAuthGoogle (encrypted tokens)
IntegrationsDeepgram, ElevenLabs, LiteLLM, Upstash Redis

Synapse — Data Summary

CategoryData Elements
AccountEmail, display name, avatar, bio, LinkedIn URL
SessionsTopic, context, configuration, tags, curation state
RoundsHuman direction, technique selection, AI summaries, pipeline metadata
Agent turnsAI-generated text per role, user messages
ArtifactsIdeas, lenses, conditions, questions (knowledge graph), user notes, relationships, lineage
ConstraintsUser-defined boundaries, AI-detected violations
ConclusionsAI-generated session summaries
DocumentsUploaded files (PDF, DOCX, etc.) with extracted text
OrganizationOrg profiles, org-default constraints
OAuthGoogle (encrypted tokens)
IntegrationsDeepgram, ElevenLabs, LiteLLM

Axon — Shared Platform Services

CategoryData Elements
IdentityEmail, display name, avatar, bio, LinkedIn URL (shared across products)
OrganizationsOrg name, logo, industry, settings, membership
CredentialsBYOK API keys (AES-256-GCM), OAuth tokens (AES-256-GCM)
AudioVoice recordings (temporary — cleared after transcription)
TranscriptsTime-coded speech-to-text output
AnalyticsPrivacy-first engagement events (HMAC visitor IDs, no raw IP)
LLM usageToken counts, model, role (operational)
LLM failuresError messages, truncated output (operational)
WatermarksInvisible Unicode in LLM outputs (session ID + timestamp)

Appendix B: Sub-Processor List

Sub-ProcessorServicePurposeLocation
SupabaseDatabase, Auth, Storage, Edge FunctionsPrimary infrastructureUS (AWS)
VercelHosting, deploymentApplication deliveryGlobal edge
RailwayLiteLLM proxyLLM routingUS
AnthropicClaude LLMsAI processingUS
OpenAIGPT-4oAI processingUS
GoogleGemini, OAuthAI processing, identityUS
GroqLlama 3.3 70BAI processingUS
Hugging FaceLlama 3.1 8BAI processingUS
OpenRouterMultiple modelsAI processing (free tier)US
DeepgramSpeech-to-textAudio transcriptionUS
ElevenLabsText-to-speechVoice synthesisUS
UpstashRedisRate limiting (optional)US
ZoomVideo conferencingCourse sessions (Matrix only)US

Appendix C: Technical Security Details

Encryption

DataAlgorithmKey Management
OAuth tokensAES-256-GCMBYOK_MASTER_KEY env var
BYOK API keysAES-256-GCMBYOK_MASTER_KEY env var
PasswordsbcryptSupabase Auth internal
Data in transitTLS 1.2+Standard
Data at rest (DB)Supabase infrastructureSupabase-managed

Ciphertext Format

All application-level encryption uses versioned ciphertext: v1.<iv>.<ct+tag>

This allows future key rotation without breaking existing encrypted data.

Row-Level Security (RLS)

All data tables enforce PostgreSQL Row-Level Security:

  • Users can only access rows where user_id = auth.uid()
  • Platform admins have read-only access for operational support
  • Service role has explicit, audited access for backend processes

Analytics Privacy

Visitor identification uses HMAC-SHA256:

visitor_id = HMAC-SHA256(IP/24 + daily_salt)

  • Only the first 3 octets of the IP address are used (IP/24 prefix)
  • Daily salt rotation prevents long-term correlation
  • The hash is one-way and cannot be reversed
  • No raw IP addresses or User-Agent strings are stored