How to Generate User Personas with PM Skills: A Complete Guide to AI-Driven Persona Creation

PM Skills generates user personas by loading the user-personas skill from the pm-market-research plugin, which instructs AI models to analyze research data and output three structured personas with demographics, Jobs-to-Be-Done, and pain points.

PM Skills is a modular AI operating system for product managers that organizes frameworks into reusable plugins. The phuryn/pm-skills repository contains the pm-market-research plugin, which includes a dedicated skill for creating data-driven user personas from CSV files, interview transcripts, or Excel data.

Understanding the PM Skills Architecture

Plugins and Skills

PM Skills groups product management frameworks into plugins. Each plugin contains skills (markdown files describing AI-driven workflows) and optional commands (slash-commands that chain multiple skills). The plugin registry in README.md defines nine product-area plugins, including pm-market-research, which houses the user persona generation logic alongside three related skills: market-segments, user-segmentation, and others.

The User Personas Skill Location

The user-personas skill lives in pm-market-research/skills/user-personas/SKILL.md. When you request persona generation, the engine automatically loads this skill because its name matches the request. The skill definition contains the exact reasoning steps and output template the AI must follow.

How the User Personas Skill Works

The skill file specifies a four-step workflow defined in the Analysis Steps (lines 21-26):

  1. Collect any research data supplied (CSV, Excel, interview transcripts, etc.)
  2. Identify patterns across demographics, motivations, and behaviours
  3. Segment the data into three distinct personas
  4. Enrich each persona with a name, demographics, primary Jobs-to-Be-Done, top pains & gains, an unexpected insight, and a product-fit assessment

The output structure (lines 30-53) provides a fixed template that ensures consistent, actionable results for product road-mapping and design. Because the skill is pure markdown, it works with any AI that can read the SKILL.md format, including Claude, Gemini, and OpenCode.

Three Methods to Generate User Personas with PM Skills

Method 1: Claude Code CLI

Install the plugin and run the bundled command:


# Install the market-research plugin

claude plugin install pm-market-research@pm-skills

# Run the bundled command that calls the user-personas skill

claude /research-users "We have interview transcripts from 15 fitness-app users"

The command automatically loads the user-personas skill, prompts you to attach data files, and returns three fully-filled personas.

Method 2: Direct Skill Invocation

Any AI that reads SKILL.md can execute the workflow directly:

Create 3 user personas from the CSV file "user_survey.csv".

The AI reads the CSV (Skill line 18), follows the analysis steps (Skill lines 21-26), and emits the structured output (Skill lines 30-53).

Method 3: Custom Python Scripts

Use Python to programmatically invoke the skill:

import json, subprocess, pathlib

# Path to the skill file (used by OpenCode or a local LLM wrapper)

skill_path = pathlib.Path(
    "pm-market-research/skills/user-personas/SKILL.md"
).read_text()

# Build a prompt that includes the skill definition plus the user request

prompt = f"""
{skill_path}

User request: Create 3 personas from the attached file "survey.xlsx".
"""

# Send the prompt to your LLM (example using Claude via CLI)

result = subprocess.check_output(
    ["claude", "ask"], input=prompt.encode(), cwd="/path/to/pm-skills"
).decode()

print(result)

This script reads the skill definition from pm-market-research/skills/user-personas/SKILL.md, appends the specific request, and forwards it to the model.

Summary

  • PM Skills uses a plugin-based architecture where the pm-market-research plugin contains the user personas skill
  • The skill file at pm-market-research/skills/user-personas/SKILL.md defines a 4-step analysis process (lines 21-26) and strict output template (lines 30-53)
  • You can invoke personas via Claude Code CLI commands, direct AI prompts, or custom Python scripts
  • The skill works with any AI that supports the SKILL.md format, including Claude, Gemini, and OpenCode
  • The /research-users command in pm-market-research/commands/research-users.md bundles the user-personas skill with related market-research skills for end-to-end workflows

Frequently Asked Questions

What file formats does PM Skills support for persona generation?

The user-personas skill accepts CSV, Excel, interview transcripts, and other structured research data. According to the skill definition in pm-market-research/skills/user-personas/SKILL.md, the model explicitly handles these formats during the data collection step.

Can I modify the number of personas generated?

The standard skill in pm-market-research/skills/user-personas/SKILL.md segments data into three distinct personas by default as specified in the analysis steps. To generate more or fewer personas, you would need to modify the skill file's analysis steps or create a custom skill variant.

Do I need Claude specifically to use PM Skills?

No. While the phuryn/pm-skills repository includes Claude-specific commands and a CLAUDE.md file, the SKILL.md format is pure markdown that works with any AI capable of reading the specification, including Gemini, OpenCode, or custom LLM implementations.

How does the /research-users command differ from calling the skill directly?

The /research-users command, defined in pm-market-research/commands/research-users.md, chains the user-personas skill with other market-research skills for a comprehensive workflow, while direct skill invocation runs only the persona generation logic defined in pm-market-research/skills/user-personas/SKILL.md.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →