Hi there, @nickhutton13… I set up a quick example that I’m hoping will, at the very least, stop you from breaking your computer.
In my example, I used an option set to define the interests, and I have an interests list field on the User data type that holds a user’s interests. Then, I have a multi-select dropdown above a repeating group, and when one or more interests are selected in the dropdown, users with all (first screenshot) or any (second screenshot) of the selected interests can be shown (it’s not clear from your post what you are actually going for there, so that’s why I provided both options).
I don’t know if you are familiar with advanced filters, but they happen on the client side, and they can be slow if your search brings back a lot of things (which a search for users would likely do). So, if there is any way for you to constrain the search to bring back a smaller set of users, that would definitely be better than bringing back all users and filtering them on the client side.
Anyway, maybe someone else will come along with another suggestion, but hopefully this response gets you going down a good path or again, at the very least, saves your computer.