How to Self-Host unbroker for Data Broker Removal

At a glance

Consent gates the run; custody grows with the host surface. The workflow records consent before scanning, keeps deterministic run state and verification in a ledger, and treats a shared hosted app as the highest personal-data custody option.

unbroker pipeline from consent through local dossier, action queue, scan or opt-out, ledger, verification poll, and human digest, with local, temporary VPS, and shared-host custody boundaries.
Consent gates the run; custody grows with the host surfaceCunicula
Data behind this diagram
unbroker operating stages and custody boundaries
unbroker operating stages and custody boundaries
Stage or hostStable roleBoundary or record
Local workstationPersonal runs with local dossiers and controlled browser or email sessionsLower hosting surface; machine availability remains required
Temporary VPSClean isolated run without local machine dependencyEncrypt storage, restrict access, avoid backups, and delete the workspace after reporting
Shared hosted appConvenient multi-user hostingHighest PII custody burden; the article says not to start here
ConsentRecord authorization before scanning or removal requestsNo consent means no run
Deterministic stateCLI owns dossiers, broker data, planning, ledger, drafts, reports, polling, and queueKeep collected fields narrow and use opaque subject IDs
Agent actionsExecute scans, browser steps, email work, and scheduled rechecksAnti-bot and identity-proof gates move to a human task
LedgerRecord removal route, fields disclosed, result, and fallback reasonSubmitted is not the same as removed
Verification pollRe-scan and classify hidden, deleted, corrected, or unresolved outcomesBroker and source-record removal remain separate
Human digestPresent blocked tasks and schedule rechecksMonitoring duration controls person-record retention
California DROPOne deletion request can cover more than 600 registered brokersCovered data must be deleted within 90 days starting August 1, 2026

unbroker is a Hermes Agent skill for finding exposed personal information on broker and people-search sites, filing removals where possible, recording outcomes, and checking later. The useful self-host pattern is simple: keep the person record local, record consent, disclose only required fields, and treat every removal as unconfirmed until a re-scan verifies it.

Primary sources

This is a self-host guide, not a deletion guarantee. Use it for yourself or someone who clearly authorized the run. Broker removal reduces exposure. It does not remove public records or stop every future copy.

What you are hosting

The upstream skill splits the work in two. A Python CLI owns deterministic state: setup, dossiers, broker data, planning, ledger, drafts, reports, verification polling, and the next action queue. The agent handles scanning, browser steps, email work, and scheduled re-checks.

That split is the reason it is interesting. You are not asking a model to invent a privacy cleanup process. You are asking it to follow a queue and write down what happened.

Local Mac or VPS

FIG. 1: Where to run unbroker
Where to run unbroker
HostGood forWatch
Local workstationPersonal runs, browser/email sessions, local dossiers, lower hosting surfaceMachine must stay awake for long runs and scheduled re-checks
Temporary VPSClean isolated run, separate IP, no local machine dependencyEncrypt storage, avoid backups, restrict SSH, delete workspace after report
Shared hosted appConvenienceHighest PII custody burden. Do not start here.

Basic run shape

Install the skill through Hermes, then start a fresh session and drive the workflow from the skill directory.

Hermes skill install
hermes skills install official/security/unbroker

In the unbroker skill directory, the upstream docs use the Python CLI as the driver:

unbroker CLI driver
PDD="python3 scripts/pdd.py"

The exact commands can change upstream. Check the official README and SKILL.md before a real run. The stable operating pattern is:

  1. Run setup and doctor.
  2. Create a subject only after consent.
  3. Refresh broker data.
  4. Generate the next action queue.
  5. Execute scan, opt-out, email, browser, or verification tasks.
  6. Record each result in the ledger.
  7. Repeat until there is nothing useful to do now.
  8. Present the human-task digest and schedule re-checks.
unbroker run commands
$PDD setup --auto
$PDD doctor
$PDD intake --full-name "Example Person" --email "example@example.com" --city "City" --state "CA" --consent
$PDD refresh-brokers
$PDD next <subject_id>
$PDD tasks <subject_id>
$PDD status <subject_id>

Consent and intake

The intake data is sensitive by design. It can include names, aliases, emails, phones, current location, and prior locations. Keep it narrow. If a broker cannot search by a field, do not collect it just because it feels complete.

  • Record consent before any scan.
  • Use a separate workspace per subject.
  • Use opaque subject IDs, not names in folder paths.
  • Prefer local storage and at-rest encryption where available.
  • Do not store government ID unless a specific human-only task requires it.

Email and browser mode

Removal flows often need email verification. The upstream skill supports browser-mode email and programmatic SMTP/IMAP. Browser mode avoids storing a mail password, but it requires a logged-in browser session. Programmatic email is more automated, but the credential surface is larger.

FIG. 2: Email modes
Email modes
ModeUse whenRisk
Browser webmailYou can drive a logged-in browser and do not want stored mail credentialsNeeds local browser control and careful session separation
SMTP and IMAPYou want hands-off sending and verification pollingStores or exposes mail credentials to the run environment
Draft onlyYou want no mail automationMore manual work and slower verification

DROP first for California

California DROP changes the route for California residents. The state tool lets a resident submit a single deletion request to more than 600 registered brokers. Starting August 1, 2026, data brokers must delete covered data within 90 days of a DROP request.

That means a good California run should not only crawl people-search sites. It should file or track DROP, then work people-search parent clusters, standalone opt-outs, email rights requests, blocked tasks, and re-scans.

What to measure

The value of a run is not only "submitted forms." The useful data is the removal graph.

FIG. 3: Run outputs worth keeping
Run outputs worth keeping
OutputWhy it matters
Broker exposure foundShows which sites actually expose the person.
Removal route usedBuilds a reusable playbook for future runs.
Fields disclosedMeasures the privacy cost of each opt-out.
Human fallback reasonShows what cannot be safely automated.
Verification stateStops cosmetic removal claims from becoming false reports.
Next re-check dateTurns one-time cleanup into monitoring.

Workflow boundaries

  • The consent-gated intake records the subject's authorization before scans or removal requests.
  • Hidden from free search and deleted are different verification states.
  • Hard anti-bot gates move to a human fallback path.
  • Person-record retention follows the run or monitoring plan.
  • Broker-listing removal and source-record removal are reported as separate outcomes.

Read the unbroker overview for the consent, local-storage, and re-scan boundaries.

Frequently Asked Questions

Can unbroker be self-hosted?

Yes. unbroker is an optional Hermes Agent skill with a deterministic Python CLI. It can run from a local machine or isolated server, with local dossiers, a ledger, email/browser steps, and scheduled re-scans.

Should unbroker run on a local Mac or a VPS?

A local Mac is the cleaner default because personal identifiers stay closer to the operator and browser/email sessions are easier to control. A VPS can work for isolated temporary runs, but it needs tighter storage, access, logging, and deletion discipline.