Recommendations based on user activity


I am building a stock portfolio application.

Requirements: I have user tiers:

  • tier 1 : only purchases stocks
  • tier 2: stocks + mutual funds
  • tier 3: stocks + mutual funds + options.

Ask: As soon as a user from tier 1 logs in, I want to show them a banner of recommendations based on their purchase history and also what they might potentially buy. (Similarly portfolio banner needs to update based on the user tier).

Is this possible with regular text aggregation, or would I need knn + OpenSearch or how could I do this using clustering + OpenSearch?

Please help!