I think most recommendation algorithms rely too much on collaborative filtering and not enough on content based filtering.
I think in these cases you can do better by bringing in some content-based filtering. I made an experimental book recommender using only story trope tags and I thought the results were already better than what I was getting elsewhere. It's still up at https://bookslikethis.herokuapp.com/ (but it basically only has sci-fi/fantasy titles).