productclank-campaigns

Community-powered growth for builders. Boost amplifies your social posts with authentic community engagement (replies, likes, reposts). Discover finds relevant conversations and generates AI-powered replies at scale. Use Boost when the user has a post URL. Use Discover when the user wants to find and engage in conversations about their product.

Safety Notice

This item is sourced from the public archived skills repository. Treat as untrusted until reviewed.

Copy this and send it to your AI assistant to learn

Install skill "productclank-campaigns" with this command: npx skills add 0xcovariance/productclank-community-growth

ProductClank — Community-Powered Growth for Builders

Turn your community into a growth engine. Launch campaigns where real people amplify your product across social platforms — authentic engagement, not bots.

Supports Twitter/X, Instagram, TikTok, LinkedIn, Reddit, and Farcaster.

Capability 1: Boost

Amplify a specific social post with community-powered engagement.

Use Boost when the user has a post URL they want to amplify. One API call, instant results. Works across platforms — just pass the URL.

Supported Platforms

PlatformRepliesLikesReposts
Twitter/XYesYesYes
InstagramYesYes
TikTokYesYes
LinkedInYesYes
RedditYesYes
FarcasterYesYesYes

How It Works

  1. Provide a post URL from any supported platform
  2. Platform is auto-detected from the URL
  3. Choose action: replies, likes, or reposts (availability varies by platform)
  4. Community members execute from their personal accounts
  5. You get authentic, third-party engagement

Pricing

ActionWhat You GetCredits
Replies10 AI-generated reply threads200
Likes30 community likes300
Reposts10 community reposts300

API

POST /api/v1/agents/campaigns/boost
{
  "post_url": "https://x.com/user/status/123456",
  "product_id": "product-uuid",
  "action_type": "replies",
  "reply_guidelines": "optional custom instructions",
  "post_text": "optional — pass post text to skip server-side fetch",
  "post_author": "optional — post author username (used with post_text)"
}

tweet_url, tweet_text, and tweet_author are still accepted for backward compatibility.

Response:

{
  "success": true,
  "campaign": {
    "id": "uuid",
    "campaign_number": "CP-042",
    "platform": "twitter",
    "url": "https://app.productclank.com/communiply/uuid"
  },
  "post": {
    "id": "123456789",
    "url": "https://x.com/user/status/123456789",
    "text": "Post content...",
    "author": "username",
    "platform": "twitter"
  },
  "items_generated": 10,
  "credits": {
    "credits_used": 200,
    "credits_remaining": 100
  }
}

Consolidation: All boost actions for the same product share one campaign. Boosting again adds to the existing campaign (is_reboost: true).

When to Use Boost

  • "Boost this post" / "get engagement on my announcement"
  • "Get community replies on my LinkedIn post"
  • "Get likes on my tweet" / "get reposts on my cast"
  • User shares a post URL from any platform and wants community engagement
  • Launch announcements, product updates, partnership posts — any post you want your community to rally behind

How to Run a Boost (Agent Interaction Guide)

  1. Get the post URL — ask the user for their post URL (the post they want community to engage with). Any supported platform works.
  2. Choose action type — ask: "How should the community engage? Replies (support, questions, congrats), likes, or reposts?" Default to replies if unclear. Note: reposts only available on Twitter and Farcaster.
  3. Find the product — search GET /agents/products/search?q=<name> and confirm with user (see Confirm Product Selection)
  4. Get reply guidelines (for replies) — ask what kind of engagement they want: "Should community replies congratulate the team? Ask about features? Show excitement?" Use this to set reply_guidelines
  5. Confirm cost — "This will use 200 credits for 10 community replies. Proceed?"
  6. ExecutePOST /agents/campaigns/boost
  7. Share results — show campaign URL and credits remaining

Complete Boost Example

// User says: "Get my community to engage with my latest announcement"
const API = "https://app.productclank.com/api/v1/agents";
const headers = {
  "Authorization": `Bearer ${process.env.PRODUCTCLANK_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Search for the product
const search = await fetch(`${API}/products/search?q=MyProduct&limit=5`, { headers });
const { products } = await search.json();
// → Confirm with user: "I found MyProduct. Is this correct?"

// 2. Boost a Twitter post
const res = await fetch(`${API}/campaigns/boost`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    post_url: "https://x.com/myproduct/status/123456789",
    product_id: products[0].id,
    action_type: "replies",
    reply_guidelines: "Show genuine excitement about the launch. Ask thoughtful questions about the new features or congratulate the team. Keep it authentic — no sales pitch.",
    post_text: "We just shipped v2.0! New API with 10x faster response times, batch endpoints, and webhook support. Try it out →", // optional, skips server fetch
    post_author: "myproduct", // optional, used with post_text
  }),
});

const result = await res.json();

if (result.success) {
  console.log(`✅ Boosted on ${result.campaign.platform}! ${result.items_generated} community replies generated`);
  console.log(`📊 Dashboard: ${result.campaign.url}`);
  console.log(`💰 Credits remaining: ${result.credits.credits_remaining}`);
}

// 3. Works with any platform — just change the URL
await fetch(`${API}/campaigns/boost`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    post_url: "https://www.linkedin.com/posts/myproduct-launch-update-123",
    product_id: products[0].id,
    action_type: "replies",
    post_text: "Excited to announce our Series A! ...", // recommended for non-Twitter platforms
  }),
});

CLI

# Boost a Twitter post
communiply boost https://x.com/myproduct/status/123 --action replies \
  --guidelines "Congratulate the team, ask about new features, show excitement"

# Boost a LinkedIn post
communiply boost https://linkedin.com/posts/myproduct-update-123 --action likes

# Boost a TikTok video
communiply boost https://tiktok.com/@myproduct/video/123 --action replies

# Boost a Farcaster cast
communiply boost https://warpcast.com/myproduct/0xabc123 --action reposts

Post Text Resolution

For replies, post text is required for AI generation. Resolution order:

  1. Client-provided post_text (skips fetch — recommended for non-Twitter platforms)
  2. Server-side fetch via platform API (Twitter oEmbed, TikTok oEmbed, Reddit JSON, etc.)
  3. If text unavailable, returns 503 for replies. Likes/reposts work without text.

Capability 2: Discover

Find relevant Twitter conversations and generate AI-powered replies at scale.

Use Discover when the user wants to proactively find and engage in conversations about their product's topic. This is a multi-step flow — more powerful than Boost, but requires more setup.

How It Works

  1. Define keywords and target audience
  2. AI discovers relevant conversations on Twitter
  3. AI generates contextual replies for each opportunity
  4. Community members claim replies and post from personal accounts
  5. Track results in real-time

Pricing

OperationCredits
Campaign creation10
Post discovery + reply generation12 per post
Reply regeneration5 per reply
Research analysisFree

API Flow

Step 1: Create campaign (10 credits)

POST /api/v1/agents/campaigns
{
  "product_id": "product-uuid",
  "title": "Launch Week Buzz",
  "keywords": ["AI tools", "productivity apps", "workflow automation"],
  "search_context": "People discussing AI productivity tools and looking for better solutions",
  "mention_accounts": ["@myproduct"],
  "reply_style_tags": ["friendly", "helpful"],
  "reply_length": "short",
  "reply_posted_by": "community",
  "min_follower_count": 500,
  "max_post_age_days": 7
}

Step 2 (optional): Run research (free)

POST /api/v1/agents/campaigns/{id}/research

Expands keywords, discovers influencers, finds Twitter lists. Results are automatically used in Step 3.

Step 3: Generate posts (12 credits/post)

POST /api/v1/agents/campaigns/{id}/generate-posts

Discovers relevant tweets and generates AI replies for each.

Step 4 (optional): Review and refine

GET  /api/v1/agents/campaigns/{id}/posts?include_replies=true
POST /api/v1/agents/campaigns/{id}/regenerate-replies

When to Use Discover

  • "Create a Twitter campaign" / "find relevant conversations"
  • "Monitor competitor mentions" / "intercept competitor conversations"
  • "Scale word-of-mouth" / "community-driven growth"
  • "Launch day amplification" — find conversations about the product category
  • User wants ongoing, proactive engagement (not one-off amplification)

Use Cases

1. Launch Day Amplification Create a campaign targeting conversations about new tools, launches, and your product category. Community claims AI-generated replies and posts from personal accounts — turning your launch into coordinated authentic buzz. Keywords: ["Product Hunt launch", "new AI tools", "Show HN", "just launched"] Credits: ~250 for a 20-post campaign

2. Competitor Intercept Target keywords like "[Competitor] alternative" or "switching from [Competitor]". Community members naturally recommend your product in those threads with authentic, experience-based replies. Keywords: ["Salesforce alternative", "switching from HubSpot", "better than Notion"]

3. Growth Campaign with Rewards Create a Communiply campaign + fund it with credits. Community members browse available posts, claim reply opportunities, post from their accounts, and earn rewards for verified engagement. 60-80% lower CAC than traditional ads.

4. Problem-Based Targeting Find people expressing pain points your product solves. AI generates helpful, contextual replies that naturally mention your solution. Keywords: ["struggling with email marketing", "need a better CRM", "project management nightmare"]

5. Autonomous Growth Agent Your agent monitors trending topics via external APIs, detects relevant conversations, and automatically creates Communiply campaigns. Users earn credits by participating, creating a self-sustaining growth flywheel. Architecture: Cron job → Trend detection → POST /campaigns → POST /generate-posts → Community executes

How to Run a Discover Campaign (Agent Interaction Guide)

Step 1: Gather requirements from the user. Ask for:

  • Product: What product are you promoting? (Get product_id from ProductClank)
  • Campaign goal: What do you want to achieve? (e.g., "Launch week buzz", "Competitor intercept")
  • Target keywords: What topics should we monitor? (e.g., ["AI tools", "productivity apps"])
  • Search context: Describe the conversations to target (e.g., "People discussing AI productivity tools and automation")

Optional refinements to ask about:

  • Who posts replies: Brand (first-person: "We built this") or community (third-party: "Check out @brand")? Default: community
  • Mention accounts: Twitter handles to reference naturally (e.g., ["@productclank"])
  • Reply style: Tone tags (e.g., ["friendly", "technical", "casual"])
  • Reply length: "very-short" | "short" | "medium" | "long" | "mixed"
  • Custom guidelines: Specific instructions for AI reply generation (brand voice, do's and don'ts)
  • Filters: min_follower_count (default 100), max_post_age_days, require_verified

Step 2: Confirm product selection (see Confirm Product Selection)

Step 3: Create the campaignPOST /agents/campaigns

Step 4: Run research (recommended, free)POST /agents/campaigns/{id}/research This expands keywords and finds influencers. Results are automatically used during post generation.

Step 5: Generate postsPOST /agents/campaigns/{id}/generate-posts

Step 6: Share results with user:

  • Campaign dashboard URL
  • Number of posts discovered and replies generated
  • Credits used and remaining
  • Next steps: community members will claim and execute replies

Custom Reply Guidelines

Instead of auto-generated guidelines, provide custom instructions for more control:

{
  "reply_guidelines": "Reply as a developer who has used our product for 6+ months.\nFocus on: ease of integration, excellent documentation, responsive support.\nAvoid: marketing speak, over-promising, comparing to competitors directly.\nMention @productclank naturally when relevant.\nInclude our website (https://productclank.com) if it adds value."
}

Complete Discover Example

// User says: "I want to create a Twitter campaign for my DeFi app launch"
const API = "https://app.productclank.com/api/v1/agents";
const headers = {
  "Authorization": `Bearer ${process.env.PRODUCTCLANK_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Search for the product
const search = await fetch(`${API}/products/search?q=MyDeFiApp&limit=5`, { headers });
const { products } = await search.json();
// → Confirm with user: "I found MyDeFiApp. Is this correct?"

// 2. Create campaign (10 credits)
const campaign = await fetch(`${API}/campaigns`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    product_id: products[0].id,
    title: "DeFi App Launch Week",
    keywords: ["DeFi platforms", "yield farming", "decentralized finance", "crypto staking"],
    search_context: "People discussing DeFi platforms, yield farming strategies, and crypto staking opportunities",
    mention_accounts: ["@mydefiapp"],
    reply_style_tags: ["professional", "technical", "helpful"],
    reply_length: "short",
    min_follower_count: 1000,
    max_post_age_days: 3,
  }),
}).then(r => r.json());

console.log(`✅ Campaign created: ${campaign.campaign.campaign_number}`);
console.log(`📊 Dashboard: ${campaign.campaign.url}`);

// 3. Run research (free — improves targeting)
await fetch(`${API}/campaigns/${campaign.campaign.id}/research`, {
  method: "POST",
  headers,
  body: JSON.stringify({ force: false }),
}).then(r => r.json());

// 4. Generate posts (12 credits/post)
const posts = await fetch(`${API}/campaigns/${campaign.campaign.id}/generate-posts`, {
  method: "POST",
  headers,
  body: JSON.stringify({}),
}).then(r => r.json());

console.log(`✅ Generated ${posts.posts_created} posts`);
console.log(`💰 Credits used: ${campaign.credits.credits_used + posts.credits_used}`);
console.log(`💰 Credits remaining: ${posts.credits_remaining}`);

// 5. Optional: review and regenerate
const postsData = await fetch(
  `${API}/campaigns/${campaign.campaign.id}/posts?include_replies=true`,
  { headers }
).then(r => r.json());

// Regenerate specific replies with new instructions
await fetch(`${API}/campaigns/${campaign.campaign.id}/regenerate-replies`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    post_ids: [postsData.posts[0].id],
    edit_request: "Make the replies shorter and more casual. Don't mention the product name directly.",
  }),
}).then(r => r.json());

Required Fields

FieldTypeDescription
product_idUUIDProduct on ProductClank
titlestringCampaign title
keywordsstring[]Non-empty array of target keywords
search_contextstringDescription of target conversations

Optional Fields

FieldTypeDefaultDescription
mention_accountsstring[][]Handles to mention naturally
reply_style_tagsstring[][]Tone tags (friendly, technical, etc.)
reply_style_accountstringHandle to mimic style
reply_lengthenumvery-short, short, medium, long, mixed
reply_posted_byenumcommunitycommunity or brand
reply_guidelinesstringautoCustom AI generation instructions
min_follower_countnumber100Min followers filter
min_engagement_countnumberMin engagement filter
max_post_age_daysnumberMax post age filter
require_verifiedbooleanfalseVerified accounts only

Choosing Between Boost and Discover

QuestionBoostDiscover
Do you have a post URL?Yes — your own post you want community to engage withNo
Platforms?Twitter, Instagram, TikTok, LinkedIn, Reddit, FarcasterTwitter only
Time to value?~30 seconds~5 minutes
Setup complexity?1 API call2-3 API calls
Best for?Rally community around your post (replies, likes, reposts)Finding & joining new conversations about your topic
Ongoing?One-time per postCan generate multiple batches
Credits?Fixed (200-300)Variable (10 + 12/post)

Rule of thumb: If the user has a specific post they want community to rally behind → Boost. If the user wants to find and join conversations about their product's topic → Discover.


Agent Setup

1. Autonomous Agent (self-funded)

// Self-register — no auth required
const res = await fetch("https://app.productclank.com/api/v1/agents/register", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "MyAgent" }),
});
const { api_key, credits } = await res.json();
// → API key returned once (store securely)
// → 300 free credits to start

Top up credits via USDC on Base:

POST /api/v1/agents/credits/topup

2. Owner-Linked Agent (user-funded)

After registering, link to a ProductClank account:

// Generate a linking URL
const linkRes = await fetch("https://app.productclank.com/api/v1/agents/create-link", {
  method: "POST",
  headers: { "Authorization": `Bearer ${api_key}` },
});
const { link_url } = await linkRes.json();
// Show link_url to user — they click it, log in, agent is linked

The agent then uses the user's credit balance for all operations.

3. Trusted Agent (multi-tenant) — Coming Soon

For platform agents serving multiple users. Each user authenticates, agent bills per-user via caller_user_id. Contact ProductClank for trusted agent status.


Confirm Product Selection (REQUIRED)

Before creating any campaign (Boost or Discover), you MUST confirm the product with the user:

  1. Search: GET /api/v1/agents/products/search?q=<name>&limit=5
  2. Present results: "I found [Product Name] (product_id: ...). Is this correct?"
  3. Wait for confirmation before proceeding.

Do NOT skip this step.


Campaign Delegates

Add users as delegators so they can manage campaigns in the webapp:

POST /api/v1/agents/campaigns/{id}/delegates
{ "user_id": "user-uuid" }

When using caller_user_id (trusted agents), the billing user is auto-added as a delegator.


Additional Endpoints

EndpointMethodCostDescription
/agents/registerPOSTFreeRegister agent, get API key
/agents/meGETFreeAgent profile + credit balance
/agents/create-linkPOSTFreeGenerate account linking URL
/agents/rotate-keyPOSTFreeRotate API key
/agents/campaignsGETFreeList campaigns
/agents/campaigns/{id}GETFreeCampaign details + stats
/agents/campaigns/{id}/postsGETFreeRead posts + replies
/agents/campaigns/{id}/researchGETFreeRead cached research
/agents/credits/balanceGETFreeCredit balance
/agents/credits/historyGETFreeTransaction history
/agents/products/searchGETFreeSearch products

For complete API reference, see references/API_REFERENCE.md.


Best Practices

For Boost

  • Use reply_guidelines to control the tone and focus of generated replies
  • Boost works best on posts less than 48 hours old
  • You can boost the same post multiple times with different action types
  • For non-Twitter platforms, pass post_text to ensure reliable reply generation
  • AI replies are automatically tuned to each platform's character limits and tone conventions

For Discover

  • Be specific with keywords: ["AI productivity tools"] > ["AI"]
  • Use 3-7 keywords for the best discovery quality
  • Run research first (free) — it significantly improves targeting
  • Set max_post_age_days to 3-7 for timely engagement
  • Provide reply guidelines with brand voice, key value props, and boundaries

General

  • Direct users to the dashboard after campaign creation: https://app.productclank.com/communiply/{id}
  • Add users as delegators so they can manage campaigns in the webapp
  • New accounts get 300 free credits (~$30 value)

Error Handling

StatusErrorFix
400validation_errorCheck required fields
401unauthorizedVerify API key starts with pck_live_
402insufficient_creditsTop up via webapp or /credits/topup
403forbiddenCheck campaign ownership or trusted agent status
404not_foundVerify product/campaign ID
429rate_limit_exceededWait until next day (10 campaigns/day default)

Coming Soon

Growth Boost — Community members create original content based on your campaign brief. Define your goals, target audience, and messaging — your community produces authentic posts, threads, and videos across any platform. API coming soon.


Support

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

fosun-skills-setup-guide

复星财富 OpenAPI 技能集(fosun-skills)的安装引导与安全提示说明。当用户首次安装 fosun-skills、或对 ClawHub 安装过程中的安全风险提示有疑问时使用。

Archived SourceRecently Updated
General

media-compress

Compress and convert images and videos using ffmpeg. Use when the user wants to reduce file size, change format, resize, or optimize media files. Handles common formats like JPG, PNG, WebP, MP4, MOV, WebM. Triggers on phrases like "compress image", "compress video", "reduce file size", "convert to webp/mp4", "resize image", "make image smaller", "batch compress", "optimize media".

Archived SourceRecently Updated
General

humanizer

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

Archived SourceRecently Updated
General

Drawing

Generate children's drawings and coloring pages with modular prompts, style packs, and print-ready constraints across image models.

Archived SourceRecently Updated