Gujob is a manipulation detector for online text. It runs on a Chrome extension and a small server. This page describes exactly what we collect, what we don't, where it lives, how long we keep it, and how to delete it.
Each time you select text and click Analyze with Gujob, your browser sends:
reddit_post or reddit_comment) and, when present, the subreddit name (e.g. r/news) — used for aggregate diagnostics, never tied to your identity.If you tap Looks right, Looks off, or pick a follow-up reason, we record the verdict you reacted to and the choice you made. We do not persist the analyzed text alongside feedback unless you've explicitly granted training consent (see §4).
Sign-in is optional and only raises your daily quota. If you sign in, we store your Google email address and the Google-issued account identifier (the sub claim). We do not request access to your Gmail, contacts, calendar, Drive, or anything else. We do not use your email for marketing.
| Surface | Stored where | Contains | Retention |
|---|---|---|---|
| decision row | Cloudflare D1 (database) | Verdict, confidence, severity, evidence count, model and prompt versions, install hash. No raw text. | Up to 24 months, or until you delete. |
| audit blob | Cloudflare R2 (object storage), private bucket | Normalized analyzed text + raw model output. Operator-only access. | 30 days, then auto-purged. Earlier on delete request. |
| feedback row | Cloudflare D1 | Your agree/disagree choice and an event class. Includes analyzed text only if training consent was granted. | Up to 24 months, or until you delete. |
| user record | Cloudflare D1 | Email + Google account identifier (signed-in users only). | Until you delete your account. |
All data is hosted on Cloudflare's infrastructure in their global edge network. We do not export your data to any other processor.
By default, the analyzed text is not retained alongside your feedback. If we ever ask you to opt in to "help improve Gujob," that consent is the only thing that lets us keep the text you analyzed for the purpose of refining the classifier in future versions. You can decline and the product still works. You can revoke consent at any time by deleting your data (§7); revocation removes any text we kept under the prior grant.
Even with consent, we do not sell training data, do not share it with model providers as training input, and do not include personally identifying details. Curated samples that enter our public evaluation datasets are reviewed and may be lightly redacted; aggregated, fully anonymized snippets may appear in the public eval datasets in our open-source repository.
To produce a verdict, the analyzed text is sent in real time to a large-language-model provider (currently OpenAI). Their API terms specify the data is not retained by them beyond a short abuse-monitoring window and is not used to train their models. We send only the analyzed text and a fixed instruction prompt — no install hash, no email, no metadata that could re-identify you to the provider. If we add or switch providers, we update this page.
From the extension popup, click Delete my data. This calls our DELETE /v1/me/data endpoint, which removes:
The action is irreversible. Decision rows are normally append-only for audit integrity; user-initiated deletes are a documented exception that takes precedence.
For data access, correction, or any privacy question that the popup button doesn't cover, email [email protected]. We aim to respond within 14 days.
If you're in the EU, UK, or California, you have additional statutory rights (access, portability, objection, and erasure under the GDPR / CCPA / CPRA). The deletion flow above satisfies the right to erasure. For the rest, contact [email protected].
Gujob is not directed at children under 13 (or 16 in the EEA). We do not knowingly collect data from anyone in those age ranges. If you believe we have, contact [email protected] and we will delete it.
If we make a material change — adding a new processor, changing retention, or expanding what's collected — we will update this page and bump the "Last updated" date at the top. For changes that affect existing users (e.g. extending retention or adding a new model provider), we will surface a notice in the extension before applying the change to your data.