I built CentryAI because I have ADHD and was paying for 11 subscriptions I hadn't used in months. Most trackers make you enter everything manually β that doesn't work if you've forgotten what you're paying for. CentryAI scans your Gmail or iCloud, finds every recurring charge, and scores which ones you're not using. The real pain is cancelling. CentryAI's Cancel Finder locates the exact cancellation page in one tap. No bank linking. Emails are never stored. Available in 18 languages.







Free Options
Launch Team / Built With






No bank linking is the right call here. How does the Gmail scan work under the hood - parsed locally, or sent through a server and discarded right after? People get understandably nervous about anything reading their inbox.
CentryAI
Great question @christian_knaut, and totally fair to ask β inbox access deserves a straight answer.
The scan runs through a Cloud Function on servers, not locally on-device. Here's exactly what happens:
1. You authorize read-only Gmail access via Google's OAuth (we only request gmail.readonly β no send, no delete, no compose)
2. Server fetches receipt-style emails matching subscription patterns
3. Subscription data is extracted in-memory and written to your account
4. The raw email content is discarded immediately β it's never stored, logged, or written to a database
We went through Google's CASA Tier 2 security assessment (completed June 2026) specifically because of the Gmail scope β it's an independent audit of exactly this data handling. The certificate is public.
The tradeoff vs. local parsing: on-device would mean shipping our detection logic inside the app (reversible, extractable), and it couldn't leverage server-side AI for ambiguous cases. Server-side with strict discard gives us better detection without retaining anything.
Short version: we see your emails for ~seconds, extract subscription signals, then they're gone.
The zombie score is a nice touch. I imagine it's tricky though, because not every subscription is meant to be used regularly. A VPN, domain renewal, or cloud backup might look "dead" even when it's doing its job. How do you handle those cases? Congrats on the launch!
CentryAI
@jared_saloisΒ Sharp observation β and honestly, you've identified a real limitation.
The zombie score doesn't currently distinguish between subscription types. A VPN or cloud backup that's quietly doing its job will score similarly to a streaming service you haven't opened in months β both look "silent" to the algorithm.
What we do instead: the score is a flag, not a verdict. It surfaces subscriptions worth a second look, but the final call is yours. A high zombie score on your domain renewal is a prompt to confirm it's still intentional β not an instruction to cancel it.
Differentiating passive infrastructure from active services is the next meaningful refinement for the scoring model. You're not the first to point at this gap, which tells us it belongs on the roadmap sooner rather than later.
Thanks β and congrats on the sharp eye.
the subscriptions that actually hurt are the annual ones. one charge a year, usually the biggest amounts, and the receipt email is eleven months old by the time it matters. can CentryAI catch an annual renewal from a single receipt that far back and warn me before it bills again? and the cancel in one tap screen. is that a deep link to the right cancel page or does it handle the flow itself? built by someone who forgot 11 is the most honest tagline on PH today.
CentryAI
@thenameisarianΒ Annual subscriptions are the silent killers, agreed β biggest amounts, longest gap
between "signed up" and "charged again."
Two straight answers:
On annual renewals: the scan searches your inbox by receipt patterns, not by date β
so an 11-month-old annual receipt gets caught the same as last week's Netflix one.
Once detected, the renewal date is extracted and the reminder engine takes over: you
get pinged before it bills again, with timing you control (default is days before,
not hours). The whole point is that the warning lands while there's still time to act.
On Cancel Finder: it's a deep link to the exact cancellation page β we don't handle
the flow itself. No app can legally cancel on your behalf (the contract is between
you and the service), so we kill the worst part instead: the hunt. One tap, you land
on the right page, you confirm. Usually under a minute.
And thanks for the tagline note β it's honest because it's literally what happened π
Congrats on the launch, the ADHD origin story is what sold me, 11 forgotten subs is way too relatable. One thing I haven't seen asked yet: the raw emails get discarded, but the extracted list itself, merchants, amounts, renewal dates, is basically a map of someone's financial life. Where does that data end up living, and how is it locked down? That's the part I'd check before pointing this at my own inbox.
CentryAI
@vollosΒ This is the sharpest privacy question of the launch β you're right that "we discard the emails" only answers half of it. The extracted list is absolutely sensitive data, and honesty requires saying it plainly: yes, it lives server-side. Here's exactly how:
Where it lives: Your subscription list (service, price, renewal date) is stored in cloude under your user ID β encrypted at rest and in transit, standard Google Cloud infrastructure.
How it's locked down:
- Per-user isolation enforced at the database-rule level: your data is readable by your authenticated account only. The rules are default-deny β anything not explicitly allowed is rejected.
- Your identifiable list never leaves that boundary. What our analytics sees is aggregate statistics only β e.g., which services are most popular by country β built on one-way pseudonymized IDs that can't be traced back to you. This is spelled out in our privacy policy, not buried: your actual list, tied to you, is never exported and never queryable by anyone.
- Delete your account and the data goes with it β full erasure, not a soft-hide.
What I won't claim: it's not zero-knowledge encryption β the server can read the list, because that's what powers renewal reminders and zombie scoring. What I can say is that this exact data handling is what Google's CASA Tier 2 security assessment audited before granting us Gmail access, and it's re-validated annually.
If you want to test the waters first: the free tier works with manual entry only β no inbox access at all β so you can see the app before pointing it at your email.
@yilmazemreΒ That covers it, thanks. A lot of privacy answers stop at 'encrypted at rest', so calling out the zero-knowledge tradeoff yourself before anyone pushed is a good sign. Hope the rest of the week treats you well.
'Built by someone who forgot 11 of them' is the most honest tagline on PH today - founder-as-first-user always shows in the product. I just found a subscription this week that had been quietly charging me since 2024, so the pain is real. Does it catch the annual ones too? Those are the silent killers. Congrats on the launch.
CentryAI
@david_markoΒ Thank you β "founder-as-first-user" is exactly what happened; I was the angriest customer of my own problem π And a quiet charge running since 2024 is a perfect example of why bank statements alone don't save us.
On annual subscriptions β honest, two-part answer:
What works well: the scanner fully understands annual billing. When it finds an annual receipt, it detects the cycle (even 2- and 3-year plans), projects the next renewal 12+ months out, and the reminder fires before the rebill β which for annuals is the moment that actually matters.
The current limit: the scan looks back ~90 days. So an annual sub gets caught if any receipt for it landed in the last three months β but a receipt from 11 months ago is outside the window today. That's a deliberate first-version tradeoff (speed + not over-reading your inbox), and extending the lookback specifically to hunt annual receipts is high on the roadmap β you're the second person this week to point at it, for good reason.
In the meantime: adding an annual sub manually takes seconds, and the renewal reminder + zombie scoring work identically. The silent killers get a lot less silent once there's a date attached to them.
The tagline honestly caught my attention before the product did. Saying it was built by someone who forgot about 11 subscriptions is a fun way to explain the problem. I'm curious how it handles annual subscriptions, since those are always the ones that surprise me months later.
CentryAI
@chielephantΒ The tagline went through zero marketing revisions β it's just the incident report π
Honest answer on annuals: the scanner fully understands annual billing. When it finds an annual receipt it detects the cycle (even 2β3 year plans), projects the renewal 12+ months out, and reminds you before it bills β which for annuals is the moment that actually matters. The current limit: the scan looks back ~90 days, so an annual receipt from last year is outside the window today. Extending that lookback is high on the roadmap β you're not the first to raise it this week, and that feedback is exactly what's driving the priority.
In the meantime, adding an annual sub manually takes seconds and the renewal reminders work identically. Thanks for the kind words β the surprises get a lot less surprising once there's a date attached to them.
Itβs an interesting idea, I have found subscriptions I forgot about before and wished I cancelled sooner.
But people who are looking to reduce subscriptions wonβt want to subscribe and pay? Maybe you can do ads or a different monitization scheme?
CentryAI
@mjohnson42Β Fair challenge β and honestly the question I asked myself before building it. Three thoughts:
There's a free tier: track up to 3 subscriptions, no payment. For a lot of people that's already enough to catch the forgotten ones.
For Pro, the math tends to defend itself: it costs less than one forgotten subscription. Find a single $10/month zombie you'd forgotten and the app has paid for itself several times over in a year. It's the one subscription whose job is to delete the others π
On ads: an app that reads your inbox AND shows you ads would be a terrifying combo β monetizing attention or data is exactly what we can't touch if "privacy-first" is the whole point. Charging users directly keeps us accountable to you, not advertisers.