Skip to content

CompMotifs/LikeMinds

Repository files navigation

Logo

LikeMinds

People you need to know

LikeMinds is a lightweight web tool that helps researchers on Bluesky discover potential collaborators or competitors by analysing overlapping likes on posts. Given a seed group of users (e.g. likers of a conference post, or a list of attendees), it recommends the most similar people you're not yet following.

Features

  • Enter your Bluesky handle and a seed group (a post URL or comma-separated handles)
  • Fetch recent liked posts via the public AT Protocol API (no login required)
  • Filter content to scientific posts only, or match on all posts
  • Choose between two matching algorithms:
    • TF-IDF similarity — concatenates each user's liked post texts and computes cosine similarity
    • Like overlap — scores users by the fraction of shared liked posts
  • Exclude users you already follow
  • Recommend the top N most similar users (1–10)

Usage

git clone [email protected]:CompMotifs/LikeMinds.git
uv sync
uv run streamlit run src/web/app.py

Requires Python 3.12.

Project Structure

LikeMinds/
├── pyproject.toml                          # Dependencies and build config (uv/hatch)
├── data/
│   ├── logo.png                            # App logo
│   └── user_likes.csv                      # Sample data for development
├── src/
│   └── likeminds/
│       ├── config.py                       # Configuration settings
│       ├── api/
│       │   └── bluesky_api.py              # Bluesky AT Protocol API calls
│       ├── recommendation/
│       │   ├── recommender.py              # Like-overlap scoring
│       │   ├── recommender_word2vec.py     # TF-IDF + cosine similarity
│       │   ├── recommender_sbert.py        # Sentence-BERT embeddings (experimental)
│       │   ├── filter_science.py           # Science content filter
│       │   └── blind_spot.py               # Cluster-based blind spot detection
│       └── web/
│           ├── app.py                      # Streamlit entry point
│           └── app_functions.py            # Helper functions for the UI
├── tests/                                  # Test stubs
├── notebooks/                              # Jupyter/Colab prototypes
└── docs/                                   # Documentation

Key Dependencies

Package Purpose
streamlit Web UI
atproto Bluesky AT Protocol client
pandas / numpy Data wrangling
scikit-learn TF-IDF vectorisation, cosine similarity, clustering
sentence-transformers SBERT embeddings (experimental)

About

Bluesky matching based on shared liked academic posts

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages