How it works
Five roles, one SQLite file, and a case file you control.
The current release is a local case-management and dry-planning build. It prepares reviewed search and form steps, request drafts, aliases, deadlines, and an evidence ledger. It does not browse broker sites, submit requests, or verify removals automatically.
The run loop
Current release: dry planning and manual evidence only. UNLISTED_DRIVER=live is rejected before the database or a browser can be opened.
- 01
Scout
Plans each reviewed broker search and contains the local matching rules for name, age, city, relatives, and phone. The current dry runner does not open those search pages; you can add an exact listing URL manually and confirm it yourself.
→ dry search plan, or a user-confirmed listing - 02
Operative
Turns the broker recipe into a redacted, reviewable dry plan. It does not open the broker form or submit personal data. You perform the external step, then record the attempt and its exact evidence in the local case file.
→ local draft and next step; nothing submitted - 03
Sentinel
Keeps removal and recurrence as separate evidence-backed outcomes. Automatic page checks are disabled in the current build, so dry verification stays inconclusive. You can record a point-in-time observation with the source and exact evidence.
→ user-reviewed observation + local evidence digest
Mailroom
Mints a per-listing plus alias. Confirmation-link parsing accepts only HTTPS links on the broker's own domain, but no inbox worker reads or clicks them. The job parks and tells you to handle the message manually.
Counsel
Drafts CCPA § 1798.105 deletion, opt-out of sale under § 1798.120, GDPR Article 17 erasure, authorized-agent requests, and neutral follow-ups. Local timers never manufacture a legal breach; drafts stay local for review.
Scout
A heuristic narrows the queue. You make the decision.
The scout code contains local matching rules for name, age, city, state, relatives, and phone numbers. The score is not a probability, and any candidate would still require your confirmation. In the current dry-only runner, broker search plans are recorded but no search page is opened and no listing is discovered automatically.
You can add an exact listing URL yourself. It must use HTTPS, remain on the selected broker’s allowlisted domain, and be confirmed as yours or one you have permission to handle. Local result parsing and structured-AI extraction exist for a future reviewed executor, but neither receives a live page in this release.
Source: UnlistFast source — packages/agents/src/scout.ts, packages/core/src/matching.tsWhy the floor matters: filing a removal for the wrong person means sending a stranger’s name and city to a data broker in order to delete a record that was never yours. Missing a listing costs you a re-run. Getting it wrong costs somebody else.
Operative
Reviewed recipes, visible before you act.
Each mapped broker has a recipe: go here, paste the listing URL, fill the contact email, submit, capture the result. Every step also carries a plain-English intent — “paste the exact profile listing URL” — sitting right next to its selector.
Today, the dry driver records those intended steps with personal values redacted. It never opens the broker form or clicks Submit. You perform the external action yourself, then record whether it was accepted, uncertain, or failed and upload the exact evidence you reviewed.
Source: UnlistFast source — packages/agents/src/operative.ts, driver.ts, live-driver.tsOne active mode, two dormant adapters
dry records what it would do and touches no network — that powers demo mode and the “explain this removal” preview. Playwright and read-only AI adapter code remain dormant architecture: UNLISTED_DRIVER=live is rejected at startup, and an Anthropic API key does not activate either path.
External gates stay with you
CAPTCHAs, logins, phone checks, ID uploads, and all broker-side submission remain manual. The case can label the next step as Needs you and wait for evidence from the action you perform.
Sentinel
Evidence without pretending a dry run looked.
The data model distinguishes removed, still listed, relisted, and inconclusive. The current dry sentinel does not load a listing URL and therefore records verification as inconclusive instead of manufacturing a success state.
You can personally check the source and upload the exact evidence for a point-in-time removed or relisted observation. The local ledger stores its source, timestamp, and digest; relisting never creates another request automatically.
Source: UnlistFast source — packages/agents/src/sentinel.tsMailroom & Counsel
Aliases, conservative parsers, and a filing cabinet.
The mailroom mints a per-broker plus-address alias and contains conservative parsers for confirmation links and codes. The current provider cannot read an inbox, so email confirmation is handed back to you rather than described as though an unseen mailbox worker exists.
Counsel writes the escalation. The templates are deterministic and ship in the box — no API key, no model call, no chance of a model inventing a statute. Drafts remain local until you review and send them.
Source: UnlistFast source — packages/agents/src/mailroom.ts, counsel.ts| Kind | Basis |
|---|---|
| Deletion | Cal. Civ. Code § 1798.105 |
| Opt out of sale | Cal. Civ. Code § 1798.120 |
| Erasure | GDPR Art. 17, with an Art. 21 objection |
| Authorized agent | 11 CCR § 7063 — requires valid signed permission and consumer verification |
| Request follow-up | Neutral status request; it does not infer a missed deadline from a local timer or claim screenshots that were not attached |
California
DROP is a separate official state request.
The DELETE Act created a state-run request for eligible California residents. Registered brokers must access and process the state’s recurring deletion list every 45 days.
UnlistFast does not integrate with or submit to the portal. The official instructions allow an eligible person to submit for themselves and explain when someone may submit for another person with permission. UnlistFast asks you to declare residency explicitly and hands you the official link.
Source: California Privacy Protection Agency — DROPWhat you see
A log, not a quarterly PDF.
Dry-plan events and user-recorded lifecycle actions receive a timestamp and actor. Evidence-backed actions also carry the stored artifact reference and digest. The sample log shows the intended full case history; it is not a claim that today’s runner performed those network actions.
- 2026-08-05 14:22 sentinel example-broker.test/profile/example-profile → 404. removed. evidence/example-verify-0812.png
- 2026-08-05 09:04 operative radaris.com is phone-gated → parked before browser launch for manual completion
- 2026-08-04 18:40 mailroom beenverified.com confirmation email expected at +ul-beenverified → needs you
- 2026-08-03 12:11 sentinel familytreenow.com listing is back after 94 days. relisted.
- 2026-08-02 07:15 counsel drafted CCPA §1798.105 letter → privacy@mylife.com. 31 days waiting.
- 2026-08-01 11:02 scout truepeoplesearch.com: 2 candidates, top heuristic 0.86 → waiting for review
Sources
- California Consumer Privacy Act as amended by the CPRA — right to delete (§ 1798.105), response deadlines (§ 1798.130(a)(2)), authorized agents (11 CCR § 7063). https://oag.ca.gov/privacy/ccpa
- Official GDPR text: Article 12 response rules, Article 17 right to erasure, and Article 21 right to object, each subject to the regulation's scope and exceptions. https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng
- California's Delete Request and Opt-out Platform launched on 1 Jan 2026. Brokers began processing requests on 1 Aug 2026, with an initial 90-day window and recurring deletion processing every 45 days. https://privacy.ca.gov/drop/
- The claims about what UnlistFast does are checkable against the code: packages/agents/src/*.ts and packages/brokers/src/*.ts.