Kai Brand Pulse logo

Kai Brand Pulse

Community
cgallic
kai-brand-pulse

Multi-platform brand intelligence pulse - collect cited public reputation evidence across web, news, YouTube, X, LinkedIn, Reddit, and review sites, then turn it into objection mining, content angles, competitor positioning, and surround-sound actions. Use when "brand monitor", "brand pulse", "what are people saying about us", "multi-platform reputation", "brand intelligence", "weekly brand monitoring", "objection mining", or "public reputation scan".

Overview

Publishercgallic
Repositorykai-cmo-harness
Skill namekai-brand-pulse
Stars
61
Forks
8
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by cgallic on GitHub. Read the source before you install it.

Installation

Install the Kai Brand Pulse AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-brand-pulse
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/cgallic/kai-cmo-harness.git /tmp/kai-cmo-harness
mkdir -p .claude/skills
cp -r /tmp/kai-cmo-harness/harness/skills-v2/kai-brand-pulse .claude/skills/kai-brand-pulse
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kai Brand Pulse in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Kai Brand Pulse on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Kai Brand Pulse is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

/kai-brand-pulse — A Cited Read On What The Public Web Says

Objective

A current, source-backed picture of a brand's public reputation across web, news, YouTube, X, LinkedIn, Reddit, and review sites — converted into the things marketing can act on: an objection bank in buyers' own words, content angles tied to evidence, competitor positioning, and surround-sound moves. Every claim points at a citation id.

Evidence first, analysis per platform, synthesis last. The order matters because one loud platform will otherwise swallow quieter evidence that is more useful.

Use it for a current public read on a brand, product, founder, or client; for objection mining feeding copy, sales, ads, social, or lifecycle; for competitor positioning evidence before /kai-brand, /kai-competitors, or /kai-surround-sound; and for weekly delta monitoring.

Do not use it for a full marketing audit (/kai-audit), for technical SEO or agent-readiness alone (/kai-seo-audit, /kai-surround-sound), when there is no approval to collect on a sensitive individual, or when the plan is to publish claims without citations.

Done when

Work type audit-report — floor E3/C4/O1 (harness/eco-floors.yaml), client_facing: true.

  • E3 — the delivered pulse is the approved version and every claim in it resolves to a citation id in the run's raw/ archive or a collector source id.
  • C4 — the Kai Data Provenance Rule: raw search responses and the query plan stored before synthesis, _data-gaps.md filled for every surface that could not be reached, banned_word_check clean, and python scripts/quality_gates/audit_provenance_lint.py <run-folder> --audit-dir passing where the run is client-facing.
  • O1 — each recommended action names the metric it targets and its owner. The pulse's own outcome is whether its recommendations were adopted.

Constraints

  • Cite every client-facing claim with a citation id or a collector source id. No citation, no claim.
  • Store the raw archive and query plan before synthesis. Synthesis that cannot be re-derived from the archive is not a pulse, it is an opinion.
  • Never report review counts, rankings, traffic, share of voice, sentiment share, or platform volume unless the source directly provides them. Search output is a sampled evidence packet and gets labeled as sampled search evidence. "Observed in search results" is not market share and is not sentiment share.
  • Missing access goes to _data-gaps.md — missing APIs, private platform access, unavailable exports. Not to an estimate.
  • Live search needs SERPAPI_API_KEY. Without it the runner archives the query plan and writes data gaps; it does not invent findings.
  • Read MARKETING.md if present for brand name, domain, ICP, category, competitors, positioning, and voice constraints.
  • For client-facing or quantitative recommendations, load harness/references/audit-data-provenance.md and run the shared collector before writing final claims, declaring sales_external, onboarding_connected, or internal_demo. Cite collector sources for domain, schema, sitemap, or metric claims.
  • Analyze one platform at a time, using only that platform's packet as source material, and keep platform conclusions separate until every packet has been read.
  • Phone Capture Fit Rule applies to phone-led businesses: recommend a phone answering service or AI receptionist only when phone-capture evidence supports it, and compare alternatives.
  • Any publishable copy generated from the pulse goes through /kai-gate before it ships.
  • Sensitive individuals require approval before collection.

Context

NeedLoad / run
Provenance rule, modes, source tiersharness/references/audit-data-provenance.md
Brand, domain, ICP, category, competitorsMARKETING.md (project root)
Evidence collection runnerpython scripts/intel/brand_pulse.py "<brand>" --domain "https://example.com" --category "<category buyers ask about>" --competitor "Competitor A" --competitor "Competitor B" --out "workspace/brand-pulse/<brand>-YYYY-MM-DD"
Runner variants--skip-fetch · --wiki-dir "<brain-wiki-folder>" · --json
Shared source collectorpython -m kai.source_data.collect --url "https://example.com" --firm-name "<brand>" --workflow brand-pulse --mode sales_external --out "workspace/brand-pulse-data"
Weekly delta historydata/intel/brand_pulse.db (SQLite, first-seen / last-seen)

Surfaces collected by default:

SurfaceCollection patternWhy it matters
WebBrand, reviews, alternatives, pricing, own-domain entity queriesEntity footprint and objections
NewsBrand and category news queriesAuthority, recency, PR angles
YouTubesite:youtube.com search fallbacksReviews, demos, creator narratives
Xsite:x.com, site:twitter.com fallbacksFast-moving complaints, praise, comparisons
LinkedInsite:linkedin.com/posts and company fallbacksB2B proof, founder and category narratives
Redditsite:reddit.com fallbacksRaw objections and buying language
Review sitesG2, Capterra, Trustpilot, Clutch, Yelp fallbacksSocial proof, complaints, competitor context

Per-platform analyzer output — repeated claims (what the market keeps saying), objections (which pain, doubt, pricing, trust, or support language repeats), proof gaps (what proof buyers need that the brand does not visibly supply), competitor context (who appears beside the brand and why), content angles (what Kai can write, publish, pitch, or test), and AEO actions (which citations, pages, or entity signals feed /kai-surround-sound).

Cross-platform synthesis produces six things: narrative map, objection bank with cited examples, competitor positioning, evidence-tied content angles, surround-sound actions (third-party citation, directory, review, forum, own-domain AEO), and monitoring deltas since the last run.

Finding → next Kai move:

FindingNext move
Repeated pricing objection/kai-landing-page, /kai-write, or a sales FAQ refresh
Repeated competitor comparison/kai-competitors plus a comparison page brief
Reddit objections/kai-reddit-listen profile keywords and reply guardrails
Thin review-site footprintReview request system, directory cleanup, or /kai-surround-sound
Strong third-party praiseRepurpose into proof assets, ads, case studies, AEO citations
Missing own-domain entity clarity/kai-brand, /kai-seo-audit, then /kai-surround-sound

Output goes to workspace/brand-pulse/<run>/: brand-pulse-data.json, _brand-pulse.md, _content-angles.md, _objection-mining.md, _surround-sound-actions.md, _monitoring-plan.md, _data-gaps.md, raw/query-plan.json, and platforms/ (web.md, news.md, youtube.md, x.md, linkedin.md, reddit.md, reviews.md).

Weekly monitoring: run the same brand on a schedule against the same output convention, e.g. 0 8 * * 1 cd /path/to/kai-cmo-harness && python scripts/intel/brand_pulse.py "<brand>" --domain "https://example.com" --category "<category>" --out "workspace/brand-pulse/<brand>-$(date +\%F)". Pass --wiki-dir to write a pointer page for Brain wiki ingestion; the full raw archive stays in the workspace.

Escalate when

  • The subject is a private individual, or a named person whose coverage is sensitive, and approval has not been given.
  • Search access is unavailable and the user wants conclusions anyway.
  • Evidence surfaces a legal, safety, or crisis-communications issue rather than a marketing one.
  • Findings would require a public response on a live channel — that is a separate approval.
  • The brand's own claims contradict cited third-party evidence in a way that implicates advertising compliance.

Frequently asked questions

What does the Kai Brand Pulse AI skill do?

Multi-platform brand intelligence pulse - collect cited public reputation evidence across web, news, YouTube, X, LinkedIn, Reddit, and review sites, then turn it into objection mining, content angles, competitor positioning, and surround-sound actions. Use when "brand monitor", "brand pulse", "what are people saying about us", "multi-platform reputation", "brand intelligence", "weekly brand monitoring", "objection mining", or "public reputation scan".

Why use Kai Brand Pulse on TypingMind?

Because you install it once and use it with any model. Kai Brand Pulse is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Kai Brand Pulse in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-brand-pulse. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Kai Brand Pulse?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Kai Brand Pulse?

As many as you like. As long as a model supports skills, you can use Kai Brand Pulse with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Kai Brand Pulse AI skill free?

It is published on GitHub by cgallic. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇