oaustegard/claude-skills/categorizing-bsky-accounts
Claude Code and agent skill by oaustegard/claude-skills
- community
Checking that the SKILL.md file is still in the repository.
Analyze and categorize Bluesky accounts by topic using keyword extraction. Use when users mention Bluesky account analysis, following/follower lists, topic discovery, account curation, or network analysis.
Install
npx vskill@latest install oaustegard/claude-skills/categorizing-bsky-accountsSKILL.md
Categorizing Bluesky Accounts
Fetch Bluesky account data and extract keywords for Claude to categorize by topic. The script compresses account context (bio + posts) into bio + keywords, then Claude performs intelligent categorization.
Prerequisites
Requires: extracting-keywords skill (provides YAKE venv + domain stopwords)
The analyzer delegates keyword extraction to the extracting-keywords skill, which provides:
- Optimized YAKE installation with minimal dependencies
- Domain-specific stopwords: English (574), AI/ML (1357), Life Sciences (1293)
- Support for 34 languages
Core Workflow
When users request Bluesky account analysis:
- Ensure keyword extraction is set up - Invoke the extracting-keywords skill using the Skill tool to ensure YAKE venv exists (skip if already invoked in this session)
- Determine input mode based on user's request:
- Following list → use
--following handle - Followers → use
--followers handle - List of handles → use
--handles "h1,h2,h3" - File provided → use
--file accounts.txt
- Configure parameters:
--accounts N- Number to analyze (default: 100, max: 100)--posts N- Posts per account (default: 20, max: 100)--stopwords [en|ai|ls]- Choose domain-specific stopwords:en: English (general purpose)ai: AI/ML domain (recommended for tech accounts)ls: Life Sciences (for biomedical/research accounts)--exclude "pattern1,pattern2"- Skip spam/bot accounts
- Run script - Outputs simple text format to stdout:
``` @handle1.bsky.social (Display Name) Bio text here Keywords: keyword1, keyword2, keyword3
@handle2.bsky.social (Another Name) Bio text here Keywords: keyword4, keyword5, keyword6 ```
- Categorize accounts - Claude analyzes bio + keywords to categorize by topic
Quick Start
Analyze following list with AI/ML stopwords:
Analyze followers:
Analyze specific handles:
From file:
Filter out bot accounts:
Parameters
Input Modes (choose one)
--handles "h1,h2,h3" Comma-separated list of Bluesky handles
--following HANDLE Analyze accounts followed by HANDLE
--followers HANDLE Analyze accounts following HANDLE
--file PATH Read handles from file (one per line)
Analysis Options
--accounts N Number of accounts to analyze (1-100, default: 100)
--posts N Posts to fetch per account (1-100, default: 20)
--stopwords [en|ai|ls] Stopwords to use for keyword extraction (default: en)
en: English stopwords (574 terms) - general purposeai: AI/ML domain stopwords (1357 terms) - tech-focused accountsls: Life Sciences stopwords (1293 terms) - biomedical/research accounts
--exclude "word1,word2" Skip accounts with these keywords in bio/posts
Output Format
The script outputs simple text format for Claude to process:
Claude then categorizes accounts based on bio + keywords without hardcoded rules.
Common Workflows
Audit Your Following List
Claude will categorize accounts by topic and identify patterns in who you follow.
Find Experts in a Topic
Ask Claude: "Which of these accounts are ML researchers?" or "Who focuses on climate tech?"
Analyze a Curated List
Filter Out Bot Accounts
Technical Details
Keyword Extraction
Delegates to extracting-keywords skill using YAKE venv:
- Stopwords options (--stopwords):
en: English (574 terms) - general purposeai: AI/ML domain (1357 terms) - filters technical noise, ML boilerplatels: Life Sciences (1293 terms) - filters research methodology, clinical terms- N-grams: 1-3 words
- Deduplication: 0.9 threshold
- Top keywords: 10 per account
- Performance: ~5% overhead with domain stopwords vs English
API Rate Limits
Bluesky API limits:
- 3000 requests per 5 minutes
- 5000 requests per hour
The analyzer respects these limits with built-in delays.
Categorization Algorithm
Script's role:
- Fetch account data (bio + posts)
- Extract keywords to compress context
- Output bio + keywords in simple format
Claude's role:
- Read bio + keywords for each account
- Intelligently categorize by topic (no hardcoded rules)
- Group accounts, identify patterns, answer user questions
This agentic pattern is more flexible than hardcoded keyword matching.
Troubleshooting
"No accounts to analyze"
- Verify handle format (include domain: handle.bsky.social)
- Check if account exists and has public following/followers
"Insufficient content for keyword extraction"
- Account has few posts (<5)
- Posts are very short
- Try increasing
--postsparameter
Rate limit errors
- Reduce
--accountsparameter - Add delays between batches
- Check Bluesky API status
Import errors
- Verify extracting-keywords skill is available
- Check YAKE venv exists:
/home/claude/yake-venv/bin/python -c "import yake" - Verify Python 3.8+:
python3 --version
Integration with Other Skills
Built-in integration:
- extracting-keywords: Automatically delegates keyword extraction to this skill's optimized YAKE venv with domain-specific stopwords
Categorizing Output
Group accounts by topic from their bio + keywords, using judgment rather than a fixed taxonomy — the categories and counts follow from what's actually in the data, not a template.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcategorizing-bsky-accounts/SKILL.md
Popularity
- Repository stars
- 155
- Repository forks
- 8
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/oaustegard/claude-skills/categorizing-bsky-accounts)