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