
Hashtag Analyzer
- 185 installs
- 145 repo stars
- Updated April 2, 2026
- guia-matthieu/clawfu-skills
Evaluate hashtag volume, competition, and relevance for a niche post so creators pick tags that improve discoverability without shadowban or spammy clustering risks.
About
Hashtag-analyzer skill supports social growth by ranking hashtags for topical fit, competition, and platform rules, then proposing balanced tag sets that widen reach while avoiding overused or policy-risky labels on posts and campaigns.
- Relevance versus volume tradeoffs
- Competition density scoring
- Platform-specific tag limits
- Cannibalization and spam checks
- Recommended tag bundles
Hashtag Analyzer by the numbers
- 185 all-time installs (skills.sh)
- Ranked #990 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/guia-matthieu/clawfu-skills --skill hashtag-analyzerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 185 |
|---|---|
| repo stars | ★ 145 |
| Last updated | April 2, 2026 |
| Repository | guia-matthieu/clawfu-skills ↗ |
What it does
Evaluate hashtag volume, competition, and relevance for a niche post so creators pick tags that improve discoverability without shadowban or spammy clustering risks.
Files
Hashtag Analyzer
Analyze and discover effective hashtags for social media marketing campaigns.
What Claude Does vs What You Decide
| Claude Does | You Decide |
|---|---|
| Structures analysis frameworks | Strategic priorities |
| Synthesizes market data | Competitive positioning |
| Identifies opportunities | Resource allocation |
| Creates strategic options | Final strategy selection |
| Suggests implementation approaches | Execution decisions |
Dependencies
pip install click requestsCommands
python scripts/main.py analyze "#marketing" --platform instagram
python scripts/main.py related "#startup" --count 20
python scripts/main.py strategy "@competitor" --platform twitterSkill Boundaries
What This Skill Does Well
- Structuring strategic analysis
- Identifying market opportunities
- Creating strategic frameworks
- Synthesizing competitive data
What This Skill Cannot Do
- Replace market research
- Guarantee strategic success
- Know proprietary competitor info
- Make executive decisions
Skill Metadata
- Mode: centaur
category: social
dependencies: [click, requests]
difficulty: beginner#!/usr/bin/env python3
"""Hashtag Analyzer - Analyze and discover hashtags."""
import click
from typing import Optional
import random
# Simulated hashtag data for demo
HASHTAG_CATEGORIES = {
'marketing': ['digitalmarketing', 'contentmarketing', 'socialmedia', 'branding', 'marketingtips',
'growthhacking', 'seo', 'marketingstrategy', 'b2b', 'b2c'],
'startup': ['startuplife', 'entrepreneur', 'founder', 'venturecapital', 'tech', 'innovation',
'business', 'startups', 'funding', 'saas'],
'tech': ['technology', 'ai', 'machinelearning', 'coding', 'programming', 'developer',
'software', 'data', 'cloud', 'automation'],
}
def get_related_hashtags(hashtag: str, count: int = 10) -> list:
"""Get related hashtags (simulated)."""
base = hashtag.lower().strip('#')
# Find category
for cat, tags in HASHTAG_CATEGORIES.items():
if base in tags or base == cat:
related = [t for t in tags if t != base]
random.shuffle(related)
return ['#' + t for t in related[:count]]
# Generic related
variations = [
f"#{base}tips", f"#{base}life", f"#{base}strategy",
f"#{base}advice", f"#{base}community", f"#{base}daily"
]
return variations[:count]
def estimate_hashtag_metrics(hashtag: str) -> dict:
"""Estimate hashtag metrics (simulated)."""
random.seed(hash(hashtag))
return {
'posts': random.randint(10000, 10000000),
'avg_likes': random.randint(50, 5000),
'avg_comments': random.randint(5, 500),
'growth': random.uniform(-5, 25),
'competition': random.choice(['Low', 'Medium', 'High', 'Very High'])
}
@click.group()
def cli():
"""Hashtag Analyzer - Social media hashtag research."""
pass
@cli.command()
@click.argument('hashtag')
@click.option('--platform', '-p', default='instagram',
type=click.Choice(['instagram', 'twitter', 'tiktok', 'linkedin']))
def analyze(hashtag: str, platform: str):
"""Analyze hashtag performance."""
click.echo("\n Hashtag Analyzer")
click.echo(" " + "=" * 40)
click.echo(f" Hashtag: {hashtag}")
click.echo(f" Platform: {platform}")
metrics = estimate_hashtag_metrics(hashtag)
click.echo("\n Metrics (estimated)")
click.echo(" " + "-" * 40)
click.echo(f" Total posts: {metrics['posts']:,}")
click.echo(f" Avg likes: {metrics['avg_likes']:,}")
click.echo(f" Avg comments: {metrics['avg_comments']:,}")
click.echo(f" Weekly growth: {metrics['growth']:+.1f}%")
click.echo(f" Competition: {metrics['competition']}")
# Recommendation
if metrics['competition'] in ['Low', 'Medium'] and metrics['posts'] > 50000:
click.echo("\n ✓ Good hashtag choice - decent reach with manageable competition")
elif metrics['competition'] == 'Very High':
click.echo("\n ⚠ Very competitive - consider niche alternatives")
else:
click.echo("\n ~ Consider mixing with related hashtags")
@cli.command()
@click.argument('hashtag')
@click.option('--count', '-c', default=10, help='Number of related hashtags')
def related(hashtag: str, count: int):
"""Find related hashtags."""
click.echo(f"\n Related Hashtags: {hashtag}")
click.echo(" " + "=" * 40)
related_tags = get_related_hashtags(hashtag, count)
click.echo("\n Related tags:")
for tag in related_tags:
metrics = estimate_hashtag_metrics(tag)
click.echo(f" {tag:<25} {metrics['posts']:>10,} posts | {metrics['competition']}")
# Copyable list
click.echo("\n Copy-paste list:")
click.echo(f" {' '.join(related_tags)}")
@cli.command()
@click.option('--niche', '-n', required=True, help='Your niche/industry')
@click.option('--output', '-o', type=click.Path(), help='Output file')
def strategy(niche: str, output: Optional[str]):
"""Generate hashtag strategy."""
click.echo("\n Hashtag Strategy Generator")
click.echo(" " + "=" * 40)
click.echo(f" Niche: {niche}")
# Generate strategy
click.echo("\n Recommended Mix (per post)")
click.echo(" " + "-" * 40)
categories = [
("High-volume (1-2)", ['#' + niche, f'#{niche}tips']),
("Medium (3-4)", get_related_hashtags(niche, 4)),
("Niche (3-5)", [f'#{niche}community', f'#{niche}life', f'#{niche}daily']),
("Branded (1)", [f'#your{niche}brand']),
]
all_tags = []
for category, tags in categories:
click.echo(f"\n {category}:")
for tag in tags:
click.echo(f" {tag}")
all_tags.append(tag)
click.echo("\n Full set (copy-paste):")
click.echo(f" {' '.join(all_tags[:15])}")
if __name__ == "__main__":
cli()
click>=8.0.0
requests>=2.28.0