Gmail Filter Backlog
One-line description. Ranked Gmail filter opportunities from the 2026-04-30 inbox audit. Quick wins A-J would clear about 30+ inbox items per day.
Why
Inbox-zero discipline.
Pure-notification senders shouldn't hit the inbox.
The 2026-04-30 audit surfaced 86 unfiled messages with strong auto-route patterns. Looker reports, Inbox Zero emails, Gemini meeting notes, Drive shares, Slack notifications, FUB notifications, self-automation forwards, NPS surveys, hiring updates.
Each one is a filter that takes a minute to set up and clears the same kind of message forever.
Current state
2026-09-08 — delete-first pass done (work account, verified live via Gmail API). 513 → 329 labels, 493 → 313 filters. 364 deletions, 0 failures. Removed: 175 empty Properties/<addr>/Offer For labels + their filters, Hiring/Appointment-Setter/*, Triage/Agent, Daily Appointment Recaps, Alex lost lead, and the Slack→personal forward filter (account-level auto-forward already covers it). Kept Lost Lead/Reviewed (lost-lead-review skill writes it). Backup, script, log: ~/.cache/gmail-cleanup/2026-09-08/. Label limit verified at 5,000 — not a constraint. Full trace + next steps on RYR-33.
Email triage is LIVE, not dormant (verified 2026-09-08): pos-pipeline-email-triage fires /email-triage every 30 min (infra/terraform/pos-pipeline/pos_pipeline.tf), code at data-platforms/email-triage/cloud_function/, reads the personal account — which holds a forwarded copy of every work email. On 2026-09-08 it labeled Triage/Agent at 17:31, Triage/FYI at 17:15, Triage/Urgent at 12:14. The work-account Triage/* labels are a separate, hand-applied set (Triage/Agent there was deleted today).
Earlier (2026-06-11): captured but not active.
A-J quick wins are documented with exact from: patterns and target labels. Sub-labeling for FollowUpBoss (627 msgs across 7 categories) and Orchard Notifications (1,620 msgs) is audited but not executed. VIP star rules and reply-needed detection are scoped but not built. Triage Cloud Function is dormant — wrong since at least the 6/27 cost trim; see the live note above.
What pulls this forward: another inbox cleanup session, or noise levels start eating into focus time.
- Status: in progress — step 1 (delete) shipped 2026-09-08
- Last update: 2026-09-08
- Blocked on: nothing.
Next 3 actions
- Step 2 — stop per-property folders. Keep
Properties/<addr>only while the deal is open; drop the label at close (mail stays, search finds it). Do not runproperties-sweep.py --stages "Offer For"— it recreates the empty children. - Step 3 — derive the label lifecycle from
seller_market.deal_state(open deals), same shape asdeal_watch.py. Only after step 2 holds for a couple of weeks. - Clear the unread piles the trace found:
15. Orchard Notifications(562 unread),Orchard/Saved Searches(161/161 never opened),14. FollowUpBoss(216).
Shipped filters
Live filters created outside the A–J backlog (most recent first):
- Orchard Cash Offer Marketplace (2026-06-11) —
from:offers@orchardoffers.com→ labelOrchard Cash Offer Marketplace, kept in inbox. Catches the whole marketplace feed (new offers, buyer questions, property-submitted, reminders). Shipped on all three accounts: ry@rycolston.com (personal), ryan.colston@orchard.com (work), marissa.tah@orchard.com. Existing messages back-applied in each.
Decisions log
- Portfolio organization — vault README is the front door, every project gets a hub from the template
Open issues
Quick filter wins (~10 min to ship, sequenced by impact):
- A.
from:noreply@lookermail.com→ label "Looker Reports", skip inbox - B.
from:agentsuccess@orchard.com subject:"Inbox Zero"→ label, skip inbox - C.
from:gemini-notes@google.com→ label "Meeting Notes", skip inbox - D.
from:comments-noreply@docs.google.com subject:"edited recently"→ auto-archive - E.
from:drive-shares-dm-noreply@google.com→ label "Drive Shares", skip inbox - F.
— moot 2026-09-08: forward filter deleted (account-level auto-forward covers it); the separatefrom:notification@slack.com→ add removeLabelIds:[INBOX] to existing forward filterfrom:slack.comarchive filter already removes INBOX - G. Broaden FUB filter:
from:followupboss.com(currently onlyleads@) catchesnotifications@followupboss.com - H.
from:ry@rycolston.com to:ryan.colston@orchard.com(self-automation) → label "Self Automation", skip inbox - I.
from:surveys@orchard.com→ label "NPS Surveys" - J.
— moot 2026-09-08: vendor dead since May, filter + label deletedfrom:recruitment.updates@bruntwork.co→ label "Hiring", skip inbox
Sub-labeling (audited, not executed):
- FollowUpBoss (627 msgs, 7 categories): auto-archive Hot Sheet (84) + Collaborator added (11)
- Orchard Notifications (1,620 msgs): sub-label Lost Leads, Search Alerts, Consults
Bigger lifts:
- VIP star/important rules — Court Cunningham, Chris Smith, Sharon McMilion → auto-star + IMPORTANT
- Reply-needed detection — emails sent only to me (not list) from team members → flag
- Triage: it is already live on the personal account every 30 min (see Current state). Open question is quality, not revival — measure the 13
Triage/*buckets against what Ry actually acts on before adding rules
References
- Source audit: 2026-04-30 inbox session
- Triage code home:
~/rylobasic/data-platforms/email-triage/cloud_function/(served by pos-pipeline/email-triage; label map ininfra/shared-libs/lib/config.py) - Related: GCP Enhancement Candidates (Workspace Events API could power smarter triage)