I turned my inbox into a graveyard. 199 ghosts rose, and one had been silent for 7.8 years A developer built Haunted Inbox, a local tool that scans a user's mailbox to identify forgotten online accounts, reporting when each was joined, whether it was breached afterward, whether it may still hold payment details, and its last subject line. The tool uses Gemma 4 E2B via Ollama to classify each sender as an account, while deterministic code handles factual claims; on 166 hand-labeled real senders it found 101 of 159 accounts versus 65 for keyword search, with 3 false positives each, though it still misses 3 of 6 test scams. It is MIT licensed and available on GitHub and as a hosted demo. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine https://dev.to/challenges/hacktoberfest-week4-2026-10-26 It took my laptop 129 seconds to read the envelopes of 7,556 emails. Then it gave me a list of 199 accounts it thinks I made. Four were hacked after I joined. 33 may still have my card. One hadn't written to me in 7.8 years. To check its work, I went through 200 senders by hand, one at a time. The page had three buttons: "Yes, I signed up", "No", and "Can't remember, skip it". I pressed the third one 34 times. Every account you make stays out there after you forget it: the quiz site from school, the app you tried for a week, the shop you bought one thing from. So I built Haunted Inbox . It finds them in your own mail, on your own computer, and gives you a plain report: what was hacked, what may have your card, and where to go to delete it. One click away, the same accounts stand as a graveyard you can walk through, one stone for each, on the day you signed up. The test I wrote for it said it finds 93% of accounts. My real mail said 64%. That gap is the most useful thing in this post, and it's further down. Here it is in 90 seconds, sound on: The inbox in the opening is an animation of made-up mail, and the graveyard is the public sample. The report near the end is my real one, with the names blurred. TL;DR What: a local tool that finds the accounts in your mailbox. Each one shows when you joined, whether the place was hacked after that, who owns it now, and its last words to you: the last subject line it ever sent. How: Gemma 4 E2B, running on my laptop through Ollama, reads one short card per sender and answers one question: is this an account? Plain code decides everything you're told as a fact. The result: on 166 senders from my real mail that I marked by hand, a keyword search found 65 of 159 accounts and Gemma found 101, with 3 false alarms each. Where it fails: it still lets 3 of 6 test scams through, and web search once sold me the wrong company called Notion. Both are below. Try it with nothing to install: haunted.celebrable.tech https://haunted.celebrable.tech . MIT licensed, on GitHub https://github.com/nirajkhetre/haunted-inbox . The report comes first: the riskiest account at the top, and folder tabs for what it found. Haunted Inbox answers one question: who still has me? It's for anyone who has kept the same email address for a few years. The theme asked for something spooky, or something that honours the past. An old account is a bit of both: a small piece of who you used to be, still holding your name. You drop in a Google Takeout file or use an app password, and it reads only the envelope of each email: who sent it, when, and the subject. What you get looks like a page out of a burial register, with ruled paper, typed entries and rubber stamps. Folder tabs along the top say what it found: hacked after you joined, may still have your card, silent for years. Open an account and its file slides out of the cabinet: A made-up person's Evernote. The dates, the last message and the new owner are all in the file. | In the file | Where it comes from | |---|---| | When you joined, how long it's been silent | The first and last email in your mailbox | | How we know you have an account | One of your own subject lines, chosen by code | | Its last words to you | The last subject line it ever sent | | Hacked after you joined | The public Have I Been Pwned https://haveibeenpwned.com/ list, only if the hack came after your first email | | May still have your card | A receipt, invoice or renewal in your subject lines | | Who owns it now | Live web search, on request, with the source linked | | How to leave | The public JustDeleteMe https://justdeleteme.xyz/ list, or their own help page | The strangest line in the file is the last words. On the sample, the oldest account is Neopets, and it signs off with "We miss you, Sam". Ask what became of the others and the report says: "12 now belong to someone else. Nobody asked you." Leaving takes two steps. Close the account on their own site, then mark it closed here. A CLOSED stamp lands on the file, and you can undo it. The graveyard is one click away. Press "Walk through the graveyard" and you go left to right through the years of your life online, with a small hooded keeper beside you. Its lantern swings a moment late, because it hangs. Hold the button on a stone: candles light, the ghost squashes down and spirals away, the stone sinks, and flowers grow where it stood. Every ghost you settle makes the sky a little lighter. The stars go, the sun comes up over the hill the moon is setting behind, and the bare trees get leaves. Clear the graveyard and it's morning. Why not just search your inbox for "welcome"? That's the usual advice, and it's my baseline below. It can't see an account whose mail doesn't use the word, or one that writes in another language. Others have looked for old accounts in email. Find My Accounts https://chromewebstore.google.com/detail/apeccjnoepacandnpapofclblfkokiif reads an export locally, Paperweight https://feedbagel.com/post/paperweight-privacy-first-tool-for-managing-digital-footprint-and-account-securi is open source, and Consumer Reports warns https://www.consumerreports.org/digital-security/how-to-find-old-online-accounts/ that some services ask for your email password. I haven't tested them. What I wanted was a small open model reading the mail, a test anyone can rerun, and something you'd actually want to look at. Live: haunted.celebrable.tech https://haunted.celebrable.tech , with nothing to install. It replays a real scan of a made-up person's mailbox: 3,951 emails over fourteen years, built from real company names. Every hack shown really happened, and every "sold to" came from a real web search. A few things to try: You forgot them. They didn't forget you. Also on YouTube https://youtu.be/gjNyufcCXqI . The inbox in the opening is an animation of made-up mail, and the graveyard is the public sample. The report near the end is a real one, with the names blurred. Every account your past self made is still out there, holding your name, your email, sometimes your card. Haunted Inbox finds them from your own mail, on your own computer, and lays them out as a graveyard you can walk through: one stone for every account, on the day you signed up, with a ghost above it. You get a plain report first: what it found, the riskiest account, and a link to where you can delete each one. The graveyard is the same accounts, one click away: each stone tells you what that account still knows, whether it… MIT licensed. It's about 3,000 lines with the tests, the Python needs nothing outside the standard library, and the page has no frameworks. To run it on your own mail, you need Python 3.12 and Ollama https://ollama.com : git clone https://github.com/nirajkhetre/haunted-inbox cd haunted-inbox ollama pull gemma4:e2b python -m haunted serve Then drop in a Google Takeout file, or use an app password with Gmail, Yahoo, iCloud, Fastmail, AOL or Zoho. your mailbox ─▶ envelopes only: from, date, subject ─▶ code: one short card per sender ─▶ Gemma 4 E2B Ollama, JSON schema : {kind, service} ─▶ code: joined date, proof, last words, hack check, delete link ─▶ the report and the graveyard A mailbox is the worst place to let a model make things up, so I gave it the smallest job I could. Code turns the mailbox into one card per sender, like this made-up one: Sender: Rappi