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.