Can you briefly describe 1 simple algorithm that isn't just notes ordered by creation date? Maybe if we start with that one concrete thing we can try to implement it and see how hard it is to do it in a nostric way. Every time someone brings up this topic they talk about it in generic abstract terms, so it's hard to make the first step.
here is one such algorithm https://github.com/pablof7z/dvm-references/blob/master/apps/dvms/src/dvms/you-might-have-missed.ts fetch events you signed fetch your follows compute activity windows (i.e. clustered time windows in which you were active) fetch reposts from your follows remove events where a repost occurred during a time in which you were active return the list of stuff your follows reposted while you were away and this is what the output can look like https://vendata.io/jobs/nevent1qqsr8693plxux3dufslf6t45qs5vpgk0wxq0dv4229n7yg6syg57zdqpp4mhxue69uhkummn9ekx7mqzyrafsj7hmweg9ur7zmn6apajdg48hxuskujx53rhrux0ttjcqx84yw53h7e
I have been thinking one neat way for a DVM to expose a feed to a user, which they will be more likely to consume is to 'run the algo' and then broadcast the events that match into an algo specific relay. This would allow normal clients like amethyst to show a feed of events from this relay's global feed vs. users having to go to a webpage and/or modify their follow list. I think the algo based stuff would be far more useful on a per event basis than it is trying to lump a diverse human's post history into a category. Then the user can use their trusted client to add follows when they see an event they like and use nostr more 'naturally'.
for example: create a drag and drop interface that allows users to drag options/keywords/time/dates/blocked tags/whatever into some sort of order or priority including blocking that allows them to customize their feed(s). maybe even allow them to have multiple tabs with different feeds that they create.