[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EP3THVWRWXTGZHTHDQ1ZRW":3,"skill-same:01M6EP3THVWRWXTGZHTHDQ1ZRW":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6EP3THVWRWXTGZHTHDQ1ZRW","content-agent",null,"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.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcleanexpo\u002Fcontent-agent\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42],"content","content agent","data","marketing","quality","history","proposals","claude ai","hub","case studies","generation","emails","interaction","case","2026-11-10 10:12:30",false,"---\nname: content-agent\ndescription: 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.\n---\n\n# Content Generation Agent Skill\n\n## Overview\nThe Content Agent creates personalized, high-converting marketing content by:\n1. Reading contact profiles and interaction history\n2. Analyzing engagement patterns and sentiment\n3. Generating contextually relevant content using Claude\n4. Storing drafts for human review\u002Fapproval\n5. Tracking performance metrics\n\n## Content Types\n\n### 1. Followup Email\n**When to generate:**\n- Contact received email 7+ days ago (nextFollowUp date passed)\n- Status is \"lead\" or \"prospect\"\n- AI score > 60 (engaged)\n\n**Context to include:**\n- Reference their last interaction\n- Mention their company\u002Findustry\n- Highlight relevant case study or service\n- Include clear CTA\n\n**Example prompt:**\n```\nGenerate a professional followup email for:\n- Name: John Smith\n- Company: TechStartup Inc\n- Job Title: CEO\n- Last interaction: \"Interested in Q4 marketing services\"\n- Sentiment: positive\n- Industry: Technology\n\nThe email should:\n1. Reference their interest in partnership\n2. Mention 1 specific success story relevant to tech startups\n3. Propose a 15-minute strategy call\n4. Be warm but professional\n5. Keep under 150 words\n```\n\n### 2. Proposal Email\n**When to generate:**\n- Contact has shown high engagement (AI score > 80)\n- Status is \"prospect\"\n- Multiple positive interactions\n\n**Context to include:**\n- Personalized value proposition\n- Estimated ROI\u002Fresults\n- Timeline and deliverables\n- Investment\u002Fpricing range\n- Next steps\n\n**Example prompt:**\n```\nGenerate a proposal email for:\n- Name: Lisa Johnson\n- Company: eCommerce Solutions\n- Pain point: \"Revamping marketing strategy\"\n- Budget indicator: Mid-market (medium budget)\n- Timeline: Q4 2024\n\nThe proposal should:\n1. Address their specific pain point\n2. Outline 3-4 key deliverables\n3. Mention expected metrics (e.g., \"35% revenue increase\")\n4. Suggest 60-day engagement\n5. Request a call to discuss\n```\n\n### 3. Case Study Reference\n**When to generate:**\n- Contact from specific industry\n- AI score indicates readiness\n- Relevant success story exists\n\n**Context to include:**\n- Similar company\u002Findustry case study\n- Key metrics and results\n- How it applies to their situation\n\n## How the Agent Works\n\n### Step 1: Identify Target Contacts\n\nQuery contacts where:\n```\nstatus = \"prospect\" OR \"lead\"\naiScore > 60\nnextFollowUp \u003C= NOW\n```\n\n### Step 2: For Each Contact\n\n**A. Load Contact History**\n```\nGET contact details\nGET contact's emails (interaction history)\nGET any previous generated content for this contact\n```\n\n**B. Build Context Object**\n```\n{\n  name: \"John Smith\",\n  company: \"TechStartup Inc\",\n  jobTitle: \"CEO\",\n  industry: \"Technology\",\n  aiScore: 78,\n  sentiment: \"positive\",\n  lastInteraction: \"Interested in Q4 partnership\",\n  emailsSent: 2,\n  engagementDays: 15,\n  hasProposalBefore: false\n}\n```\n\n**C. Determine Content Type**\n\nLogic:\n```\nIF aiScore > 80 AND !hasProposalBefore\n  → Generate \"proposal\"\nELSE IF aiScore > 60 AND lastInteraction > 7 days ago\n  → Generate \"followup\"\nELSE IF industry has matching case study\n  → Generate \"case_study_reference\"\nELSE\n  → Generate \"general_followup\"\n```\n\n**D. Build Claude Prompt**\n\nTemplate:\n```\nYou are a professional B2B marketing copywriter for a marketing agency.\n\nGenerate a [CONTENT_TYPE] email for:\n- Name: [NAME]\n- Company: [COMPANY]\n- Job Title: [JOB_TITLE]\n- Industry: [INDUSTRY]\n- Last interaction: [LAST_INTERACTION]\n- Sentiment of previous emails: [SENTIMENT]\n- Our success with similar companies: [CASE_STUDY_BRIEF]\n\nRequirements:\n1. Personalized to their specific situation\n2. Reference their industry\u002Fcompany when possible\n3. Include specific, measurable outcomes (if proposal)\n4. Professional but warm tone\n5. Clear call-to-action\n6. [TYPE_SPECIFIC_REQUIREMENTS]\n\nKeep under [WORD_LIMIT] words.\n\nGenerate the email body only (no \"Subject:\" or greeting).\n```\n\n**E. Call Claude API**\n```\nPOST https:\u002F\u002Fapi.anthropic.com\u002Fv1\u002Fmessages\n\n{\n  \"model\": \"claude-sonnet-4-5-20250929\",\n  \"max_tokens\": 1000,\n  \"system\": \"You are an expert B2B marketing copywriter...\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"[BUILT_PROMPT]\"\n    }\n  ]\n}\n```\n\n**F. Parse Response**\n\nExtract text from response:\n```\nresponse.content[0].text\n```\n\n**G. Store as Draft**\n\nCall Convex mutation:\n```\nPOST convex mutation content.store({\n  orgId: \"...\",\n  workspaceId: \"...\",\n  contactId: \"[CONTACT_ID]\",\n  contentType: \"[TYPE]\",\n  title: \"[AUTO_GENERATED_TITLE]\",\n  prompt: \"[USED_PROMPT]\",\n  text: \"[CLAUDE_RESPONSE]\",\n  aiModel: \"sonnet\",\n  htmlVersion: null \u002F\u002F Optional HTML formatting\n})\n```\n\n**H. Log Audit Event**\n```\nPOST convex mutation system.logAudit({\n  orgId: \"...\",\n  action: \"content_generated\",\n  resource: \"generatedContent\",\n  agent: \"content-agent\",\n  details: {\n    contactId: \"...\",\n    contentType: \"[TYPE]\",\n    aiScore: 78,\n    tokensUsed: 234\n  },\n  status: \"success\"\n})\n```\n\n### Step 3: Summary Report\n\nOutput:\n```\n✅ Content Generation Complete\n\nTotal generated: X\nFollowup emails: X\nProposals: X\nCase studies: X\nDrafts awaiting approval: X\n\nBy AI score:\n- High priority (>80): X contacts\n- Medium priority (60-80): X contacts\n\nSample generated content:\n- John Smith (TechStartup): Followup email\n- Lisa Johnson (eCommerce): Proposal\n\nNext steps:\n1. Review drafts in dashboard\n2. Approve\u002Fedit content\n3. Schedule for sending\n4. Track performance metrics\n```\n\n## Error Handling\n\nIf Claude API call fails:\n```\nLog audit event with status: \"error\"\nTry fallback: Use template-based content\nContinue to next contact\n```\n\nIf contact data incomplete:\n```\nSkip contact with warning\nLog as skipped in audit trail\n```\n\n## Performance Tracking\n\nAfter content is approved and sent:\n```\nTrack:\n- Opens (if integration available)\n- Clicks\n- Replies\n- Conversions\n\nUpdate generatedContent record with metrics:\n{\n  status: \"sent\",\n  sentAt: timestamp,\n  performanceMetrics: {\n    opens: 0,\n    clicks: 0,\n    replies: 0\n  }\n}\n```\n","# Content Generation Agent Skill\n\n## Overview\nThe Content Agent creates personalized, high-converting marketing content by:\n1. Reading contact profiles and interaction history\n2. Analyzing engagement patterns and sentiment\n3. Generating contextually relevant content using Claude\n4. Storing drafts for human review\u002Fapproval\n5. Tracking performance metrics\n\n## Content Types\n\n### 1. Followup Email\n**When to generate:**\n- Contact received email 7+ days ago (nextFollowUp date passed)\n- Status is \"lead\" or \"prospect\"\n- AI score > 60 (engaged)\n\n**Context to include:**\n- Reference their last interaction\n- Mention their company\u002Findustry\n- Highlight relevant case study or service\n- Include clear CTA\n\n**Example prompt:**\n```\nGenerate a professional followup email for:\n- Name: John Smith\n- Company: TechStartup Inc\n- Job Title: CEO\n- Last interaction: \"Interested in Q4 marketing services\"\n- Sentiment: positive\n- Industry: Technology\n\nThe email should:\n1. Reference their interest in partnership\n2. Mention 1 specific success story relevant to tech startups\n3. Propose a 15-minute strategy call\n4. Be warm but professional\n5. Keep under 150 words\n```\n\n### 2. Proposal Email\n**When to generate:**\n- Contact has shown high engagement (AI score > 80)\n- Status is \"prospect\"\n- Multiple positive interactions\n\n**Context to include:**\n- Personalized value proposition\n- Estimated ROI\u002Fresults\n- Timeline and deliverables\n- Investment\u002Fpricing range\n- Next steps\n\n**Example prompt:**\n```\nGenerate a proposal email for:\n- Name: Lisa Johnson\n- Company: eCommerce Solutions\n- Pain point: \"Revamping marketing strategy\"\n- Budget indicator: Mid-market (medium budget)\n- Timeline: Q4 2024\n\nThe proposal should:\n1. Address their specific pain point\n2. Outline 3-4 key deliverables\n3. Mention expected metrics (e.g., \"35% revenue increase\")\n4. Suggest 60-day engagement\n5. Request a call to discuss\n```\n\n### 3. Case Study Reference\n**When to generate:**\n- Contact from specific industry\n- AI score indicates readiness\n- Relevant success story exists\n\n**Context to include:**\n- Similar company\u002Findustry case study\n- Key metrics and results\n- How it applies to their situation\n\n## How the Agent Works\n\n### Step 1: Identify Target Contacts\n\nQuery contacts where:\n```\nstatus = \"prospect\" OR \"lead\"\naiScore > 60\nnextFollowUp \u003C= NOW\n```\n\n### Step 2: For Each Contact\n\n**A. Load Contact History**\n```\nGET contact details\nGET contact's emails (interaction history)\nGET any previous generated content for this contact\n```\n\n**B. Build Context Object**\n```\n{\n  name: \"John Smith\",\n  company: \"TechStartup Inc\",\n  jobTitle: \"CEO\",\n  industry: \"Technology\",\n  aiScore: 78,\n  sentiment: \"positive\",\n  lastInteraction: \"Interested in Q4 partnership\",\n  emailsSent: 2,\n  engagementDays: 15,\n  hasProposalBefore: false\n}\n```\n\n**C. Determine Content Type**\n\nLogic:\n```\nIF aiScore > 80 AND !hasProposalBefore\n  → Generate \"proposal\"\nELSE IF aiScore > 60 AND lastInteraction > 7 days ago\n  → Generate \"followup\"\nELSE IF industry has matching case study\n  → Generate \"case_study_reference\"\nELSE\n  → Generate \"general_followup\"\n```\n\n**D. Build Claude Prompt**\n\nTemplate:\n```\nYou are a professional B2B marketing copywriter for a marketing agency.\n\nGenerate a [CONTENT_TYPE] email for:\n- Name: [NAME]\n- Company: [COMPANY]\n- Job Title: [JOB_TITLE]\n- Industry: [INDUSTRY]\n- Last interaction: [LAST_INTERACTION]\n- Sentiment of previous emails: [SENTIMENT]\n- Our success with similar companies: [CASE_STUDY_BRIEF]\n\nRequirements:\n1. Personalized to their specific situation\n2. Reference their industry\u002Fcompany when possible\n3. Include specific, measurable outcomes (if proposal)\n4. Professional but warm tone\n5. Clear call-to-action\n6. [TYPE_SPECIFIC_REQUIREMENTS]\n\nKeep under [WORD_LIMIT] words.\n\nGenerate the email body only (no \"Subject:\" or greeting).\n```\n\n**E. Call Claude API**\n```\nPOST https:\u002F\u002Fapi.anthropic.com\u002Fv1\u002Fmessages\n\n{\n  \"model\": \"claude-sonnet-4-5-20250929\",\n  \"max_tokens\": 1000,\n  \"system\": \"You are an expert B2B marketing copywriter...\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"[BUILT_PROMPT]\"\n    }\n  ]\n}\n```\n\n**F. Parse Response**\n\nExtract text from response:\n```\nresponse.content[0].text\n```\n\n**G. Store as Draft**\n\nCall Convex mutation:\n```\nPOST convex mutation content.store({\n  orgId: \"...\",\n  workspaceId: \"...\",\n  contactId: \"[CONTACT_ID]\",\n  contentType: \"[TYPE]\",\n  title: \"[AUTO_GENERATED_TITLE]\",\n  prompt: \"[USED_PROMPT]\",\n  text: \"[CLAUDE_RESPONSE]\",\n  aiModel: \"sonnet\",\n  htmlVersion: null \u002F\u002F Optional HTML formatting\n})\n```\n\n**H. Log Audit Event**\n```\nPOST convex mutation system.logAudit({\n  orgId: \"...\",\n  action: \"content_generated\",\n  resource: \"generatedContent\",\n  agent: \"content-agent\",\n  details: {\n    contactId: \"...\",\n    contentType: \"[TYPE]\",\n    aiScore: 78,\n    tokensUsed: 234\n  },\n  status: \"success\"\n})\n```\n\n### Step 3: Summary Report\n\nOutput:\n```\n✅ Content Generation Complete\n\nTotal generated: X\nFollowup emails: X\nProposals: X\nCase studies: X\nDrafts awaiting approval: X\n\nBy AI score:\n- High priority (>80): X contacts\n- Medium priority (60-80): X contacts\n\nSample generated content:\n- John Smith (TechStartup): Followup email\n- Lisa Johnson (eCommerce): Proposal\n\nNext steps:\n1. Review drafts in dashboard\n2. Approve\u002Fedit content\n3. Schedule for sending\n4. Track performance metrics\n```\n\n## Error Handling\n\nIf Claude API call fails:\n```\nLog audit event with status: \"error\"\nTry fallback: Use template-based content\nContinue to next contact\n```\n\nIf contact data incomplete:\n```\nSkip contact with warning\nLog as skipped in audit trail\n```\n\n## Performance Tracking\n\nAfter content is approved and sent:\n```\nTrack:\n- Opens (if integration available)\n- Clicks\n- Replies\n- Conversions\n\nUpdate generatedContent record with metrics:\n{\n  status: \"sent\",\n  sentAt: timestamp,\n  performanceMetrics: {\n    opens: 0,\n    clicks: 0,\n    replies: 0\n  }\n}\n```\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fcleanexpo\u002Fcontent-agent",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill content-agent",{"tool":63,"command":64},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill content-agent",{"tool":66,"command":67},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill content-agent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcleanexpo\u002Fcontent-agent\u002FSKILL.md",true,[71],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"skill-report.json","REFERENCE","参考文档",12977,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcleanexpo\u002Fcontent-agent\u002Fskill-report.json",[78,88,98,107,113,120],{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":84,"publishedAt":43},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[83],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[85,86,87],"model","model hierarchy","model hierarchy skill",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":43},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[93],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[95,96,97],"MCP","zoom","zoom mcp",{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":43},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[104,105,106,96],"sdk","zoom apps sdk","apps",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":43},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[109],{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":43},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[118],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[115],{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":43},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[122]]