Trust Pack: SEC-001 · Referenced by Privacy Policy (PP-001) and DPA (DPA-001)
This document summarizes security and data-handling controls for InfoSec and procurement reviews. It describes the current Lazarus Deal Recovery architecture — not a certification claim. The customer owns the recording, the transcript, and the notes. We process them only to write the report: whether the deal is recoverable or a flat no, what is blocking it, and what to do next. The transcript is not saved. Evidence-quote fields are removed from the stored report. The summary, scores, and next actions are kept. We do not sell that content or train public models on it.
Lazarus Deal Recovery is a deterministic deal autopsy / revenue intelligence engine for stalled B2B pipeline. Customers assemble an evidence package from uploads, mailbox thread search, live meeting transcripts, field capture, optional HubSpot note import, and optional account-signal enrichment. A private API server transcribes audio (optional AssemblyAI), runs AI-assisted extraction (Layer 1), deterministic scoring (Layer 2), and returns a deal autopsy report with evidence quotes, People Map, Deal Risk Index (DRI), and recovery recommendations. Humans decide; Lazarus Deal Recovery does not send outreach or close deals autonomously.
| Included today | Not yet (roadmap) |
|---|---|
| Guest freemium analyses (five free) + optional Supabase Auth login; Stripe checkout exists for when volume requires paid plans | Unlimited public analyses without a plan |
| Account-scoped save of the report for signed-in users. Guests do not persist. A company key is shown once; we store a hash, not the key | SSO, a HIPAA business associate agreement, an uptime SLA, and a signed installer. A standalone install is the same app on the customer’s server and their database. It is not this hosted service, and the company key does not create it |
| Per-deal autopsy from audio, transcript, Word/PDF, and email threads | Bi-directional CRM write-back / full Salesforce sync |
| Optional CRM deal-link metadata + deal lifecycle UI (in progress) | Always-on inbox scraping or silent mailbox webhooks |
| User-initiated Gmail / Outlook thread search (read-only OAuth) | Org-wide executive dashboard across full pipeline |
| Live meeting triage (Zoom RTMS; Meet / Teams where configured) | White-label partner console / multi-client branding |
| Optional HubSpot or Salesforce import. Revive writes the score and next step when you click it. It does not change the pipeline stage | Autonomous AI SDR or automated outreach |
| Per-user OAuth tokens (AES-256-GCM at rest) + fail-closed webhooks + live session secrets | Dedicated KMS / hardware token vault |
| Grounding audit + deterministic DRI / viability / trajectory | SOC 2 Type II certification |
| Founder Ops Command Center (internal; founder/ops role only) | Customer-facing admin audit console |
The web console is display-only — scoring logic never runs in the browser. See Terms §1 and Privacy §2.
| Component | Role | Data access |
|---|---|---|
| Web console | Evidence intake, report display, optional login | No database credentials; calls private API only |
| API server | Transcription, Gemini extract, scoring, OAuth connectors, persistence, freemium limits | Service role (server-side only) |
| Supabase Auth + PostgreSQL | Optional login; RLS-isolated saves for signed-in users | Per-user rows via user_id; service role for API writes |
| Google Gemini | Text extraction API for paid runs | Transcript / stitched evidence sent per request; zero-training config where available |
| OpenRouter | Free-tier model routing | Same request text, with data collection denied and provider fallbacks off. Paid runs use Gemini. |
| AssemblyAI | Speech-to-text when Customer uploads audio | Audio buffer sent per request; not stored by Lazarus Deal Recovery |
| Google (Gmail / Meet) | Optional read-only mailbox + meeting connect | User-authorized OAuth; thread text only when searched/attached |
| Microsoft Graph (Outlook / Teams) | Optional read-only mailbox + meeting connect | User-authorized OAuth; conversation text when searched/attached |
| Zoom | Optional live RTMS transcript stream | Webhook-authenticated live turns during an explicit session |
| HubSpot / Salesforce | Optional deal import. Revive writes the score and next step, plus one note, when you click it | User-authorized OAuth. The pipeline stage is not changed. A CRM change does not rescore the deal on its own |
| Mode | Auth | Persistence | Limits |
|---|---|---|---|
| Guest | None required | Analysis not saved to an account | Client + server freemium / soft rate limits |
| Signed-in (customer) | Supabase Auth | The report summary, scores, and next actions are saved to that company. The raw transcript and evidence-quote fields are not | Freemium soft limits unless on a paid plan (when offered) |
| Company API key | X-Api-Key issued to that company | Posts the deal into this hosted app. The call is sent here, then to Google Gemini. The report is saved here. The transcript is not. This is not a standalone install | Their integration calls the API |
| Standalone install | The same app on the customer’s server | Writes to a database they own. Scoring uses their Gemini key. The Lazarus database does not hold those rows. The company key does not create this install | Not this hosted service. No signed installer |
| Founder / ops | Supabase Auth + allowlist / role | Same persistence model; Ops Command Center for support | Founder demo account may be uncapped for demos |
Channels are user-initiated. Lazarus Deal Recovery does not silently scrape inboxes or join every meeting. Mailbox search attaches specific deal threads; live sessions require an explicit connect; field capture starts when the rep records.
| Channel | Access model | What leaves the source system |
|---|---|---|
| Gmail / Outlook | Read-only OAuth (gmail.readonly / Mail.Read) | Matching thread text the user searches and attaches |
| Zoom / Meet / Teams live | App / Graph scopes + session start | Live transcript turns for triage (not a Zoom recording archive) |
| Field capture | Browser recording the user starts | Short audio buffer → transcript; audio not the system of record |
| HubSpot / Salesforce | Deal read, and a write of the next step plus one note when Revive or Push is clicked | The linked deal record comes in. The score and next step go back. The stage stays |
| Upload | Explicit file upload | Parsed document text or transcribed audio |
| Class | Examples | Handling |
|---|---|---|
| Customer confidential | Recordings, transcripts, CRM notes | Encrypted in transit; processed to write the report; not saved. A company API key returns the full brief to the customer’s server |
| Derived intelligence | Scores, status, rescue tasks | Saved to that company’s workspace; no public model training |
| Anonymous metadata | Rescue outcome vectors (no transcript) | Retained post-purge for product analytics |
| Operational telemetry | API event logs for founder/ops | Internal diagnostics; not used to train public models |
| Credentials | Company API key, service role | Company key shown once and stored as a hash. Service role stays on the server and never ships to the browser |
| Control | Implementation |
|---|---|
| Encryption in transit | TLS 1.3 (HTTPS) for all client and API traffic |
| Encryption at rest | AES-256 via Supabase / cloud infrastructure |
| Tenant isolation | PostgreSQL RLS on every public table (FORCE enabled). Browser anon/authenticated keys have no table GRANT (including TRUNCATE, which RLS does not cover). Data API cannot read or wipe rows; the Express API uses the service role. |
| Privileged access | Service role bypasses RLS server-side only; RPC functions locked to service role; founder/ops routes require allowlisted login |
| Browser exposure | Service role and Gemini keys never shipped to client |
| AI data use | APIs configured for zero retention / no public model training where available |
| Anti-hallucination | Server-side grounding audit; invented content stripped before scoring |
| Retention | The raw transcript is not saved. Evidence-quote fields are removed before the row is stored. The summary, scores, and next actions are kept. The report stays while the deal is open. When HubSpot or Salesforce marks the deal complete, the report is deleted then. Otherwise it is deleted 30 days after a win or a flat no. A stalled or recoverable deal is not on that clock |
| API hardening (prod) | Optional LAZARUS_API_KEY, CORS allowlist, IP rate limits (API / auth / analyses), Cloudflare Turnstile on every analysis, cron secret for purge / alert jobs, freemium soft limits |
| Authentication | Email confirmation required; magic-link and password-reset tokens never returned in JSON; OAuth login uses a one-time 5-minute ticket |
| Integrations | Bearer session required; tokens stored per user (not a global singleton); HubSpot / Zoom / Salesforce webhooks refuse traffic if the secret is unset |
| Live sessions | Unpredictable session IDs plus a session secret; Zoom RTMS captions publish only to that owner’s sessions |
| Analysis captcha | Cloudflare Turnstile checkbox before run; server verifies the token with Cloudflare before transcription or model calls. Missing secret in production refuses the analysis (fail closed). |
Same list as Privacy Policy §7. Primary hosting: North America.
These are internal operating procedures for Lazarus Deal Recovery. They do not replace legal advice. Contact during an incident: support@getldr.ca (and founder/ops alerts when configured). B2B customers with a DPA are notified of a confirmed personal-data breach without undue delay, consistent with DPA §7.
SUPABASE_SERVICE_ROLE_KEY and the anon key in Supabase, then update Render and the frontend build. Pause analyses from Ops HQ if writes must stop.TOKEN_ENCRYPTION_KEY, OAUTH_STATE_SECRET, webhook secrets, Stripe restricted keys, and LAZARUS_API_KEY.google_oauth_tokens and on-disk token maps after the new key is in place./api/post-mortem (rate limits still apply).After any confirmed incident: write a short internal note (what happened, time window, data classes, who was told, what was rotated). Keep monitoring API error rates and founder Ops alerts until the window is closed.
Commonly requested — disclosed honestly in security reviews:
| ID | Document | Audience |
|---|---|---|
| ToS-001 | Terms of Service | All users |
| PP-001 | Privacy Policy | All users, DPOs |
| DPA-001 | Data Processing Addendum | B2B / enterprise |
| SEC-001 | This Security Overview | InfoSec, procurement |
| SEC-002 | Security Battlecard (founder-internal) | Founder account only — not a public Trust Pack link |
This overview is accurate to the current codebase. Have legal and security counsel review before submitting to regulated customers or RFPs that require formal certifications. Lazarus Deal Recovery is not SOC 2 certified today; hosting providers may maintain their own certifications.