There is no way to tag an individual post. Tags are added at the topic level. I can see what you are wanting to accomplish, but tags are not the correct approach to this. I’m wondering if using Bookmarks could work as a way of noting posts that you want to come back to.
This blog post gives a good overview of what users at each trust level can do: Understanding Discourse Trust Levels. Trust level 3 and above users can help you manage your site. Trust level 0 users are very restricted in the actions that they can perform on the site.
I am fairly sure this could be done with a theme component. There is an existing theme component to display badges next to a post author’s username: Post Badges. I think it can only be used to display the badges you find listed on your Admin / Badges page though. You could use the approach I give in the next answer to assign a custom badge to all members of a trust level, and then display that custom badge next to the poster’s username.
As you have noted, you can bulk award custom badges. If you have a criteria for the custom badge, you can do this in two steps by using the Data Explorer plugin. First, create and enable the custom badge, then write a Data Explorer query that will return the email addresses of the users who should be awarded the badge. For example, if you would like to award a badge for users who have created 1000 posts, you could use something like this as a Data Explorer query:
SELECT
ue.email
FROM user_stats us
JOIN user_emails ue
ON ue.user_id = us.user_id
WHERE us.post_count > 1000
AND ue.primary = true
AND us.user_id > 0
Whatever query you use, you need to be sure that it returns a single column with email
set as the column name. After running the query, click the CSV button to download a CSV file of the query’s results. Now click the “Bulk Award” button on your custom badge’s page and upload the CSV file. The badge will be awarded to the users returned by your Data Explorer query.
You can also grant custom badges through the API: How to grant a custom badge through the API.
I think this would be best approached by writing a Data Explorer query that uses the DAU/MAU query, but calculates the results on a weekly basis.