You assume popularity is the only viable method for filtering. It is not the only viable one, and its not fault tolerant. Ie. instead of going to the popular McDonalds I rather go to a restaurant a friend who is chef recommends. Chances are also, I already know McDonalds, because of its popularity. Therefore, some kind of algorithm which combines various factors (such as popularity, authority) and based on intelligent profiling is required (OK, initially for fun project perhaps not, but if you want something scalable and usable...). The question is which factors? This is difficult... I'd say, assume not same weight for every person you meet, give friends (and friends of friends) more influence than strangers. And, allow to set 'good friends' (typical a human has 0-5 of these). This, together with popularity gives initially an OK result IMO. (But there is more necessary.)