This document discusses algorithms for detecting overlapping communities in social networks. It begins with an introduction to social networks and community detection. It then reviews various algorithms that have been proposed for detecting overlapping communities, including clique percolation methods, fuzzy detection algorithms, agent-based and dynamic algorithms, and more. It also discusses using these algorithms to recommend friends and locations to users based on their behaviors and communities within social networks. The document presents results from applying these algorithms and concludes by discussing opportunities for future work improving recommendation performance.