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 seven filters, what they catch and what they do
#CatchesActionLabel
1Receipts & invoices (Stripe, PayPal, AWS, etc.)Skip inbox + mark readReceipts
2Calendar invite duplicates (filename:invite.ics)Skip inboxCalendar
3aCI/CD success notificationsSkip inboxCI
3bCI/CD failure notificationsKeep + starCI / Starred
4Any mailing list (list:*)Skip inboxRead Later
5App mention notifications (Slack, Linear, Notion, Figma)Skip inboxMentions
6Cold outreach heuristics ("quick question", "5 minutes")Skip inboxOutreach
7Real human directly to your addressStar + keepDirect

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:(notifications@github.com OR noreply@circleci.com)
subject:(succeeded OR passed OR "all checks have passed")

Second filter - star it, keep in inbox:

from:(notifications@github.com OR noreply@circleci.com)
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:(notifications@slack.com OR notifications@linear.app OR notify@notion.so OR no-reply@figma.com)

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:(your.email@domain.com)
-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

Frequently asked questions

Do Gmail filters work on the mobile app?

Yes. Filters are evaluated server-side, so they apply identically across the Gmail web client, mobile apps, and any third-party IMAP client. You can only create and edit filters in the web client, but the rules they trigger work everywhere.

What's the difference between list: and from: in a filter?

from: matches the sender address only. list: matches the List-Id and List-Unsubscribe headers that legitimate mailing lists set. list:* catches every newsletter you're subscribed to, even ones from senders you've never seen before, which makes it dramatically more durable than a long OR-chain of from: addresses.

Will skipping the inbox for receipts mess up tax season?

No - the messages still arrive, they just go to a label instead of the inbox. Once a month or once a quarter, open the Receipts label and export the lot. You're not losing anything, just shifting it from interruption to scheduled batch.

What if a filter accidentally hides an important message?

Search Gmail directly (Cmd/Ctrl+K or the search bar) - search ignores filters and finds everything. If a particular sender keeps getting wrongly filtered, edit the filter and add -from:(important.sender@example.com) to the criteria. The rule then skips that sender.

Can I have one filter apply multiple labels?

Not directly in the UI - one filter applies one label. The workaround is to create two identical filters with the same criteria and assign each a different label. They both fire on every matching message.

Should I delete the filtered noise or just archive it?

Archive, not delete. Storage is cheap, and labelled-but-archived messages are searchable when you need them (the receipt from three years ago, the build-failed notification you need for an incident report). The point of a filter is to make noise invisible, not to lose it.