Do you think SBERT + SVM is a good fit for handling ambiguous or less common phrases, or do you still end up needing some post-processing rules for edge cases?
Another thing to consider is a T5 model. A T5 model maps strings to strings so it can be trained to take an input like
"Extract the skills from this resume: ..."
with the output like
"Excel, Pandas, Python, Cold Fusion, C#, ..."
and it will try to do the same. You'll probably still find it makes some mistake that drives you up the wall that need some pre- or post- processing.