01
Getting started
Sign in with your account at the Viral homepage. New users complete a short onboarding flow: pick your primary platform, add your website URL, connect your LinkedIn profile, fetch recent posts, and accept the Terms of Service.
Once onboarding finishes, the sidebar gives you access to every research module. Most features require an active subscription — visit Pricing to unlock lookalike research, AI content ideas, and MCP access.
Core workflow:
- Connect LinkedIn: during onboarding (or later in Settings → LinkedIn), then sync your profile and recent posts.
- Analyze your content: open Your content to review performance, mix, 3-P strategy, audience, and account optimization.
- Run creator research: Bracket research discovers gold, silver, and bronze lookalikes; Patterns turns that into a playbook.
- Generate ideas: Content ideas uses your voice, brackets, and trends to draft post concepts.
- Connect MCP: Settings → AI assistant connections for any MCP client, or Claude / Codex / Hermes helpers.
- Download the content-creation skill: /skills — install SKILL.md so assistants follow the Viralz workflow.
02
Platform features
The Viral dashboard is organized into focused research tabs. Each tab reads and writes the same data layer that MCP tools use, so results stay in sync whether you work in the browser or through an AI assistant.
Your content
Your posts compared to gold creators (steal) and bronze habits (stop). Eight analysis cards you can toggle on or off — see the Your content analysis section below for every card.
Bracket research
Discover lookalike creators and sort them into gold, silver, and bronze. Run bucket analysis, then open Patterns for the bronze → gold playbook. Full card breakdown is in Bracket analysis below.
Content research
Deep-dives into individual posts from you or lookalike creators. Compare content pieces side by side, upload drafts, and see what structural choices differentiate high performers.
Content ideas
Generates LinkedIn post ideas grounded in your ICP, Your voice vocabulary, profile analysis, bracket insights, and topic trends. Save favorites to a personal library and regenerate with different angles.
Topic analyser
Runs Google Trends searches on topics surfaced from your brackets or manual input. Useful for timing posts around rising interest in your niche.
Settings
Central hub for integrations and account configuration.
- LinkedIn connection: sync profile and posts.
- AI assistant connections (MCP): general MCP, Claude, Codex, or Hermes.
- Billing: manage your Stripe subscription.
- Model preference: choose the AI model for in-app generation.
- Business context: ICP (ideal customer), product positioning, and brand style — edit in Settings, upload your own .md brief/style guide, or via MCP update_business_context.
- Your voice vocabulary is computed from scraped posts (not typed in Settings) and available via MCP get_user_vocabulary.
- Monetize partners: configure affiliate or partner links in generated content.
03
Your content analysis
Open Your content in the app sidebar. The page title is “Your content, analyzed” — your posts compared to gold creators (habits to steal) and bronze habits (habits to stop).
Use Analysis settings to turn individual cards on or off; preferences save to your account. Refresh posts re-scrapes LinkedIn and re-runs analyses. Export PDF downloads the enabled sections (SSI is excluded from PDF).
Performance stats
Baseline engagement numbers for your recent posts so every other card has context.
- Avg likes, avg comments, and avg reshares across analyzed posts.
- Engagement rate (likes relative to followers) and posts analyzed count.
- Follower count (editable if the scrape needs a correction).
Where you stand
A short LLM summary of how your habits compare to gold and bronze creators in your brackets — what to keep copying and what to drop.
- Requires bracket research so gold/bronze context exists.
- Highlights good practices vs. habits that look like bronze-level reach.
Social Selling Index
LinkedIn-only card. Pulls your Social Selling Index score and the four pillars so you can see how LinkedIn ranks your selling presence — separate from post engagement.
- Overall score out of 100, plus each pillar out of 25.
- Industry and network rank when LinkedIn provides them.
- Not included in PDF export.
Content mix & timing
Three sub-views that answer what you post, what you write about, and when you post.
- What you post: media mix (text, image, video, carousel, etc.).
- Topics you write about and type of content you post (themes from profile analysis).
- Consistency: your posts/week vs LinkedIn’s majority, cadence tier, and best days/times by engagement.
Your voice
A deterministic vocabulary fingerprint from your LinkedIn posts — frequent words, signature phrases, and typical post length. Content ideas and MCP drafting reuse this so copy sounds like you, not generic AI.
- Word cloud built from your scraped posts (stopwords stripped).
- Signature phrases (common two-word patterns).
- Available over MCP via get_user_vocabulary (includes a promptReady block).
Content analyser
Working vs. weak engagement patterns across your recent posts — the “what’s landing” vs. “what isn’t” read.
- Summary of overall content performance.
- What’s working: patterns tied to stronger engagement.
- What isn’t working: patterns tied to flat or weak posts.
3-P content strategy
Classifies your posts into Personality, Problem, and Proof — plus Consistency / Perseverance (posting cadence vs LinkedIn’s majority). The first three keep a LinkedIn feed human, useful, and credible; Consistency shows how often you show up compared with most users.
- Donut mix of Personality / Problem / Proof with pillar cards and advice.
- Perseverance tiers from posts/week: Outlier (1/day), Influencer (5/wk), Content focused (3/wk), Novice (1/wk), Under performing (1/mo).
- Audience resonance: whether comments match the intent of each pillar.
- Content half-life: how long engagement lasts per pillar (comment lifespan math).
- Posts to classify control (5–50) limits how many recent posts enter the content-mix run.
Audience insights
Who shows up in your comments, how they communicate, and how your brand reads from the outside.
- Who engages most: top engagers, lead-quality signals, CSV export.
- Audience personality (PCM): Process Communication Model distribution, per-type evidence, and a How we determined this walkthrough (posts ranked by engagement → classifier LLM → stored outputs).
- Your branding, as read: voice and positioning tags from profile analysis.
Account optimization
Full profile audit — headline, bio, skills, topics — plus how your content lines up with gold vs. bronze brackets.
- Paste or refresh bio/skills for algorithm alignment reads.
- What works well / what hurts / do this first action stack.
- Headline, bio, skills, and topics cards with concrete edits.
- Your content vs. the brackets: keep, stop, gold gaps, bronze overlap.
04
Bracket analysis
Bracket work spans two tabs: Bracket research (find and curate creators) and Patterns (the playbook). Gold is high followers + high engagement — the ceiling of your niche. Silver is one rung down — solid reach, weaker retention. Bronze is smaller accounts with similar habits but flatter reach.
Bucket analysis
On Bracket research, Bucket analysis runs the per-bracket LLM pass (gold → silver → bronze). Configure creators per bracket (1–3) and posts per creator (10–50), then Start. Stop cancels an in-flight run.
- Status banners show when discovery, scraping, or analysis is still running.
- When creators are ready, open Patterns for the full playbook.
Creator grid & bracket averages
Each bracket shows a creator grid with followers, engagement, and post counts. Drag creators between brackets, open details, refresh posts, pick from the pool, remove, or replace by URL.
- Bracket averages strip: avg likes, comments, reshares, engagement rate, engagement score, follower range.
- Curating brackets changes what Patterns and synthesis optimize against.
Patterns playbook
After bucket analysis, Patterns is “Your bracket playbook”: start doing what gold does, fix silver gaps, stop bronze habits. Account-level audit stays under Your content → Account optimization.
- Viral only: analyze breakout posts per bracket (on) or include every post (off). Both modes are cached separately.
- Run research again to refresh the playbook after you change creators.
- Edit research prompts to customize the bracket analysis system prompt.
Start doing / Fix next / Stop doing
Three overview action cards from bronze → gold synthesis — the fastest way to act on bracket research.
- Start doing: gold habits to copy this week.
- Fix next: what silver does that still isn’t gold (gap + why not gold).
- Stop doing: bronze anchors that keep reach flat (habit + why it keeps you small).
Bronze → gold synthesis
Cross-bracket ladder summary that ties the three overview cards together. Expand nuances when you want the longer reasoning behind the short synthesis.
Per-bracket pattern cards
Each populated bracket (Gold / Silver / Bronze patterns) includes a viral profile, word overlap, dimension cards, and named pattern cards.
- What viral looks like: action summary, avg engagement, format signals, top viral post examples with hooks.
- Word overlap: shared vocabulary score, avg words per post, top overlapping words (computed, not LLM).
- Hooks, CTAs, Topics, Copy length, Angle, Target audience — dimension cards with action line, frequency, why it works, and examples.
- Topics can open Google Trends for rising interest in that niche language.
- Extra named pattern cards from the Brendan Kane–style analysis when the model surfaces them.
05
MCP integration
Viral exposes a Streamable HTTP MCP server at `/api/mcp/mcp`. The server name is `viral` (version 1.4.0). Authentication uses OAuth 2.1 for Claude web connectors and bearer tokens for any MCP client (including Claude Code, Codex, Hermes, Cursor, and others).
Every MCP tool resolves your user ID from the OAuth token — tools never accept a userId parameter from the client. Read-only tools work without a subscription for preview; write and research tools require an active plan.
MCP is hosted on the Next.js/Vercel server — you do not need the Viral browser UI open. As long as the app is deployed (or `npm run dev` is running locally with an HTTPS tunnel), any MCP client can call tools over HTTPS.
For drafting: call get_user_vocabulary (words/phrases they actually use) and get_icp (ideal customer) before writing. get_business_context returns the full pack including brand style and research fingerprint.
When someone says “use the Viral MCP”, agents should onboard once: (1) Viral content-design skill/templates vs their own, (2) Fireflies / Fathom / other for meetings — skip Meeting ↔ Content if external, (3) podcasts yes/no — if yes, offer Podcast → Content (`import_podcast_content_skill`). Full rules live in get_mcp_agent_readme.
Supported clients:
- Any MCP client (Streamable HTTP): https://modelcontextprotocol.io/docs/getting-started/intro
- Claude (web + Code): https://claude.ai/customize/connectors
- Codex: https://developers.openai.com/codex/mcp
- Hermes Agent: https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp
06
Connect any MCP client
Open Viral → Settings → AI assistant connections → Connect MCP. This is the generic Streamable HTTP setup for Cursor, Windsurf, Continue, custom agents, and any other MCP-compatible client.
Setup steps:
- Generate a bearer token in Viral (shown once — save it immediately).
- Add a Streamable HTTP MCP server using the URL from Settings.
- Send Authorization: Bearer <token> on every request.
- Reload MCP servers in your client so Viral tools appear.
mcp.json example (Cursor / similar)
{
"mcpServers": {
"viral": {
"url": "https://your-app.vercel.app/api/mcp/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}07
Connect Claude
Open Viral → Settings → AI assistant connections → Connect Claude.
Claude web connector:
- In Claude, go to Settings → Connectors → Add custom connector.
- Paste the MCP server URL shown in Viral Settings (ends with /api/mcp/mcp).
- Claude opens a browser OAuth sign-in — approve access with your Viral account.
- No manual bearer token is needed for the web connector.
Claude Code (CLI)
After generating a token in Viral Settings, add the server with the CLI command shown once in the connect dialog:
claude mcp add --transport http viral https://your-app.vercel.app/api/mcp/mcp --header "Authorization: Bearer YOUR_TOKEN"08
Connect Codex
Open Viral → Settings → AI assistant connections → Connect Codex. Codex uses bearer-token authentication over Streamable HTTP.
Setup steps:
- Generate a bearer token in Viral (shown once — save it immediately).
- Add the MCP server in Codex with the server URL from Settings.
- Export the token as an environment variable before starting Codex.
Codex CLI example
export VIRAL_MCP_TOKEN="your-token-here"
codex mcp add viral --url https://your-app.vercel.app/api/mcp/mcp --bearer-token-env-var VIRAL_MCP_TOKEN09
Connect Hermes
Open Viral → Settings → AI assistant connections → Connect Hermes. Hermes Agent reads HTTP MCP servers from `~/.hermes/config.yaml`.
For LinkedIn drafting, also install the Viralz content-creation skill from /skills so Hermes follows the Viralz workflow with Viral MCP.
Setup steps:
- Generate a bearer token in Viral (shown once — save it immediately).
- Paste the YAML snippet from Settings into `~/.hermes/config.yaml` under `mcp_servers`.
- Restart Hermes or run `hermes chat` so it discovers Viral tools.
- Optional: use `auth: oauth` instead of a static bearer header — Hermes opens a browser sign-in.
- Optional: install the content-creation skill from /skills.
Hermes config.yaml example
mcp_servers:
viral:
url: "https://your-app.vercel.app/api/mcp/mcp"
headers:
Authorization: "Bearer YOUR_TOKEN"10
OAuth & security
Viral implements OAuth 2.1 as an authorization server. Protected resource metadata is published at `/.well-known/oauth-protected-resource` and authorization server metadata at `/.well-known/oauth-authorization-server`.
The required scope is `viral:read`. Tokens are created server-side and shown once in Settings — they are never stored in browser localStorage.
Token lifecycle:
- Generate: creates a new bearer token and marks the client as connected.
- Regenerate: issues a new token when the previous value was not saved.
- Revoke: invalidates the token and disconnects all MCP clients.
11
MCP tool reference
Call get_app_overview first — it returns an index of which tools have data for your account. AI agents can call get_mcp_agent_readme for operating rules (also in `lib/mcp/README.md`). Tools are grouped below by function.
Overview, ICP & voice
- get_mcp_agent_readme — operating instructions for AI agents (workflows, drafting rules, tool map).
- get_app_overview — index of available data across your account (includes icp + userVocabulary flags).
- get_business_context — full pack: business profile, ICP, brand style, LinkedIn analysis, research fingerprint.
- get_icp — Ideal Customer Profile only (title, industry, size, problem) plus audience/niche/themes.
- get_user_vocabulary — Your voice word cloud + signature phrases from their posts (promptReady block included).
- get_content_fingerprint — topic/positioning fingerprint used for lookalike research.
- update_business_context — update business profile, ICP, style, LinkedIn analysis notes, or format (subscription required).
- get_website_analysis — latest website crawl and analysis.
- crawl_website — crawl a site with Firecrawl (subscription required).
- analyze_website — LLM analysis of a stored crawl (subscription required).
LinkedIn profile & posts
- get_linkedin_profile_analysis — profile health and posting patterns.
- list_my_posts — your recent LinkedIn posts with metrics.
- refresh_linkedin_profile — re-scrape profile and posts (subscription required).
Creator research
- start_creator_research — start lookalike discovery + background ticks (subscription required).
- continue_creator_research — schedule another background tick without the UI open.
- get_creator_research_run — current lookalike research run metadata.
- list_creators — creators in gold/silver/bronze brackets.
- get_creator_posts — posts for a specific lookalike creator.
- get_bracket_analyses — per-bracket analysis summaries (includes shared vocabulary / word overlap).
- get_bracket_insights — exportable bracket insights bundle.
- get_bracket_synthesis — cross-bracket synthesis report.
- get_bracket_topic_trends — Google Trends for bracket topics.
- get_user_comparison — your metrics vs. bracket averages.
- compare_creators — head-to-head creator comparison (includes distinctive vocabulary).
- list_comparison_creators — creators available for comparison.
- get_research_prompts — saved research prompt templates.
- save_research_prompt — save a research prompt (subscription required).
Viral research & content-design import
- list_viral_research / get_viral_research / run_viral_research — stored viral research runs.
- import_viral_research — portable full research package for Codex/Claude/Hermes local storage.
- import_viral_research_ideas — themes, patterns, and ideas package.
- list_content_design_templates / get_content_design_skill — user design files + skill markdown.
- import_content_design_skill — pull (default) or push content-design.md skill.
- export_content_design_templates / import_content_design_templates — labeled templates/assets.
- get_meeting_content_skill / import_meeting_content_skill — platform Meeting ↔ Content skill (pull for all; push Jasper-only). Skip when user uses Fireflies/Fathom/other external meeting tools.
- get_podcast_content_skill / import_podcast_content_skill — platform Podcast → Content skill (pull for all; push Jasper-only; repo default podcast-2-content.md). Offer only if user makes podcasts.
Content ideas & drafts
- generate_content_ideas — generate new post ideas using ICP + Your voice (subscription required).
- get_generated_content_ideas — last generated idea batch.
- list_saved_content_ideas — your saved idea library.
- save_content_idea — save an idea (subscription required).
- unsave_content_idea — remove a saved idea (subscription required).
- simulate_draft — three-persona draft wind tunnel using ICP for Ideal Client (subscription required).
3-P strategy, resonance & lifespan
- get_three_p_content — stored Personal / Problem / Proof mix.
- run_three_p_content_analysis — classify posts into 3-P pillars (subscription required).
- get_audience_resonance — stored comment-vs-pillar resonance.
- run_audience_resonance_analysis — run resonance analysis (subscription required).
- get_content_lifespan — algorithmic half-life per pillar.
- refresh_content_lifespan — refresh comments/snapshots and recalc half-life.
Audience & optimization
- get_top_engagers — cached top engager analysis.
- run_top_engagers_analysis — run fresh engager analysis (subscription required).
- export_top_engagers_csv — CSV export of top engagers.
- get_social_selling_index — LinkedIn Social Selling Index score.
- refresh_social_selling_index — refresh SSI (subscription required).
- get_pcm_audience — Process Communication Model audience read.
- run_pcm_audience_analysis — run PCM analysis (subscription required).
- get_account_optimization — profile optimization recommendations.
- run_account_optimization — run optimization audit (subscription required).
Trends & content comparison
- get_topic_trends — latest topic trends search results.
- start_topic_trends_search — start a trends search (subscription required).
- check_topic_trends_search — poll an in-progress trends search.
- list_content_piece_comparisons — saved content piece comparisons.
- compare_content_pieces — compare posts or drafts (subscription required).
12
MCP drafting with ICP & Your voice
When an assistant writes LinkedIn posts for a Viral user, load both who they sell to and how they sound — then draft. These tools work without the Viral UI open.
- get_icp — Ideal Customer Profile: title, industry, company size, problem, plus audienceDescription / niche / themes.
- get_user_vocabulary — words and signature phrases from their posts; use the promptReady string in your system/user prompt.
- get_business_context — full pack if you also need product positioning and brand style.
- get_content_fingerprint — topic fingerprint for research (not lexical voice).
- simulate_draft — stress-test the draft with Skeptical Prospect / Skimmer / Ideal Client (Ideal Client uses stored ICP).
- update_business_context — correct ICP or LinkedIn analysis notes when the user asks to change their positioning.
Recommended assistant flow
- 1. get_app_overview — confirm profile, ICP, and vocabulary flags.
- 2. get_bracket_synthesis + get_user_comparison — gold best practices and bronze negative patterns.
- 3. get_icp + get_business_context + get_user_vocabulary — buyer, company, voice.
- 4. Use the user’s idea or generate_content_ideas / get_generated_content_ideas.
- 5. Generate the visual first (infographic or slider), then draft the post in their register.
- 6. simulate_draft — iterate until readiness looks solid.
13
Content-creation skill (download)
Viralz ships a downloadable agent skill that encodes the full LinkedIn content workflow for Cursor, Claude, Codex, Hermes, and other MCP clients.
Workflow the skill enforces:
- Load gold bracket best practices and bronze negative patterns (get_bracket_synthesis, get_user_comparison).
- Load ICP and company context (get_icp, get_business_context).
- Load writing style / Your voice (get_user_vocabulary).
- Choose the user’s own idea or a Viralz ideal idea (generate_content_ideas).
- Generate the visual first — infographic or slider/carousel — then write the post.
- QA against best practices and run simulate_draft before delivery.
Install paths
- Claude.ai: /skills/viralz-content-creation-for-claude.txt → Project → Files (do not upload .md or .zip)
- Zip (Cursor / Claude Code / Hermes): /skills/viralz-content-creation.zip
- Project skill folder: .agents/skills/viralz-content-creation/ (after unzip)
- Public browse: /skills
Custom business packages (admin)
Admins can build a per-business skill package in Settings → Admin → Business content skills: SKILL.md, slider/infographic background files, signature and CTA templates, HTML examples, and up to 9 LinkedIn creator URLs.
Creator URLs are staged on the package only — they are not scraped or added to bracket research until you intentionally apply them later. Build the package first, then Connect to user by email when the account exists.
Assigned users download the full zip (or individual template assets) from Settings → AI assistants.
14
MCP troubleshooting
Most connection issues come from HTTP URLs, expired tokens, or missing subscription access.
- HTTPS required: set MCP_PUBLIC_URL to an ngrok/cloudflared URL for local dev, or deploy to Vercel.
- Sign-in required: MCP tools return "Authentication required" without a valid token.
- Subscription required: write and research tools need an active Stripe plan — visit /pricing.
- LinkedIn not connected: connect LinkedIn in Settings, then sync profile and posts before profile tools work.
- Empty vocabulary: need ≥3 posts with text — call refresh_linkedin_profile, then get_user_vocabulary.
- Empty ICP: run website analyze_website / complete onboarding, or set customerProfile via update_business_context.
- No research run: use start_creator_research (or run discovery once in the app), then poll get_creator_research_run. Background ticks continue without the browser open.
- Token lost: regenerate in Settings → AI assistant connections (old token is invalidated).
- App UI not required: MCP talks to the server over HTTPS. Close the Viral tab freely — only the Next.js process (local) or Vercel deployment (production) must be up.
Verify MCP health
Check the public status page at /status for live MCP, API, and database health. The MCP endpoint URL and HTTPS status are listed at the bottom of the status page.
15
Billing & plans
Viral uses Stripe for subscriptions. The Upgrade button appears when you are signed in without an active plan. Manage payment methods and invoices from Settings → Billing (or Pricing).
To cancel, open Cancel subscription and complete the short exit survey (reason + optional details). Unsubscribe is blocked until the survey is submitted; answers are stored so we can improve the product. Access continues until the end of the current billing period.
MCP write tools and in-app research features check subscription status on every request. Read-only MCP preview tools (like get_app_overview) work without a plan so you can verify the connection.
16
Data & privacy
Your LinkedIn data is synced only after you connect your account in Settings. Research results, content ideas, and business context are stored in Supabase and scoped to your account. MCP tokens are hashed at rest and can be revoked at any time from Settings.
See the full Terms of Service at /terms for data processing, retention, and third-party processor details.