Hey Aaron,
I would suggest to make a first attempt with “few-shot” approach with an LLM, which is basically providing examples in the prompt so that the model has some reference (ej. Category X → Example 1, Example 2,… Category Y → …)
If it’s not accurate enough, you can go with fine-tunning a model. An easy approach is with de OpenAI developer portal, you can just upload a CSV with examples. This option is more expensive.