💡 New script: gmail-subscription-audit (AI-driven newsletter engagement analysis & cleanup recommendations) #535
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
A periodic or one-shot GAS script that analyzes your newsletter and mailing list subscriptions by scanning email metadata (List-Unsubscribe headers, sender frequency, read/unread ratios, time-to-open patterns) and optionally using Gemini to classify sender type. Outputs an engagement scorecard in Google Sheets ranking subscriptions by engagement, with one-click unsubscribe links where available.
Market Signal
SaneBox ($3.50/mo) and Clean Email ($2.50/mo) offer subscription management as premium features. Unroll.me provides free unsubscribe but was caught selling user data (2017 scandal, trust never fully recovered). No free, open-source, privacy-first alternative exists. The average professional receives 120+ emails/day with 40%+ being newsletters or automated messages they rarely read. AI-powered inbox management has become table stakes in 2026 — tools like Superhuman, SaneBox, and Alfred all offer triage and classification, but subscription engagement scoring specifically remains underserved in the free/open-source space.
User Signal
The project's mission is "reclaim time and keep your digital workspace organized." Subscription clutter is a top email productivity drain — users accumulate dozens of newsletters over months/years and never audit them. No existing idea discussion covers subscription analysis or engagement scoring. The gmail-ai-classifier demonstrates Gmail API + Gemini integration maturity in this codebase. The one-click unsubscribe link column provides immediate actionability — users don't just see the problem, they can fix it row by row.
Technical Opportunity
Gmail API provides efficient metadata queries (
from:,list:,is:unread) without reading full email bodies, keeping API quota usage low.List-Unsubscribeheader extraction identifies actionable subscriptions programmatically. The engagement scoring logic (frequency × read rate × recency) is pure computation — highly testable via Jest with zero external dependencies. Output to Sheets follows the provencalendar-to-sheetspattern. Optional Gemini classification (newsletter vs. transactional vs. personal) adds intelligence without requiring it for the core value proposition.Assessment
Adversarial Review
Strongest objection: This is a one-time or infrequent utility, not an ongoing automation — users run it once, clean up, and rarely return. It doesn't fit the "always-running automation" pattern of the other scripts in the catalog.
Rebuttal: Subscription clutter is a recurring problem — new subscriptions accumulate monthly. A weekly or monthly scheduled audit maintains inbox hygiene continuously, surfacing new low-engagement senders as they appear. The project already supports both one-shot and ongoing automation patterns. Even as a quarterly cleanup tool, the time saved (vs. manually reviewing 50+ subscriptions across 90 days of email) justifies inclusion in the catalog. The engagement trend over time (is this sender becoming less relevant?) adds ongoing analytical value.
Suggested Next Step
Prototype Gmail API query to enumerate unique senders with
List-Unsubscribeheaders over the past 90 days; calculate read/unread ratio per sender; design the Sheets output schema with columns: sender, frequency (emails/month), read rate (%), last opened, engagement score, unsubscribe link, Gemini classification (optional).All reactions