Full transparency into how we handle, process, and protect your information. TimeCompass is operated by Great View Labs.
99.9%
Uptime Target
TLS 1.3
Encryption
GDPR-Ready
Compliance
None — your data isn't used for training.
AI Training
TimeCompass doesn't persist your transcripts. When you forward, paste, or sync a meeting, the raw text is held in memory only long enough to extract tasks and generate a short metadata-only summary. After that the raw text is dropped from our process and never reaches our database.
Every meeting summary we ever store matches one of 7 shapes — the duration in minutes, the speaker count, and (when the AI is confident) a single label drawn from a fixed vocabulary of 6. The list below is rendered straight from the source code that runs in production. There is no path by which a name, quote, project, or any other transcript-derived content can reach the column.
"23-minute meeting with 3 speakers. Decisions made."concrete decision was finalized"47-minute meeting with 4 speakers. Follow-ups assigned."tasks with owners assigned for later"30-minute meeting with 5 speakers. Decision deferred."topic discussed but decision postponed"15-minute meeting with 6 speakers. Status update."one-way briefing or status share"60-minute meeting with 2 speakers. Working session."hands-on collaborative work"12-minute meeting with 4 speakers. No action items."discussion with no decisions or assignments"8-minute meeting with 2 speakers."fallback — AI couldn't confidently pick a labelDecisions madeFollow-ups assignedDecision deferredStatus updateWorking sessionNo action items^(\d+-minute meeting with \d+ speakers?\. (?:Decisions made|Follow-ups assigned|Decision deferred|Status update|Working session|No action items)\.|\d+-minute meeting with \d+ speakers?\.)$
Any candidate summary that fails this regex throws SummaryFormatViolationError before the database write — the row is never updated with the bad string. Separately, if any raw-transcript column is ever found populated after a write, RawTranscriptPersistedError force-NULLs the column and Sentry-alerts FATAL. A runtime invariant scans the database hourly and alerts on any row whose ai_summary doesn't match.
Honesty caveat: the label is AI-chosen and may be wrong (a "Working session" may get marked "Status update", etc.). What we guarantee is the format, not the AI's accuracy at picking the label. The format guarantee is what makes the privacy claim enforceable.
Where AI fits in. Task extraction and summarization run on Anthropic Claude. While Claude processes the transcript, Anthropic may retain the request data for up to 30 days for abuse monitoring under their standard API terms. The retained data is not used to train models. After 30 days it is deleted by Anthropic.
What's next. We are pursuing zero-data-retention with Anthropic, which removes the 30-day window entirely. We will update this page the day it's in place. (Last updated: 2026-04-24.)
We only process data necessary for the Service: transcripts, tasks, and calendar events from sources you explicitly connect. No browsing data, location tracking, or advertising profiles are collected.
Most source data (transcripts, briefings, analytics) is auto-purged on a short schedule. See the full retention table below for specifics. You can delete any individual transcript or task at any time.
AI processing uses Anthropic's Claude via their commercial API. Your data is never used to train AI models. Data is processed to generate responses and is not retained by Anthropic.
GDPR and CCPA rights supported: access, correction, deletion, portability, and objection. Contact privacy@timecompass.ai to exercise any right.
Data subject rights, privacy by design, lawful processing bases
All payment processing handled by Stripe — we never store card data
Pursuing SOC 2 certification for enterprise readiness
Target SLA
99.9%
Monthly uptime commitment
Infrastructure
Replit Cloud
Auto-scaling with managed deployments
Last Known Incident
None
No reported service disruptions
| Provider | Purpose | What we share | Security | Location |
|---|---|---|---|---|
| Replit | Application hosting (compute, deployments) | Application code & runtime data | SOC 2 | US |
| Neon | Managed PostgreSQL database | All application data (encrypted at rest) | SOC 2 | US |
| Anthropic (Claude) | AI task extraction, summarization, scheduling | Transcript text per request (in-flight only — never persisted on our side); not used for training | SOC 2 | US |
| OAuth sign-in, Calendar API, Drive API, Meet transcripts | OAuth tokens; calendar & transcript metadata | SOC 2 / ISO 27001 | US | |
| Microsoft | OAuth sign-in, Outlook Calendar, Teams transcripts | OAuth tokens; calendar & transcript metadata | SOC 2 / ISO 27001 | US |
| Apple | Sign in with Apple, iOS in-app purchase receipts | Apple ID identifier, IAP receipts | SOC 2 | US |
| Stripe | Subscription billing and payment processing | Email, customer ID, subscription state (no card data) | PCI-DSS Level 1 | US |
| Resend | Transactional email delivery | Email address, message content | SOC 2 | US |
| Postmark (ActiveCampaign) | Inbound email forwarding for pasted-meeting workflow | Forwarded email subject + body (in memory only — never persisted to our DB) | SOC 2 | US |
| Sentry | Error monitoring (frontend + backend) | Error stack traces, user ID, request metadata (PII scrubbed) | SOC 2 / ISO 27001 | US |
| Expo | Push notification delivery (mobile app) | Device push token, notification payload | SOC 2 | US |
| HeyPocket | Pocket recording transcript sync | Pocket API key (encrypted), recording metadata | Vendor-managed | US |
| Zoom | Cloud recording transcript sync (Server-to-Server OAuth) | OAuth tokens, recording metadata | SOC 2 | US |
| Atlassian (Jira) | Task import from Jira issues (opt-in) | OAuth tokens, issue metadata | SOC 2 / ISO 27001 | US/EU |
| Asana | Task import from Asana workspaces (opt-in) | OAuth tokens, task metadata | SOC 2 | US |
| Monday.com | Task import from Monday boards (opt-in) | OAuth tokens, item metadata | SOC 2 / ISO 27001 | US/EU |
We commit to giving at least 14 days' notice before adding a new sub-processor. Material changes are announced via email to active customers and on this page.
| Data type | Retention | Notes |
|---|---|---|
| Transcripts (Meet, Teams, Zoom, Pocket) | AI summary + metadata only | TimeCompass doesn't persist transcript content. Every ingest path funnels through a single process flow that holds raw text in function-local memory only, generates a constrained-format summary, and persists nothing else. A runtime invariant scans the database hourly and alerts on any leak. The metadata row (title, date, duration, AI summary) is retained indefinitely for deduplication so we never re-process the same meeting twice; in your Meetings list it remains visible for 14 days (Pocket) or 30 days (Meet/Teams) and is hidden after that. You can permanently delete any meeting via 'Forget this meeting'. (Claude processes the text in-flight; Anthropic may retain request data up to 30 days for abuse monitoring — see the top-of-page section.) |
| Pasted & emailed transcripts | AI summary + metadata only | Raw pasted/forwarded text never persists — same single process flow, same guarantee |
| Transcript modifications | Pre-ingest only | All transcript edits (trimming, splitting) must happen in your source tool BEFORE forwarding to TimeCompass. We removed the in-app split tool because it required reading stored raw text — incompatible with the no-storage policy. |
| AI-extracted task suggestions | Until reviewed or transcript purged | Cascade-deleted when source transcript is deleted |
| Tasks, habits, time entries | Until you delete them or close your account | Soft-deleted with 30-day account purge on close |
| Daily briefings | 7 days | Removed after end-of-day review |
| Analytics events (product usage) | 90 days | Auto-cleanup; aggregated only, no third-party trackers |
| Push notification tokens | 30 days inactive | Stale tokens purged automatically |
| Demo accounts | 7 days inactive (48h sessions) | Full purge including OAuth tokens |
| OAuth tokens | Until you disconnect or close account | AES-256-GCM encrypted at application layer |
| Account deletion | Within 30 days | All personal data removed; backups expire on rolling basis |
Yes. Open the Transcripts page, hover the meeting, and click the trash icon. We'll show you exactly what gets removed (transcript, AI summary, unreviewed task suggestions, calendar links) and what stays (tasks you've already accepted). Every deletion is recorded in your account audit log.
The raw text you paste is never written to our database. We extract action items and a short AI summary in memory at submit time, then save only the summary plus metadata you provided (title, date, participants). The original text is discarded the moment the request finishes. Calendar matching is opt-in — we suggest candidates but never link without your click.
Each account gets a private forwarding address (find it under Settings → Email forwarding, or the "Forward by Email" button on the Transcripts page). When you forward a meeting recap there, our inbound webhook receives it over TLS, runs AI extraction in memory, and saves only the title, date, sender, and AI summary. The raw email body is never written to our database. You can lock the address to a trusted-sender allowlist; either way, it's rate-limited to 50 messages per day.
One short summary sentence — nothing more. For example: "23-minute meeting with 3 speakers. Decisions made.". The format is locked by a regex validator that runs at the database write boundary. No names, quotes, topics, or decisions can reach the column. See all 7 shapes and the full vocabulary →
No. Anthropic's commercial API does not retain or train on customer data. We do not sell, share, or syndicate your data with any third party for advertising or model training.
OAuth access and refresh tokens are encrypted at the application layer using AES-256-GCM with a server-managed key, on top of database encryption at rest. Tokens are never returned to the browser.
Email privacy@timecompass.ai from the address on your account. We confirm within 5 business days and complete full deletion within 30 days.
Continuous server monitoring with automated error tracking and alerting. Application health checks run on every deployment.
Affected users notified via email within 24 hours of confirmed incident. GDPR-compliant breach notification within 72 hours to supervisory authorities.
Public incident summaries published after resolution with root cause analysis, impact scope, and preventive measures taken.
User
Connects accounts via OAuth
Transcript Sources
Google Meet · Teams · Zoom · Pocket
TimeCompass Server
Express.js with TLS — data never leaves server unencrypted
Claude AI (Anthropic API)
Task extraction & summarization via single process flow — raw text in memory only, never written to our DB. Anthropic may retain the request data for up to 30 days for abuse monitoring (not used for training).
PostgreSQL Database
Tasks, habits, time entries stored with encryption at rest
Calendar Sync
Scheduled work blocks & breaks pushed to Google/Outlook