Agent skill

content-agent

Generates personalized marketing content for Unite-Hub. Creates followup emails, proposals, and case studies based on contact data and interaction history. Uses Claude AI for high-quality, contextual content generation.

Stars 232
Forks 15

Install this agent skill to your Project

npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/cleanexpo/content-agent

SKILL.md

Content Generation Agent Skill

Overview

The Content Agent creates personalized, high-converting marketing content by:

  1. Reading contact profiles and interaction history
  2. Analyzing engagement patterns and sentiment
  3. Generating contextually relevant content using Claude
  4. Storing drafts for human review/approval
  5. Tracking performance metrics

Content Types

1. Followup Email

When to generate:

  • Contact received email 7+ days ago (nextFollowUp date passed)
  • Status is "lead" or "prospect"
  • AI score > 60 (engaged)

Context to include:

  • Reference their last interaction
  • Mention their company/industry
  • Highlight relevant case study or service
  • Include clear CTA

Example prompt:

Generate a professional followup email for:
- Name: John Smith
- Company: TechStartup Inc
- Job Title: CEO
- Last interaction: "Interested in Q4 marketing services"
- Sentiment: positive
- Industry: Technology

The email should:
1. Reference their interest in partnership
2. Mention 1 specific success story relevant to tech startups
3. Propose a 15-minute strategy call
4. Be warm but professional
5. Keep under 150 words

2. Proposal Email

When to generate:

  • Contact has shown high engagement (AI score > 80)
  • Status is "prospect"
  • Multiple positive interactions

Context to include:

  • Personalized value proposition
  • Estimated ROI/results
  • Timeline and deliverables
  • Investment/pricing range
  • Next steps

Example prompt:

Generate a proposal email for:
- Name: Lisa Johnson
- Company: eCommerce Solutions
- Pain point: "Revamping marketing strategy"
- Budget indicator: Mid-market (medium budget)
- Timeline: Q4 2024

The proposal should:
1. Address their specific pain point
2. Outline 3-4 key deliverables
3. Mention expected metrics (e.g., "35% revenue increase")
4. Suggest 60-day engagement
5. Request a call to discuss

3. Case Study Reference

When to generate:

  • Contact from specific industry
  • AI score indicates readiness
  • Relevant success story exists

Context to include:

  • Similar company/industry case study
  • Key metrics and results
  • How it applies to their situation

How the Agent Works

Step 1: Identify Target Contacts

Query contacts where:

status = "prospect" OR "lead"
aiScore > 60
nextFollowUp <= NOW

Step 2: For Each Contact

A. Load Contact History

GET contact details
GET contact's emails (interaction history)
GET any previous generated content for this contact

B. Build Context Object

{
  name: "John Smith",
  company: "TechStartup Inc",
  jobTitle: "CEO",
  industry: "Technology",
  aiScore: 78,
  sentiment: "positive",
  lastInteraction: "Interested in Q4 partnership",
  emailsSent: 2,
  engagementDays: 15,
  hasProposalBefore: false
}

C. Determine Content Type

Logic:

IF aiScore > 80 AND !hasProposalBefore
  → Generate "proposal"
ELSE IF aiScore > 60 AND lastInteraction > 7 days ago
  → Generate "followup"
ELSE IF industry has matching case study
  → Generate "case_study_reference"
ELSE
  → Generate "general_followup"

D. Build Claude Prompt

Template:

You are a professional B2B marketing copywriter for a marketing agency.

Generate a [CONTENT_TYPE] email for:
- Name: [NAME]
- Company: [COMPANY]
- Job Title: [JOB_TITLE]
- Industry: [INDUSTRY]
- Last interaction: [LAST_INTERACTION]
- Sentiment of previous emails: [SENTIMENT]
- Our success with similar companies: [CASE_STUDY_BRIEF]

Requirements:
1. Personalized to their specific situation
2. Reference their industry/company when possible
3. Include specific, measurable outcomes (if proposal)
4. Professional but warm tone
5. Clear call-to-action
6. [TYPE_SPECIFIC_REQUIREMENTS]

Keep under [WORD_LIMIT] words.

Generate the email body only (no "Subject:" or greeting).

E. Call Claude API

POST https://api.anthropic.com/v1/messages

{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 1000,
  "system": "You are an expert B2B marketing copywriter...",
  "messages": [
    {
      "role": "user",
      "content": "[BUILT_PROMPT]"
    }
  ]
}

F. Parse Response

Extract text from response:

response.content[0].text

G. Store as Draft

Call Convex mutation:

POST convex mutation content.store({
  orgId: "...",
  workspaceId: "...",
  contactId: "[CONTACT_ID]",
  contentType: "[TYPE]",
  title: "[AUTO_GENERATED_TITLE]",
  prompt: "[USED_PROMPT]",
  text: "[CLAUDE_RESPONSE]",
  aiModel: "sonnet",
  htmlVersion: null // Optional HTML formatting
})

H. Log Audit Event

POST convex mutation system.logAudit({
  orgId: "...",
  action: "content_generated",
  resource: "generatedContent",
  agent: "content-agent",
  details: {
    contactId: "...",
    contentType: "[TYPE]",
    aiScore: 78,
    tokensUsed: 234
  },
  status: "success"
})

Step 3: Summary Report

Output:

✅ Content Generation Complete

Total generated: X
Followup emails: X
Proposals: X
Case studies: X
Drafts awaiting approval: X

By AI score:
- High priority (>80): X contacts
- Medium priority (60-80): X contacts

Sample generated content:
- John Smith (TechStartup): Followup email
- Lisa Johnson (eCommerce): Proposal

Next steps:
1. Review drafts in dashboard
2. Approve/edit content
3. Schedule for sending
4. Track performance metrics

Error Handling

If Claude API call fails:

Log audit event with status: "error"
Try fallback: Use template-based content
Continue to next contact

If contact data incomplete:

Skip contact with warning
Log as skipped in audit trail

Performance Tracking

After content is approved and sent:

Track:
- Opens (if integration available)
- Clicks
- Replies
- Conversions

Update generatedContent record with metrics:
{
  status: "sent",
  sentAt: timestamp,
  performanceMetrics: {
    opens: 0,
    clicks: 0,
    replies: 0
  }
}

Expand your agent's capabilities with these related and highly-rated skills.

aiskillstore/marketplace

perigon-backend

Perigon ASP.NET Core + EF Core + Aspire conventions

232 15
Explore
aiskillstore/marketplace

perigon-agent

Pointers for Copilot/agents to apply Perigon conventions

232 15
Explore
aiskillstore/marketplace

perigon-angular

Angular 21+ standalone/Material/signal conventions for Perigon WebApp

232 15
Explore
aiskillstore/marketplace

fastapi-mastery

Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.

232 15
Explore
aiskillstore/marketplace

context7-efficient

Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

232 15
Explore
aiskillstore/marketplace

browser-use

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.

232 15
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results