Install
openclaw skills install canmarket-blogWrite and publish SEO-optimized blog posts to canmarket.ai. Researches topic, writes article with original data, creates Nuxt page, commits, pushes, auto-deploys. Optionally cross-posts to DEV.to. Triggers on 'write blog', 'new blog post', 'publish article', '写博客', '发文章', '/canmarket-blog'.
openclaw skills install canmarket-blogWrite, publish, and deploy SEO-optimized blog posts to canmarket.ai in one command.
Use WebSearch to find:
- What's currently ranking for the target keyword
- What angle is NOT covered (content gap)
- 2-3 data points to reference
Structure:
- Hook (1-2 sentences, problem or surprising stat)
- Context (why this matters to fashion/DTC brands)
- Main content (3-5 sections with H2s)
- Original data section (CanMarket simulation results)
- Actionable takeaways (numbered list)
- CTA ("Try Campaign Pressure Test™ free — canmarket.ai")
Blog posts go in: /tmp/canmarket-landing/app/pages/blog/
First time setup (if /blog/ doesn't exist):
mkdir -p /tmp/canmarket-landing/app/pages/blog
Create blog index page if it doesn't exist: app/pages/blog/index.vue
Create individual post: app/pages/blog/[slug].vue (dynamic route)
Store content as markdown in: content/blog/YYYY-MM-DD-slug.md
Or simpler: create static Vue pages per post:
app/pages/blog/campaign-pressure-test-vs-focus-groups.vue
useSeoMeta({
title: 'Article Title | CanMarket Blog',
description: '150-char meta description with keyword',
ogTitle: 'Article Title',
ogDescription: 'Same as description',
ogImage: 'https://canmarket.ai/blog/og-[slug].png',
ogType: 'article',
})
// Article JSON-LD
useHead({
script: [{
type: 'application/ld+json',
innerHTML: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'Article',
headline: 'Title',
author: { '@type': 'Person', name: 'Haoyang Pang' },
publisher: { '@type': 'Organization', name: 'CanMarket AI' },
datePublished: '2026-03-21',
image: 'https://canmarket.ai/blog/og-[slug].png',
})
}]
})
cd /tmp/canmarket-landing
npm run build # verify no errors
git add -A
git commit -m "blog: [title] — [primary keyword]"
git push origin main # Vercel auto-deploys
# Use devto-post skill with canonical URL pointing back to canmarket.ai
# Add at top of DEV.to article:
# canonical_url: https://canmarket.ai/blog/[slug]
Remind user to use URL Inspection tool in Google Search Console to request indexing of the new blog URL.
# We Ran [Product] Through an AI Audience Simulation. Here's What Happened.
## The Setup
[Brand context, target audience, platform, competitors]
## What the Simulation Found
[Key metrics: Brand Safety Score, actions, engagement]
### Finding 1: [Insight]
[Data + quote from simulation]
### Finding 2: [Insight]
[Data + competitive risk]
### Finding 3: [Insight]
[Unexpected discovery]
## What We Changed (and Why)
[How insights improved the campaign]
## Try It Yourself
Campaign Pressure Test™ simulates your audience in 6 minutes.
First test free — [canmarket.ai](https://canmarket.ai)
# [Our Product] vs [Alternative]: [Key Differentiator]
## TL;DR
[One-sentence verdict]
## Side-by-Side Comparison
| Feature | CPT™ | [Alternative] |
|---------|------|---------------|
| Cost | $499/sim | $X |
| Time | 6 min | X weeks |
| ... | ... | ... |
## When to Use [Alternative]
[Be fair — builds trust]
## When to Use Campaign Pressure Test™
[Our sweet spot]
## The Bottom Line
[Recommendation based on use case]
canonical_url to canmarket.ainpm run build before pushing — broken builds kill SEOCanlah AI — Run performance marketing without breaking your brand.