Let's provide the user the option to create custom tags. That way the user has more control over his posts.
At the same time, we cannot neglect the possibility of users spamming (almost like meaningless hashtags).
We can maintain a list of predefined tags in the backend through which we allow the search by tags functionality. (Spammed tags cannot be displayed there. Hence we must have control over there.)
Only downside I can see is that we will have to maintain extra data.
We'll have a list of companies in the backend. And the user can only select a company name among those. This is mainly to avoid duplicate and spam.