stephenlthorn/auto-identity-remove: Automated data broker opt-out runner — removes your personal info from 30+ people-search sites on a monthly schedule · GitHub

💥 Explore this insightful post from Hacker News 📖

📂 **Category**:

📌 **What You’ll Learn**:

Automated data broker opt-out runner for macOS. Removes your personal information from 500+ people-search sites and data broker databases on a monthly schedule — with CAPTCHA solving, persistent state tracking (so completed opt-outs aren’t resubmitted every run), and an iMessage notification when done.

Each month, the script:

  1. Searches each data broker site for your name + state
  2. Finds your specific listing (for sites that need a profile URL)
  3. Fills and submits the opt-out form automatically
  4. Solves CAPTCHAs via CapSolver (AI-powered, ~$0.001/solve)
  5. Skips brokers you were already removed from recently (90-day re-check window)
  6. Sends you an iMessage with the results summary
  7. Opens any sites that require manual action in your browser

  • macOS (uses launchd for scheduling and Messages for iMessage)
  • Node.js 18+
  • Playwright browsers installed
npx playwright install chromium

# 1. Clone the repo
git clone https://github.com/stephenlthorn/auto-identity-remove.git
cd auto-identity-remove

# 2. Install dependencies
npm install

# 3. Run interactive setup (creates config.json and schedules the monthly job)
node setup.js

# 4. Run manually anytime
./run.sh

node setup.js guides you through:

Step What it does
Personal info Name, city, state, ZIP, email, phone
Aliases Past names or variations (e.g. “Steve Doe”)
CapSolver key For CAPTCHA-protected opt-out forms
One-time accounts Creates accounts on sites that require login (stored in config.json, gitignored)
iMessage Phone number to text the results summary to
launchd schedule Registers a monthly job to run on the 1st at 9am

Your personal info never leaves your machine. config.json and state.json are both gitignored.


CapSolver (optional but recommended)

Some opt-out forms have reCAPTCHA. Without CapSolver, those sites go to your manual list instead of being handled automatically.

  1. Sign up at capsolver.com — free, pay-as-you-go
  2. Add $1–2 of credits (enough for months of use at ~$0.001/solve)
  3. Paste your API key when setup.js asks, or add it to config.json:
"capsolver": ⚡

auto-identity-remove/
├── setup.js            ← Run once: interactive setup + scheduling
├── watcher.js          ← Main runner
├── brokers.js          ← Broker list with opt-out strategies
├── run.sh              ← Manual trigger
├── config.example.json ← Template (copy → config.json)
├── package.json
├── .gitignore
│
├── config.json         ← YOUR personal info (gitignored, created by setup.js)
├── state.json          ← Opt-out history / skip logic (gitignored)
└── logs/               ← Per-run JSON logs (gitignored)

state.json tracks when each broker was last successfully opted out. The default re-check window is 90 days — brokers typically re-add your data within that window, so the script re-submits when it’s time.

{
  "optOuts": {
    "Spokeo": {
      "lastSuccess": "2026-05-01T09:00:00.000Z",
      "totalRuns": 3,
      "detail": ""
    }
  }
}

On each run you’ll see:

  • ✅ Removed — opt-out submitted this run
  • ⏭ Skipped (fresh) — removed recently, re-check not due yet
  • 🔍 Not listed — your name wasn’t found on that site
  • 📋 Manual needed — opened in your browser for you to handle
  • ❌ Error — network/timeout issue, will retry next run

Site Method
Spokeo Search → find listing → opt-out form
WhitePages Search → find listing → suppression form
FastPeopleSearch Search → opt-out form
TruePeopleSearch Direct opt-out form
BeenVerified Opt-out search form
Radaris Search → privacy form
Intelius Direct opt-out form
PeopleFinders Direct opt-out form
PeopleSmart Direct opt-out form
MyLife Search → opt-out
Nuwber Search → removal form
FamilyTreeNow Direct opt-out form
CheckPeople Direct opt-out form
ThatsThem Direct opt-out form
USPhonebook Direct opt-out form
PublicDataUSA Direct opt-out form
SmartBackgroundChecks Direct opt-out form
SearchPeopleFree Direct opt-out form
PeopleSearchNow Direct opt-out form
InfoTracer Direct opt-out form
SocialCatfish Direct opt-out form
NationalPublicData Direct opt-out form
ClustrMaps Direct opt-out form
PrivateRecords Direct opt-out form
Acxiom Direct form (feeds dozens of downstream brokers)
LexisNexis Direct form (legal/financial data)
ZoomInfo Direct form (B2B professional data)
Clearbit Direct form (B2B enrichment data)
Pipl Email opt-out via Mail.app

Generic — 500+ additional brokers (auto-detected)

generic-runner.js handles the remaining ~470 brokers from two public datasets:

For each site it tries four strategies in order:

  1. Click a “Do Not Sell My Personal Information” button
  2. Opt out via OneTrust / TrustArc / Osano privacy manager
  3. Fill any generic opt-out form (email, name, state) and submit
  4. Find and record a DSAR / data request link for manual follow-up

Sites requiring manual action are opened in your browser automatically.

Manual (opened in browser for you)

Site Why manual
Google — Results About You Requires Google account interaction
Google — Outdated Content Case-by-case URL submission


Edit brokers.js and add an entry:

{
  name: 'NewBrokerSite',
  method: 'direct-form',           // or 'search-form', 'email', 'manual'
  optOutUrl: 'https://example.com/opt-out',
  formFields: {
    'input[name*="first" i]': F,   // F, L, N, E, ST, Z are from config
    'input[name*="last"  i]': L,
    'input[type="email"]':    E,
  },
  submitSelector: 'button[type="submit"]',
  captchaLikely: false,
  priority: 2,
}

PRs welcome — especially for brokers with verified working selectors.


Or to run in the background and log output:

./run.sh >> logs/manual-run.log 2>&1 &

Uninstall / disable schedule

launchctl unload ~/Library/LaunchAgents/com.auto-identity-remove.plist
rm ~/Library/LaunchAgents/com.auto-identity-remove.plist

Why not just use a paid service?

Paid services like Incogni ($96/yr) or Optery ($39/yr) are excellent and cover more brokers with professionally maintained opt-out flows. This tool is for people who want full control, transparency, and no recurring subscription — or who want to handle the gaps those services miss (Acxiom, LexisNexis, ZoomInfo, Clearbit).

Using both is the strongest approach: a paid service for the bulk of brokers + this script for the gaps.


MIT

{💬|⚡|🔥} **What’s your take?**
Share your thoughts in the comments below!

#️⃣ **#stephenlthornautoidentityremove #Automated #data #broker #optout #runner #removes #personal #info #peoplesearch #sites #monthly #schedule #GitHub**

🕒 **Posted on**: 1779106902

🌟 **Want more?** Click here for more info! 🌟

By

Leave a Reply

Your email address will not be published. Required fields are marked *