I do something similar for my personal news reader. [1]. Originally I had done it so I can read my tech news quickly. Now few of my friends also have started using it.
No. A DNN w/ BERT/nnlm embeddings (I'm between models right now). And a sort of context-based classifier so that it can react to new things you "like" without model retraining.
[1] https://embit.ca