Add email unsubscribe skill
This commit is contained in:
88
dotfiles/agents/skills/email-unsubscribe-check/SKILL.md
Normal file
88
dotfiles/agents/skills/email-unsubscribe-check/SKILL.md
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
name: email-unsubscribe-check
|
||||||
|
description: Use when user wants to find promotional or unwanted recurring emails to unsubscribe from, or when doing periodic inbox hygiene to identify senders worth unsubscribing from
|
||||||
|
---
|
||||||
|
|
||||||
|
# Email Unsubscribe Check
|
||||||
|
|
||||||
|
Scan recent inbox emails to surface promotional, newsletter, and digest senders the user likely wants to unsubscribe from. Actually unsubscribe via browser automation.
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
```dot
|
||||||
|
digraph unsubscribe_check {
|
||||||
|
"Search recent inbox emails" -> "Group by sender domain";
|
||||||
|
"Group by sender domain" -> "Classify each sender";
|
||||||
|
"Classify each sender" -> "Obvious unsubscribe?";
|
||||||
|
"Obvious unsubscribe?" -> "Present to user for confirmation" [label="yes"];
|
||||||
|
"Obvious unsubscribe?" -> "Borderline?" [label="no"];
|
||||||
|
"Borderline?" -> "Ask user" [label="yes"];
|
||||||
|
"Borderline?" -> "Skip" [label="no, personal"];
|
||||||
|
"Present to user for confirmation" -> "User confirms?";
|
||||||
|
"User confirms?" -> "Actually unsubscribe" [label="yes"];
|
||||||
|
"User confirms?" -> "Skip" [label="no"];
|
||||||
|
"Actually unsubscribe" -> "Create Gmail filter";
|
||||||
|
"Create Gmail filter" -> "Retroactively clean old emails";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to Scan
|
||||||
|
|
||||||
|
1. Search recent emails: `newer_than:7d` (or wider if user requests)
|
||||||
|
2. Identify senders that look promotional/automated/digest
|
||||||
|
3. Present findings grouped by confidence:
|
||||||
|
- **Clearly unsubscribeable**: marketing, promos, digests user never engages with
|
||||||
|
- **Ask user**: newsletters, community content, event platforms (might be wanted)
|
||||||
|
|
||||||
|
## Unsubscribe Execution
|
||||||
|
|
||||||
|
For each confirmed sender, do ALL of these:
|
||||||
|
|
||||||
|
### 1. Actually unsubscribe via browser (most important step)
|
||||||
|
|
||||||
|
Two approaches depending on the sender:
|
||||||
|
|
||||||
|
**For emails with unsubscribe links:**
|
||||||
|
- Read the email via Gmail MCP to find the unsubscribe URL (usually at bottom of email body)
|
||||||
|
- Navigate to the URL with Chrome DevTools MCP
|
||||||
|
- Take a snapshot, find the confirmation button/checkbox
|
||||||
|
- Click through to complete the unsubscribe
|
||||||
|
- Verify the confirmation page
|
||||||
|
|
||||||
|
**For services with email settings pages (Nextdoor, LinkedIn, etc.):**
|
||||||
|
- Navigate to the service's notification/email settings page
|
||||||
|
- Log in using credentials from `pass` if needed
|
||||||
|
- Find and disable all email notification toggles
|
||||||
|
- Check ALL categories (digests, alerts, promotions, etc.)
|
||||||
|
|
||||||
|
### 2. Create Gmail filter as backup
|
||||||
|
|
||||||
|
Even after unsubscribing, create a filter to catch stragglers:
|
||||||
|
```
|
||||||
|
create_filter criteria:{from:"domain.com"} action:{removeLabelIds:["INBOX"]}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Retroactively clean old emails
|
||||||
|
|
||||||
|
Search for old emails from the sender and remove from inbox:
|
||||||
|
```
|
||||||
|
search_emails query:"from:domain.com" maxResults:50
|
||||||
|
batch_modify_emails messageIds:[...] removeLabelIds:["INBOX"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Signals That an Email is Unsubscribeable
|
||||||
|
|
||||||
|
- "no-reply@" or "newsletter@" sender addresses
|
||||||
|
- Marketing subject lines: sales, promotions, "don't miss", digests
|
||||||
|
- Bulk senders: Nextdoor, Yelp, LinkedIn digest, social media notifications
|
||||||
|
- Community digests the user doesn't engage with
|
||||||
|
- Financial marketing (not transactional alerts)
|
||||||
|
- "Your weekly/daily/monthly" summaries
|
||||||
|
|
||||||
|
## Signals to NOT Auto-Unsubscribe (Ask First)
|
||||||
|
|
||||||
|
- Patreon/creator content
|
||||||
|
- Event platforms (Luma, Eventbrite, Meetup)
|
||||||
|
- Professional communities
|
||||||
|
- Services the user actively uses (even if noisy)
|
||||||
|
- Transactional emails from wanted services
|
||||||
Reference in New Issue
Block a user