Yes, that would work! You just need to be very careful that the name of one category isn't contained in the name of another. For example, if you have hr_recruitment as a job category, it will match a contains filter for hr.
If you do need to have overlapping names, you can space-separate them like finance hr_recruitment and then use the selected function. If you have something like selected(category, ${job_category} and the value for ${job_category} is hr, it will NOT be identified as selected in the space-separated list above.
Ah! Thanks @LN !
Never knew we could use "selected" over space separated sub-strings, it will definitely be a better way than using "contains" when dealing with overlapping names!