Gmail Filters That Save Me 30 Minutes a Day

By Swiftools Team · Published May 18, 2026 · 6 min read

Hand holding a smartphone showing an email inbox app

I checked the math on this last month. Between newsletter digests, billing receipts, CI/CD notifications, calendar invites, and the slow drip of "you were mentioned" emails from five different SaaS tools, my raw inbox volume was 180 to 240 emails a day. The volume that actually needed a human reading them was closer to 15.

The seven filter rules below are what closed that gap. None of them are clever. All of them are the kind of thing you set up once and then forget about for years.

The Gmail filter syntax you need to know

Gmail's filter UI accepts the same search operators as the search bar. The ones I use constantly:

  • from: matches a sender address or domain. from:(@github.com) matches everything from any github.com address.
  • to: matches the recipient. Useful when you have aliases.
  • subject: matches words in the subject line. Quote multi-word phrases.
  • has: matches attachment types, e.g. has:attachment.
  • list: matches mailing list headers. Better than from: for newsletters.
  • Parentheses group OR conditions: from:(stripe.com OR paypal.com).

Google's official search operator reference has the full list, but you'll use the same six or seven over and over.

Rule 1: Receipts go straight to a "Receipts" label, skip inbox

Stripe, PayPal, AWS, Vercel, your domain registrar - every business sends receipts, none of them need to interrupt your day. The filter:

from:(stripe.com OR paypal.com OR aws.amazon.com OR vercel.com OR namecheap.com)
subject:(receipt OR invoice OR "payment received" OR "your order")

Action: Apply label "Receipts", skip inbox, mark as read. Once a month I open the label and feed it into accounting. The rest of the time it doesn't exist.

Rule 2: Calendar invite confirmations skip the inbox

The actual invite shows up in your calendar; the email confirmation is duplicate noise. Filter on filename:invite.ics combined with subject:(invitation OR accepted OR declined), apply label "Calendar", skip inbox. You'll never miss a meeting because of this - the calendar is the source of truth, not the email.

Rule 3: CI/CD notifications only escalate on failure

If you use GitHub Actions, CircleCI, GitLab CI, or similar, the "build succeeded" emails are pure noise. The "build failed" ones might be urgent. Two filters:

First filter - skip inbox:

from:([email protected] OR [email protected])
subject:(succeeded OR passed OR "all checks have passed")

Second filter - star it, keep in inbox:

from:([email protected] OR [email protected])
subject:(failed OR "check failed")

Now your inbox only learns about builds when they break.

Rule 4: Newsletters route to a "Read Later" label

The trick here is using list: instead of from:. Any legitimate newsletter sets a List-Unsubscribe header, which puts it in a "list." The filter is one line:

list:*

Action: Apply label "Read Later", skip inbox. Then once a week, on a Sunday morning with coffee, open the label, archive 80% in 30 seconds, and actually read the 20% that look interesting. The conversion rate from "filtered to Read Later" to "actually read" went up for me, not down, because the context was no longer "while trying to work."

Rule 5: "You were mentioned" notifications consolidate to one label

Slack, Linear, Notion, Figma, ClickUp - they all send "Bob mentioned you" emails. You don't need them in your inbox; you have the apps open. Filter:

from:([email protected] OR [email protected] OR [email protected] OR [email protected])

Skip inbox, apply label "Mentions". If you ever have a doubt about whether you missed something, the label is two clicks away. The benefit is that opening Gmail no longer surfaces five overlapping mention notifications for things you already read in the source app an hour ago.

Rule 6: Cold outreach gets a separate label, not the inbox

This one's a judgment call but it changed my mornings significantly. Cold sales emails are a real category and they need a real response strategy (usually: archive without reply). They do not belong mixed in with messages from customers and teammates.

The heuristic that catches most cold outreach without false positives:

subject:("quick question" OR "5 minutes" OR "introduction" OR "exploring")
-from:(yourcompany.com)

The exclusion at the end keeps internal messages out. Apply label "Outreach", skip inbox. Once a week I scan the label for the rare one I want to engage with. The rest get bulk-archived.

Rule 7: Anything from a real human to me directly gets starred

This is the inverse of all the others. Instead of subtracting noise, it elevates signal. Filter:

to:([email protected])
-list:*
-from:(noreply OR notifications OR no-reply)

Action: Star, apply label "Direct". Now when you scan the inbox, the starred messages are the ones a real person sent to you specifically, not a CC and not an automated alert. On a busy day this is what tells you what actually needs attention.

The maintenance overhead is essentially zero

I revisit these filters once a quarter, maybe. The only time they need updating is when a new tool gets added to my stack and starts sending notifications. Adding it to an existing filter takes 30 seconds via Settings → Filters → Edit.

The compounding effect is real. Thirty minutes a day, 250 working days a year, is 125 hours. That's more than three working weeks recovered from email triage, every year, in exchange for one hour of one-time setup.

Sources & Further Reading