(I wrote it up a few years ago here: https://blog.randomstring.org/2016/09/26/secrets-of-mutt/ )
In brief, you use the limit command to see only the email you are interested in, then use the tag command to do something to those specific messages. Both limit and tag use the same pattern language to specify From, Subject, date ranges, message numbers, or more esoteric searches.
The only thing mutt is not great at is searching multiple mailboxes, and it's easy to integrate an external tool (notmuch, maildir-utils, mairix...) to do that search and link the results into a temporary maildir that mutt will then work on.