How submissions enter the system, how verifiers see them without seeing anything else, how duplicates die at the door, and how the sovereign gets the ping on the phone.
Fresh Gmail for intake. CircularOS for everything else. Verifiers touch the inbox and the dashboard. Workers never see the system. The sovereign's main email stays clean.
Send submissions. Get a feedback link. Never log in. Never see other workers, other submissions, or any internal system.
PIN-gated dashboard. See pending submissions. Flip status only. Cannot see jobs board, registry, financials, or any other CircularOS surface.
Full access. Payment queue. Phone-friendly ping inbox. Email account password. Verifier PIN. Everything.
/bounty-submit./bounty-pings within seconds, with a sound and a vibrate on mobile./bounty-verifier, applies the two checks (work happened, result happened), flips status to APPROVED or REJECTED./bounty-status/<token>. If duplicate, they're told and invited to submit a different lead./bounty-payments, confirms the suggested amount, marks paid. Worker sees PAID at their token URL.| Bounty type | What makes it unique | What triggers DUPLICATE |
|---|---|---|
| FIND | Domain | Same domain already in PENDING / APPROVED / PAID |
| SEND | Domain + worker email | Same worker has already counted that domain |
| REPLY | Domain + thread hash | Same body content already submitted for that domain |
| CALL | Domain + day | Two CALL submissions for one company on one day |
Detection runs before insert. The duplicate row is still saved (so the audit trail exists), but its status is DUPLICATE from the moment it lands and no payment is queued.
Create a separate Gmail account, e.g. bounty.circularos@gmail.com. Then either:
/bounty-submit on the worker's behalf. Simple, works today, no setup./api/bounty/email-webhook with header X-Bounty-Secret: $BOUNTY_WEBHOOK_SECRET. The webhook auto-detects bounty type from the subject line and inserts a row.Either way, the Gmail credentials are sovereign-only or shared with appointed verifiers at the sovereign's discretion. They never touch CircularOS source.
/bounty-pings is built mobile-first. Open it once on your phone, tap "Add to Home Screen" in the browser menu — it now opens like a native app. The page:
| Surface | Worker | Verifier | Sovereign |
|---|---|---|---|
| /bounty-submit | ✅ | ✅ | ✅ |
| /bounty-status/<token> | ✅ own only | — | — |
| /bounty-verifier | ❌ | ✅ (PIN) | ✅ |
| /bounty-payments | ❌ | ❌ | ✅ |
| /bounty-pings | ❌ | ❌ | ✅ |
| Bounty Gmail inbox | send-only | ✅ (shared) | ✅ |
| Rest of CircularOS | ❌ | ❌ | ✅ |
bounty_submissions — every entry, with status, dedupe_key, public_token, verifier notes, payment record.bounty_pings — one row per system event (NEW · EMAIL · DUPLICATE · DECISION · PAID), used by the phone ping page.PENDING → APPROVED → PAID · PENDING → REJECTED · (insert) → DUPLICATE
"Verification Team roles are appointed by the sovereign. Appointment is flexible — family, trusted individuals, or hired verification staff. No names are recorded in the doctrine. The verification email account is shared with appointed verifiers at sovereign discretion."
VERIFIER_PIN — the PIN appointed verifiers use at /bounty-verifier-login. If unset, falls back to SOVEREIGN_PIN.BOUNTY_WEBHOOK_SECRET — header secret that the Gmail Apps Script must include when POSTing to the email webhook. If unset, the webhook is open (use only for testing).