
marketing-selling-point-generator
AI-powered tool to discover, prioritize, and write compelling product selling points for marketing campaigns
- Installs
- 891
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/marketing-skills --skill marketing-selling-point-generator- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads marketing-selling-point-generator automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Marketing Selling Point Generator
Skill by ara.so — Marketing Skills collection.
Overview
Marketing Selling Point Generator is a comprehensive tool designed to help product managers and marketers transform product features into compelling selling points. It uses a three-phase approach: Find (discover selling points), Define (prioritize them), and Write (create persuasive copy).
The tool analyzes product attributes, competitive positioning, user feedback, and pain points to generate targeted marketing copy optimized for different platforms and audiences.
Installation
# Clone the repository
git clone https://github.com/danidai098-arch/marketing-selling-point-generator.git
cd marketing-selling-point-generator
# Install dependencies (assuming Node.js/Python based on typical structure)
npm install
# or
pip install -r requirements.txt
Core Workflow
1. Find Selling Points (找卖点)
Extract potential selling points from various data sources:
const { SellingPointFinder } = require('./src/finder');
const finder = new SellingPointFinder();
// Analyze product attributes
const productData = {
name: "Smart Wireless Earbuds Pro",
features: [
"Active Noise Cancellation",
"40-hour battery life",
"IPX7 waterproof",
"Bluetooth 5.3"
],
price: 99.99,
category: "Audio"
};
const attributePoints = await finder.analyzeAttributes(productData);
// Returns structured selling points based on features
# Python equivalent
from src.finder import SellingPointFinder
finder = SellingPointFinder()
product_data = {
"name": "Smart Wireless Earbuds Pro",
"features": [
"Active Noise Cancellation",
"40-hour battery life",
"IPX7 waterproof",
"Bluetooth 5.3"
],
"price": 99.99,
"category": "Audio"
}
attribute_points = finder.analyze_attributes(product_data)
Competitive Analysis
// Compare with competitors
const competitorData = [
{ name: "Brand X Earbuds", price: 129.99, battery: "30 hours" },
{ name: "Brand Y Pods", price: 89.99, battery: "24 hours" }
];
const competitivePoints = await finder.compareCompetitors(
productData,
competitorData
);
// Returns: differentiation advantages like "33% longer battery vs competitors"
User Feedback Analysis
const reviews = [
"Amazing battery life, lasts all week!",
"Sound quality is incredible for the price",
"Finally earbuds that survive my workouts"
];
const userInsights = await finder.analyzeReviews(reviews);
// Extracts: key value points users actually care about
Pain Point Mapping
const targetAudience = {
segment: "fitness enthusiasts",
painPoints: [
"Earbuds fall out during exercise",
"Battery dies mid-workout",
"Not sweat-resistant"
]
};
const painPointMap = await finder.mapPainPoints(productData, targetAudience);
// Maps product features to solved pain points
2. Define Selling Points (定卖点)
Prioritize and score discovered selling points:
const { SellingPointRanker } = require('./src/ranker');
const ranker = new SellingPointRanker();
const allPoints = [
...attributePoints,
...competitivePoints,
...userInsights,
...painPointMap
];
// Score by differentiation
const scoredPoints = await ranker.scoreDifferentiation(allPoints);
// Returns points sorted by competitive advantage strength
// Match to target audience
const audienceConfig = {
demographic: "25-35, fitness-focused professionals",
values: ["performance", "durability", "convenience"],
channels: ["Instagram", "fitness forums"]
};
const audienceMatched = await ranker.matchAudience(scoredPoints, audienceConfig);
// Evaluate by scenario
const scenarios = ["gym workout", "daily commute", "work calls"];
const scenarioScores = await ranker.evaluateScenarios(audienceMatched, scenarios);
// Predict viral potential
const viralityScores = await ranker.predictVirality(scenarioScores);
# Python equivalent
from src.ranker import SellingPointRanker
ranker = SellingPointRanker()
scored_points = ranker.score_differentiation(all_points)
audience_matched = ranker.match_audience(scored_points, audience_config)
scenario_scores = ranker.evaluate_scenarios(audience_matched, scenarios)
virality_scores = ranker.predict_virality(scenario_scores)
3. Write Selling Points (写卖点)
Generate platform-optimized copy:
const { CopyWriter } = require('./src/writer');
const writer = new CopyWriter();
const topPoints = viralityScores.slice(0, 5);
// FAB (Features-Advantages-Benefits) transformation
const fabCopy = await writer.transformFAB(topPoints[0]);
// Input: "40-hour battery life"
// Output: {
// feature: "40-hour battery life",
// advantage: "5x longer than typical earbuds",
// benefit: "Charge once a week, not every day"
// }
// Emotion hook design
const emotionHooks = await writer.createEmotionHooks(topPoints, {
emotions: ["relief", "excitement", "confidence"]
});
// Returns: "Never ask 'Are my earbuds charged?' again"
// Platform-specific copy
const platformCopy = await writer.adaptToPlatform(topPoints, {
platform: "ecommerce",
maxLength: 150,
includeCTA: true
});
// E-commerce example
console.log(platformCopy.ecommerce);
// "40-hour battery. IPX7 waterproof. Premium sound at half the price.
// Your all-day, every-workout companion. Shop Now →"
// Social media version
const socialCopy = await writer.adaptToPlatform(topPoints, {
platform: "instagram",
style: "casual",
includeEmoji: true
});
console.log(socialCopy.instagram);
// "Charge once. Play all week. 🔋💪
// 40 hours of battery = zero anxiety. #NeverDie"
A/B Testing Variants
const abVariants = await writer.generateABVariants(topPoints[0], {
count: 3,
variables: ["headline", "cta", "emotional_angle"]
});
console.log(abVariants);
// [
// { headline: "Battery that lasts as long as you do", cta: "Shop Now" },
// { headline: "40 hours of pure freedom", cta: "Get Yours" },
// { headline: "Never cut your workout short again", cta: "Try It" }
// ]
Configuration
Create a config.json file:
{
"platform": "ecommerce",
"style": "professional",
"max_points": 5,
"include_emotion_hook": true,
"include_cta": true,
"target_audience": {
"age_range": "25-45",
"interests": ["fitness", "technology"],
"pain_points": ["battery anxiety", "durability concerns"]
},
"brand_voice": {
"tone": "confident but approachable",
"avoid": ["technical jargon", "hype"],
"emphasize": ["reliability", "value"]
},
"output_formats": ["short_bullet", "long_description", "social_caption"]
}
Load configuration:
const { loadConfig } = require('./src/config');
const config = loadConfig('./config.json');
const writer = new CopyWriter(config);
Complete Example Workflow
const {
SellingPointFinder,
SellingPointRanker,
CopyWriter
} = require('./src');
async function generateMarketingCopy(productData, competitorData, reviews) {
// Phase 1: Find
const finder = new SellingPointFinder();
const attributePoints = await finder.analyzeAttributes(productData);
const competitivePoints = await finder.compareCompetitors(
productData,
competitorData
);
const userPoints = await finder.analyzeReviews(reviews);
// Phase 2: Define
const ranker = new SellingPointRanker();
const allPoints = [...attributePoints, ...competitivePoints, ...userPoints];
const scoredPoints = await ranker.scoreDifferentiation(allPoints);
const topPoints = scoredPoints.slice(0, 5);
// Phase 3: Write
const writer = new CopyWriter({
platform: 'ecommerce',
style: 'professional',
include_cta: true
});
const marketingCopy = {
mainHeadline: await writer.createEmotionHooks([topPoints[0]]),
bulletPoints: await Promise.all(
topPoints.map(p => writer.transformFAB(p))
),
platformCopy: await writer.adaptToPlatform(topPoints, {
platform: 'ecommerce',
maxLength: 200
}),
abVariants: await writer.generateABVariants(topPoints[0], { count: 3 })
};
return marketingCopy;
}
// Usage
const result = await generateMarketingCopy(
productData,
competitorData,
reviews
);
console.log(result);
Common Patterns
Pattern 1: Quick Product Description
const { quickGenerate } = require('./src/quick');
const description = await quickGenerate({
productName: "Smart Wireless Earbuds Pro",
keyFeatures: ["40h battery", "ANC", "IPX7"],
targetPlatform: "amazon"
});
// Returns optimized Amazon listing copy
Pattern 2: Multi-Platform Campaign
const platforms = ['ecommerce', 'instagram', 'facebook_ad', 'google_ad'];
const campaign = await Promise.all(
platforms.map(platform =>
writer.adaptToPlatform(topPoints, {
platform,
style: 'casual'
})
)
);
const campaignPack = Object.fromEntries(
platforms.map((p, i) => [p, campaign[i]])
);
Pattern 3: Competitive Positioning
const positioning = await finder.generatePositioningStatement({
product: productData,
competitors: competitorData,
targetAudience: "fitness enthusiasts",
keyDifferentiator: "battery life"
});
// Returns: "For fitness enthusiasts who need reliable audio,
// Smart Earbuds Pro offers 40-hour battery life—33% longer
// than leading competitors—so you never miss a beat."
Environment Variables
# .env file
OPENAI_API_KEY=your_openai_key_here
ANALYSIS_MODEL=gpt-4
COPY_MODEL=gpt-3.5-turbo
MAX_TOKENS=500
TEMPERATURE=0.7
Load in code:
require('dotenv').config();
const writer = new CopyWriter({
apiKey: process.env.OPENAI_API_KEY,
model: process.env.COPY_MODEL,
temperature: parseFloat(process.env.TEMPERATURE)
});
Troubleshooting
Issue: Generated copy too generic
Solution: Provide more specific product data and competitive context
// ❌ Too generic
const productData = { name: "Earbuds", features: ["wireless"] };
// ✅ Specific
const productData = {
name: "Smart Wireless Earbuds Pro",
features: [
{ name: "ANC", spec: "35dB reduction", userBenefit: "blocks gym noise" },
{ name: "Battery", spec: "40 hours", userBenefit: "weekly charging" }
],
targetScenarios: ["gym", "commute", "work calls"]
};
Issue: Points don't match target audience
Solution: Define detailed audience configuration
const audienceConfig = {
demographic: "25-35, urban professionals",
psychographic: "values efficiency and quality",
painPoints: ["battery anxiety", "poor call quality"],
desiredOutcomes: ["all-day reliability", "professional sound"],
influencers: ["tech reviewers", "fitness influencers"]
};
const matched = await ranker.matchAudience(points, audienceConfig);
Issue: Copy doesn't fit platform character limits
Solution: Use strict length constraints
const twitterCopy = await writer.adaptToPlatform(points, {
platform: 'twitter',
maxLength: 280,
enforceStrict: true, // Cuts off at limit
priorityPoints: [points[0], points[1]] // Focus on top 2
});
Issue: Need multilingual support
Solution: Specify target language in config
const chineseCopy = await writer.adaptToPlatform(points, {
platform: 'ecommerce',
language: 'zh-CN',
culturalContext: 'China market preferences'
});
Advanced Usage
Custom Scoring Weights
const ranker = new SellingPointRanker({
weights: {
differentiation: 0.4,
audienceMatch: 0.3,
virality: 0.2,
feasibility: 0.1
}
});
Batch Processing
const products = [product1, product2, product3];
const batchResults = await Promise.all(
products.map(p => generateMarketingCopy(p, competitors, reviews))
);
Export to Marketing Tools
const { exportToCSV, exportToJSON } = require('./src/export');
await exportToCSV(marketingCopy, './output/copy.csv');
await exportToJSON(campaignPack, './output/campaign.json');
FAQ
What does the marketing-selling-point-generator skill do?
AI-powered tool to discover, prioritize, and write compelling product selling points for marketing campaigns
How do I install marketing-selling-point-generator?
Run npx skills add https://github.com/reason-machines/marketing-skills --skill marketing-selling-point-generator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/marketing-selling-point-generator/ (personal) or .claude/skills/marketing-selling-point-generator/ (project).
Which AI agents can use marketing-selling-point-generator?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is marketing-selling-point-generator safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains marketing-selling-point-generator?
It is published by reason-machines in reason-machines/marketing-skills. It has 891 recorded installs.
More from reason-machines/marketing-skills
marketing-for-founders-saas-growth
reason-machines/marketing-skills
Access curated marketing strategies and channels to acquire the first 10/100/1000 users for SaaS products and startups
agentkits-marketing-automation
reason-machines/marketing-skills
Enterprise AI marketing automation toolkit with 18 agents, 93 commands, and 28 skills for campaign planning, content creation, SEO, CRO, and growth workflows
composiohq-awesome-claude-skills-seo-content-marketing
reason-machines/marketing-skills
SEO & content marketing skill suite with keyword research, content audits, technical SEO, competitor analysis, and AI-powered content workflows
ai-marketing-skills-automation
reason-machines/marketing-skills
Open-source AI marketing automation skills for growth experiments, sales pipeline, content ops, outbound, SEO, and finance automation
marketingskills-ai-agent-collection
reason-machines/marketing-skills
Marketing skills collection for AI agents - CRO, copywriting, SEO, analytics, and growth engineering
ai-marketing-claude-suite
reason-machines/marketing-skills
Comprehensive AI marketing automation suite for Claude Code with 15 skills including website audits, copywriting, email sequences, ad campaigns, competitive analysis, and PDF reporting
Popular marketing & seo skills
reddit-automation
flowkit-labs/skills
Find Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human in the loop to review and post. This markets on Reddit the honest way: contribute value, disclose who you are, never astroturf. Distilled from the playbook behind doany.ai's Reddit agent. Triggers on "find reddit opportunities", "reddit marketing", "reddit automation", "reply on reddit for my product", "reddit community engagement", "reddit lead gen", or any ask to turn Reddit threads into genuine, disclosed marketing replies.
twitter-automation
101-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
magentosh/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
qu-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
product-launch-video
heygen-com/hyperframes
Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.
twitter-automation
skills-shell/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet