Hi,
Pseudo Steps (note you didnt say whether this was 1 time or all the time). Since you do NOT want to have flows for every user (which would be required if you wanted to do real time AND you will need permission(not matter what) to admin their mailboxes. So I would create a *User Account that is just a shared service account as we would call it back in the day.
The flow would run as that user (not you) so you would need to log into the browser as that account and do all the flow work with that account.
Then that account would need admin privs to every ones mailboxes or it wont work
Now for the flow and my suggestion
1. Run it 1 time a day. so Add a Scheduled Flow. The trigger you can set to run in the evening or super early morning every single day.
2. Use the Office365Connector Action to list all employees in the company (again this connector has to be configured as the Service account per my suggestion)
3. add an Apply to Each Action
-the input will be the output from step 2, so that we can loop through each user.
-Use the Get emails action (which also returns a list of emails)
----Add an Apply to each under the Get Emails - for the current user from the Apply to each, which are the users you found in step 2. so you can use their Email/UPN to get their emails
--------Inside this apply to each, add a Condition and configure it to check the subject or whatever for whatever details you need to
to put it where you want it
And it will loop through each person. Understanding a person might have tons of emails to loop through every day Unless you can do a Filte on the Get Emails (which is possible), but you said its multiple criteria so it may not work if you have too many
Anyway thats how you would do it using power Automate.