[2nd hand only] Ran some experiments on RAG based system. You can take a pool of candidate, semantic search by keywords you'd like each one to have. Once you have a narrow it down, you can have a more refined system that ranks them based on each criteria met.