Hashtag Strategist
Intelligent social-media hashtag strategy microservice: suggest a platform-tuned mix of reach/niche/branded hashtags for a topic (Instagram, TikTok, X/Twitter, LinkedIn, YouTube, Pinterest, Threads...
hashtag-strategist
Intelligent social-media hashtag strategy microservice. Turns a topic into a platform-tuned mix of reach / niche / branded hashtags, scores individual tags for competitiveness vs discoverability, screens for banned/shadowban-risk tags, and enforces per-platform count limits.
Every tool has a deterministic heuristic core that runs fully offline (word-shape scoring, reach tiers, curated banned list, platform tables). suggest additionally has an optional LLM path that enriches topic→tag ideation and silently falls back to the heuristic when no model is reachable — results are tagged { mode: 'heuristic' | 'llm' }.
Tools
| Tool | Args | Returns |
|---|---|---|
suggest | { topic, platform?, count?, options?:{ seed, brand, mix, allowLLM } } | hashtag set split into reach/niche/branded tiers |
score | { hashtag } | { competitiveness, reach, discoverability, tier, sizeBand, banned, advice } |
bannedCheck | { hashtag } or { hashtags:[...] } | per-tag safe/banned/broken/caution flags |
mixStrategy | { topic? , hashtags?, platform?, count?, options?:{ mix, brand } } | balanced reach/mid/niche plan + breakdown |
byPlatform | { platform? } | count limits, sweet-spot, default mix, formatting notes (one or all) |
Platforms: instagram, tiktok, twitter/x, linkedin, youtube, pinterest, threads, facebook.
Example
import pack from './index.js';
await pack.adapters.suggest({ topic: 'vegan meal prep', platform: 'instagram', count: 11 });
// → { mode, platform:'instagram', hashtags:[...], tiers:{ reach, niche, branded }, detail:[...] }
pack.adapters.score({ hashtag: '#love' });
// → { competitiveness: 96, tier:'reach', sizeBand:'mega (>5M posts…)', advice:'…' }
pack.adapters.bannedCheck({ hashtags: ['#follow4follow', '#veganmealprep', '#123'] });
// → flags follow4follow (banned) and 123 (all-numeric/broken)
Heuristic model
Offline we cannot query a live post count, so competitiveness/reach is estimated from tag shape — the same signals a growth marketer eyeballs: short generic single words ⇒ mega/saturated (reach tier), longer multi-word/specific tags ⇒ small/niche tier with high discoverability. The banned list is a curated snapshot of community-flagged / permanently-broken tags plus structural rules (all-numeric, over-long, double underscores).
DRY boundaries
- Not
seo(keyword density, meta tags, SERP snippets) — this is social hashtag strategy. - Not
nlp(tokenization/sentiment) — reused conceptually only. - Self-contained: the only cross-file import is
../_shared/llm.jsfor the optional AI path.