Sub-processors

Who else touches your data

Compiled by reading the code and the deployment configuration, not from memory. If a service is not on this list, cogz does not send it your data.

Last reviewed 26 August 2026 · Trust & security

Sub-processors that receive customer content

These four see what was said in your discovery calls, or the documents you upload. They are the ones that matter in a review.

ProviderWhat reaches themWhyProcessed in
Anthropic Discovery transcript text, your objectives and free-text notes, and uploaded evidence documents (sent as native PDF and image content). The reasoner that suggests the next question, objective synthesis, extracting answers from evidence. This is the broadest content flow in the product. United States
AssemblyAI Live calls: your microphone audio, streamed from your browser straight to AssemblyAI — it does not pass through cogz. Uploaded recordings: the audio file, sent by cogz. Speech-to-text. United States
Recall.ai The meeting URL, and then the meeting itself — Recall's bot joins the call and processes the audio and video on its own infrastructure. cogz receives finalized transcript turns and typed in-meeting chat back from it. Joining remote calls (Zoom, Teams, Meet) when you send the bot. United States
zbrain The text of a knowledge query — a question or topic, not the transcript. Grounding vendor-specific answers in cited source documents. Operated by cogz.io on the same Hetzner infrastructure. A separate deployment, so it is listed rather than hidden inside "cogz".

Sub-processors that receive account or operational data

No discovery content reaches these.

ProviderWhat reaches themWhyProcessed in
Hetzner Everything at rest — cogz runs on a single Hetzner host. Your database lives on its disk. Compute and storage. United States
Cloudflare All HTTP traffic to cogz in transit; TLS terminates at Cloudflare. Nightly encrypted database backups are stored in Cloudflare R2. TLS, CDN, DDoS protection, off-host backups. Global edge; backups in Cloudflare R2
Fastmail Recipient email address and message body — invitations, password resets, access requests. No discovery content is ever emailed. Outbound transactional email. Fastmail states it has not pursued SOC certification but applies its principles, and offers a signed Data Protection Agreement to all customers. Not HIPAA compliant, by their own statement. Fastmail privacy, read 2026-08-25. Australia / United States
Stripe Billing identifiers and subscription state. cogz never sees or stores a card number; card data goes to Stripe directly. Subscription billing. United States
Google Fonts Your browser's IP address and user-agent, on page load. No application data. Two typefaces are loaded from Google's font CDN. Typography. Global edge

Destinations you choose

Tenant-configured

Your CRM webhook. If your workspace configures a CRM webhook, cogz posts session debriefs, recorded outcomes and deal-state changes to the URL you supply, signed with a shared secret. The receiving system is your choice and your processor, not cogz's — it is listed here because the data leaves cogz when you switch it on. It is off unless you configure it.

Account research: what is wired, what is gated, and what runs nowhere

cogz contains an account-research capability that reads public records about a company you are selling to. Re-checked against the running system on 26 August, it has three states rather than the two this page described before, and only the first of them sends anything at all. That one is now switched on. The destinations below were written down here while it was still switched off, and turning it on changed none of them: the same three, in the same words. The second and third states remain silent.

1. Reading the public record — running

An authenticated seller can start a research brief on an account they have access to. Four modules do the work: they read the company's careers and jobs pages, its investor-relations pages, its SEC filings and its proxy statement. Nothing is scanned, and nothing is sent at anything but an ordinary public web server.

As of 26 August this executes in production, and what changed is worth stating exactly. Starting a brief queues a background job. Until today the worker that drains that queue was switched off on the production host, so the route accepted the request, the brief sat recorded as queued, and nothing went out. The worker is on. Briefs now run, and the requests below are made. The change was one environment setting on one host, which is why this page named the destinations while the setting was still off: it was corrected first and flipped second. These are the destinations and this is what reaches them:

  • SEC EDGAR (www.sec.gov and data.sec.gov) receives the company name and its filing identifier. Nothing about your workspace.
  • The company's own website receives ordinary page requests for its careers, jobs and investor-relations pages, of the kind every browser and search crawler makes.
  • Whatever host serves that company's investor-relations PDFs. Earnings and filing PDFs linked from an investor-relations page are usually hosted on an IR provider's CDN rather than the company's own domain, and cogz follows those links to whichever host they point at. This destination is therefore not a fixed list — it is whatever the company itself links to. It is named because a completeness promise that quietly excluded it would be worth nothing.

On identifying ourselves — exactly, rather than flatteringly. Two of the three request paths name cogz. The careers fetch sends cogz-recon/1.0 (+https://cogz.io), and the SEC fetches send cogz-recon mailto:no-reply@cogz.io, which is the contact address EDGAR asks automated clients to supply. The investor-relations fetch does not. It sends an ordinary Chrome user-agent string, so those requests are not attributable to cogz in that company's logs. That is an inconsistency between two halves of one feature rather than a policy, and writing it here is cheaper than having it found.

Two of the four modules drive a headless browser rather than fetching a single file, so the company's page loads its own subresources exactly as it would for any visitor, and the investor-relations path clicks a cookie-consent button when one blocks the page. That is interaction with their site, not only reading it.

A brief is shown to the seller as observations from public sources, each with a link to the record it came from. Two of the four parsers are known not to extract reliably and say so on their own results rather than reporting an empty read as a fact about the company. The brief writes nothing into your customer's record and nothing into any document your customer reads.

2. Gated by a recorded authorisation — and inert even when it is granted

The rest of the subsystem describes traffic aimed at a company's own infrastructure: port scans, TLS handshakes with certificate verification switched off, VPN-portal guessing, cloud-bucket guessing, Microsoft account enumeration, and web-fingerprinting tooling. Reaching it requires an authorisation recorded against one account, naming who authorised it, on what grounds, and until when. There is no global switch. The grounds are stored verbatim with a SHA-256 fingerprint so a later rewording cannot be backdated onto an older authorisation; it expires — thirty days unless a shorter period is set; and withdrawing it marks the record revoked rather than deleting it, so the original act stays answerable afterwards.

What this page claimed before, and what the code actually does. It said that if the authorisation were granted, a long list of destinations would receive traffic. That is not true. The eight probe-grade entries in this lane are declarative: each carries a description and no implementation. An authorised run walks each one, records it as unavailable with the reason stated, and sends nothing. Enabling the worker above did not change that, and could not: there is no code behind these eight to run. Authorisation lengthens the list of names the brief considers; it does not cause one additional packet to leave cogz. The gate is real and worth keeping. Today there is nothing behind it here.

3. Present in the code, reachable from nothing

A larger attack-surface engine exists in the repository — certificate-transparency services, DNS and network-intelligence services, URL and archive services, breach lists, code search, and a set of regulator and court sites. Nothing in the deployed product can start it. It has no HTTP route, no command-line entry point, and nothing in the web application calls it. It is described here rather than omitted, because "this exists and nothing can reach it" is a better answer than a reviewer finding the code and drawing their own conclusion.

viewdns.info gets its own line, because a name is not a domain. A reverse-WHOIS lookup that would send a company or registrant name — a named organisation — to viewdns.info is present in the code. It sits in a module that nothing imports. It cannot be reached from the research brief, from an authorised brief, or from any other deployed path, so no registrant name is sent there today, from anywhere in this product.

The same is true of the two checks that would send more than a domain. A SaaS-tenant probe would send the target company's brand name to a dozen vendors' own hostnames — Salesforce, ServiceNow, Slack, Workday, Snowflake, Databricks, Atlassian, Box, DocuSign, Dropbox, HubSpot, Zendesk — to see which respond, and a company-status check would send the company name to Wikipedia. Both sit in modules that nothing imports. They are named because they are queries about a third party made from cogz, which is the kind of thing that should be disclosed before it runs rather than after; today neither can be reached. This is also why the "no direct CRM integration" line below is not in tension with it — a probe that asks whether a vendor hosts a tenant is not an integration, and neither one runs.

The scanning gateway gets its own line, because it would scan from somewhere else. It is operator-run infrastructure that would receive a constructed shell command containing the target domain, execute it with tooling such as amass, whatweb, wafw00f and theHarvester, and send the resulting traffic to the target from that host's IP address rather than from cogz's. It is inert for two independent reasons: no address is configured in the deployed product, so no command is ever constructed; and the probes that would call it belong to the engine above, which nothing can start. Both would have to change before a single packet left.

Two further services in this subsystem, VirusTotal and Censys, additionally have no credential configured and would decline to call out even if something reached them.

All of this concerns the company you are researching — not your own workspace's content. No discovery transcript, no uploaded document and no answer recorded in a session is sent to any destination in this section, in any of the three states above.

Things reviewers ask about that cogz does not use

Checked by downloading the JavaScript and CSS that the live application actually serves — the entry bundle, both lazily-loaded chunks and the audio worklet — and reading those, rather than the source they were built from. A tag can be added to a page without ever appearing in a component, and a claim about a bundle should be checked against the bundle.

  • No third-party analytics or product telemetry. No Google Analytics, PostHog, Plausible, Segment, Mixpanel, Hotjar or Intercom. cogz's web pages load no third-party script tags at all. Read off the served files, the application contacts exactly two external origins in your browser: Google's font CDN, and the speech-to-text provider's streaming endpoint during a live in-person capture. There is no third. cogz does record its own product usage — which suggested question a seller took, skipped or promoted during a live session — but that goes to cogz's own database on cogz's own host and to no one else. Saying "no telemetry of any kind" would have been the easier sentence and it would not have been true.
  • No error-reporting or crash-reporting service. There is no Sentry or equivalent. Application errors go to the container log on cogz's own host and nowhere else. For a product that handles meeting transcripts this is deliberate: an error payload is exactly where transcript fragments would leak to a third party.
  • No cloud object storage outside Cloudflare R2 backups. No S3, no Google Cloud Storage.
  • No direct integration with Salesforce, HubSpot or any other CRM. The only path out is the webhook you configure yourself, above.

Changes

This list is maintained as part of the change that introduces a sub-processor, not audited afterwards. If you have a signed agreement with cogz that requires notice before a new sub-processor is added, that notice is sent to your workspace owner. Questions: olivier@cogz.io.