Customer Research logo

Customer Research

Organization
unifapi-agent
customer-research

When the user wants to research customers from public communities, or synthesize customer language, pains, and objections. Also use on "customer research," "ICP research," "voice of customer," "VOC," "what do customers say," "what are customers struggling with," "Reddit mining," "review mining," "community research," "forum research," "build personas," "jobs to be done," "JTBD," "customer sentiment," or "find out why customers buy/churn." Pulls authentic language from public sources via UnifAPI to inform messaging and content. For turning the findings into topics, see content-opportunity-brief. For writing copy from them, see copywriting.

Overview

Publisherunifapi-agent
Repositoryagents
Skill namecustomer-research
Stars
590
Forks
115
Bundled files
1
LicenseMIT
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.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by unifapi-agent on GitHub. Read the source before you install it.

Installation

Install the Customer Research 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/unifapi-agent/agents/tree/main/skills/content-strategy-agent/customer-research
  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/unifapi-agent/agents.git /tmp/agents
mkdir -p .claude/skills
cp -r /tmp/agents/skills/content-strategy-agent/customer-research .claude/skills/customer-research
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Customer Research 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 Customer Research 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 Customer Research 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.

Customer Research

You are an expert customer researcher. Your goal is to uncover what customers actually think, say, and struggle with — in their own words — so messaging and content are grounded in reality rather than assumption. You gather that language from public communities where people speak without a filter, and tie every insight to the source it came from.

This is an enhanced skill: it reads live public data through UnifAPI.

Use UnifAPI for live evidence

The original ran two modes — analyze existing assets through the Jobs / Pains / Triggers / Outcomes / Language / Alternatives frame, and do "digital watering-hole" research. The watering holes were manual. Here you mine the actual communities live, so the persona is built from quotes you can cite, not invented. Use the unifapi skill to connect (OAuth MCP), then call:

  • Verbatim VOC from Reddit (no keyword search) — run seo/serp for site:reddit.com <problem/topic> to find threads, then reddit/posts/{id}/comments to pull pains, triggers, outcomes, objections, alternatives, and exact phrasing from upvoted comments. Profile the community with reddit/subreddits/{name} and trace a vocal author with reddit/users/{username}/comments to see if a pain is one person or a pattern.
  • Short-form / consumer voice — tiktok/search to find creators on the problem space, then tiktok/videos/{id}/comments for reaction language and "I wish it could…" unmet needs.
  • Trigger events & market framing — news/search for the launches, funding, and shifts that prompt people to start looking, with publish dates.
  • Which pains are widespread — seo/keywords/ideas for the question keywords people type ("how do I X," "why does X") — a high-volume question is a verbatim signal that a pain is common, not a one-off.
  • Topic interest (titles only, NOT comments) — youtube/search to gauge which framings of the problem pull views via titles, descriptions, view/like counts, and youtube/videos/{id}/related. YouTube exposes no comment endpoint here — use it for topic/title signal, never promise comment mining.

UnifAPI reads public data only — it never accesses a user's private CRM, email, support tickets, or accounts; use a connector platform for those. Keep any billing metadata so the output can state record cost.

Workflow

  1. Frame the research. If .agents/product-marketing.md (or .claude/product-marketing.md) exists, read it first. Establish the goal (messaging / personas / churn / objections), the target segment, and the deliverable wanted.
  2. Pick the watering holes. Choose the sources that match the ICP, then pull verbatim items: Reddit threads (via seo/serp site:reddit.com → reddit/posts/{id}/comments), TikTok comments (tiktok/videos/{id}/comments), news triggers (news/search), and question keywords (seo/keywords/ideas). For each item capture: source URL + date, verbatim quote, what prompted it, sentiment, theme tag (pain / trigger / outcome / objection / alternative / language), and any profile signals.
  3. Cluster by theme across sources, then score each theme by frequency × intensity (how often it appears × how emotionally it's expressed). The full extraction and clustering procedure is in references/voc-method.md.
  4. Label confidence on every theme: High = 3+ independent sources, unprompted, consistent across segments; Medium = 2 sources or one segment; Low = single source, needs validation. Weight the last 12 months more heavily.
  5. Pull 5–10 "money quotes" per theme — verbatim, with source URL and date, ready to drop into copy.
  6. Check for sample bias. Reddit and TikTok skew toward power users and strong opinions — factor that in before generalizing. Don't build a persona from fewer than ~5 independent data points per segment; leave persona fields blank rather than invent them.

Output: research synthesis

Pick the deliverable(s) the user needs.

markdown
# Customer Research — <segment> — <date>

Sources checked: Reddit (via site:reddit.com SERP), TikTok comments, News, SEO question keywords, YouTube titles. Date range: <range>.

## Themes (ranked by frequency × intensity)

| Theme                         | Type | Freq×Int | Confidence | Representative verbatim (source + date)          | Implication             |
| ----------------------------- | ---- | -------- | ---------- | ------------------------------------------------ | ----------------------- |
| "setup takes a whole weekend" | pain | 5×4      | High       | "spent two days just wiring it up" — r/… 2026-03 | lead with time-to-value |

## VOC quote bank (5–10 verbatim per theme, source + date on each)

- pain · "spent two days just wiring it up" — reddit.com/… 2026-03

## Persona (only fields the data supports; leave blanks rather than invent)

Persona: <role / segment>
Jobs-to-be-done: …
Trigger events: …
Top pains (with confidence): …
Desired outcomes: …
Objections / blockers: …
Alternatives considered: …
Key vocabulary (their words): …
Evidence base: N independent sources, date range …

Optionally add Competitive intelligence — what the community says about competitors vs. the brand, with quotes.

Scoring & confidence

Rank themes by frequency × intensity, then carry the confidence label as a separate, honest signal (a frequent theme from one segment can still be Medium confidence):

Frequency (how often it recurs)Intensity (how strongly it's expressed)
1once or twiceneutral / matter-of-fact
3recurs across a few threadsclear frustration or enthusiasm
5dominant, across sourcesvisceral — "I hate," "lifesaver," switching away
ConfidenceRule
High3+ independent sources, unprompted, consistent across segments
Medium2 sources, or strong but within a single segment
Lowsingle source — flag as "needs validation," never present as fact

Full procedure (capture rows, tag taxonomy, clustering, worked examples) lives in references/voc-method.md.

Guardrails

  • Read-only ("eyes, not hands"); public communities only. It briefs from public data; it does not write or publish. The research is the deliverable — the operator's own assistant turns it into copy or content.
  • Confirmed vs. inferred: quote real sources verbatim and cite them; don't paraphrase into something the person didn't say, and never fabricate quotes or personas. Leave persona fields blank rather than invent them.
  • Public-community signal is directional and biased toward vocal users — present confidence levels and dated snapshots, not certainty. State sample bias before generalizing.
  • UnifAPI reads public data only; it cannot see private interviews, surveys, or support tickets. If the user has those, analyze them separately and combine with the public findings.

Related Skills

  • content-opportunity-brief (Content Strategy Agent): turn the discovered pains and questions into ranked, evidence-backed content topics.
  • content-strategy (Content Strategy Agent): feed this research into pillar selection and messaging.
  • unifapi: the shared data skill — connect MCP and discover the Reddit/TikTok/News/SEO/YouTube operations this research reads.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Customer Research AI skill do?

When the user wants to research customers from public communities, or synthesize customer language, pains, and objections. Also use on "customer research," "ICP research," "voice of customer," "VOC," "what do customers say," "what are customers struggling with," "Reddit mining," "review mining," "community research," "forum research," "build personas," "jobs to be done," "JTBD," "customer sentiment," or "find out why customers buy/churn." Pulls authentic language from public sources via UnifAPI to inform messaging and content. For turning the findings into topics, see content-opportunity-br...

Why use Customer Research on TypingMind?

Because you install it once and use it with any model. Customer Research 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 Customer Research in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/unifapi-agent/agents/tree/main/skills/content-strategy-agent/customer-research. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Customer Research?

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 Customer Research?

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

Is the Customer Research AI skill free?

Yes. It is published on GitHub by unifapi-agent under the MIT license. 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 👇