{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cold-outreach-skill",
    "name": "Cold Outreach Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/h4gen/cold-outreach-skill",
    "canonicalUrl": "https://clawhub.ai/h4gen/cold-outreach-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cold-outreach-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cold-outreach-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/inspected-skills.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cold-outreach-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/cold-outreach-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Purpose",
        "body": "Run a full B2B cold outreach workflow from ICP definition to sequence-ready output.\n\nPrimary objective:\n\nIdentify high-fit leads.\nEnrich context for personalization.\nProduce concise, non-salesy, high-response outreach sequences.\nReturn execution-ready assets for external sending/scheduling systems.\n\nThis is an orchestration skill. It coordinates upstream skills; it does not replace them."
      },
      {
        "title": "Required Installed Skills",
        "body": "apollo-api (inspected latest: 1.0.5)\nlinkedin-api (inspected latest: 1.0.2)\nyc-cold-outreach (inspected latest: 1.0.1)\ncold-email (MachFive Cold Email, inspected latest: 1.0.5)\n\nInstall/update with ClawHub:\n\nnpx -y clawhub@latest install apollo-api\nnpx -y clawhub@latest install linkedin-api\nnpx -y clawhub@latest install yc-cold-outreach\nnpx -y clawhub@latest install cold-email\nnpx -y clawhub@latest update --all\n\nVerify availability:\n\nnpx -y clawhub@latest list\n\nIf any required skill is missing, stop and report exact install commands."
      },
      {
        "title": "Required Credentials",
        "body": "MATON_API_KEY for apollo-api and linkedin-api (Maton gateway)\nMACHFIVE_API_KEY for cold-email\n\nPreflight checks:\n\necho \"$MATON_API_KEY\" | wc -c\necho \"$MACHFIVE_API_KEY\" | wc -c\n\nIf either key is missing or empty, stop before lead processing."
      },
      {
        "title": "Job Context Template",
        "body": "Collect these inputs before execution:\n\noffer: what is being sold (example: design service)\nicp_title: target role (example: CMO)\nicp_industry: target industry (example: SaaS)\nicp_location: target location (example: Berlin)\nlead_count_target (example: 50)\ncampaign_goal: reply, meeting, referral, audit request, etc.\nproof_points: case studies, metrics, social proof\ntone_constraints: plain-English, short, non-salesy\nmachfive_campaign (campaign ID or campaign name to resolve)\nexecution_mode: draft-only or generation-ready\n\nDo not start writing copy until these are explicit."
      },
      {
        "title": "Apollo API (apollo-api)",
        "body": "Use for lead discovery and basic enrichment.\n\nOperationally relevant behavior from inspected skill:\n\nSearch people: POST /apollo/v1/mixed_people/api_search\nSearch filters include:\n\nq_person_title\nperson_locations\nq_organization_name\nq_keywords\n\n\nEnrich person by email or LinkedIn URL:\n\nPOST /apollo/v1/people/match\n\n\nSupports pagination via page and per_page.\nUses Maton gateway and optional Maton-Connection header.\n\nPrimary output of this stage:\n\ninitial lead list with role/company/email/linkedin_url (when available)"
      },
      {
        "title": "LinkedIn API (linkedin-api)",
        "body": "Use for LinkedIn-side context where accessible through provided endpoints.\n\nOperationally relevant behavior from inspected skill:\n\nAuthenticated profile/user info endpoints (for connected account context).\nContent/posting APIs (ugcPosts) and organization post/stat APIs.\nRequires MATON_API_KEY and LinkedIn protocol headers.\n\nImportant boundary:\n\nThe inspected skill is not a generic scraper for arbitrary third-party personal profiles and recent personal posts.\nIf a workflow requires deep per-lead personal-post enrichment, mark that as additional-tool-required."
      },
      {
        "title": "YC Cold Outreach (yc-cold-outreach)",
        "body": "Use as writing strategy/critique framework, not as a transport API.\n\nCore principles to enforce:\n\nsingle goal per email\nhuman tone\ndeep personalization (not just token replacement)\nbrevity/mobile readability\ncredibility and proof\nreader-centric language\nclear CTA"
      },
      {
        "title": "MachFive Cold Email (cold-email)",
        "body": "Use for sequence generation from prepared lead records.\n\nOperationally relevant behavior from inspected skill:\n\nCampaign required (campaign_id mandatory for generate endpoints).\nSingle lead sync generation (/generate) can take minutes; use long timeout.\nBatch async generation (/generate-batch) returns list_id; poll list status; export when complete.\nLead email is required.\nSupports structured sequence output with subject/body per step."
      },
      {
        "title": "Stage 1: Build lead universe (Apollo)",
        "body": "Query Apollo for ICP-constrained leads (example: CMO + SaaS + Berlin).\nPage until lead_count_target or quality threshold is reached.\nNormalize each lead record to required fields.\nDrop records without email if generation-ready mode is requested (MachFive requires email).\n\nRecommended normalized lead schema:\n\n{\n  \"lead_id\": \"apollo-or-derived-id\",\n  \"name\": \"Anna Example\",\n  \"title\": \"Chief Marketing Officer\",\n  \"company\": \"Startup GmbH\",\n  \"location\": \"Berlin\",\n  \"email\": \"anna@startup.com\",\n  \"linkedin_url\": \"https://linkedin.com/in/...\",\n  \"source\": \"apollo-api\"\n}"
      },
      {
        "title": "Stage 2: Enrich personalization context",
        "body": "Attempt LinkedIn/API enrichment within supported endpoints.\nIf direct personal-post signal is unavailable, keep the context slot explicit as not_available.\nOptionally enrich from Apollo fields (company, role, keywords, domain context) to avoid fake personalization.\n\nPersonalization object per lead:\n\n{\n  \"icebreaker\": \"not_available_or_verified_fact\",\n  \"pain_hypothesis\": \"Likely CRO bottleneck in paid landing pages\",\n  \"proof_hook\": \"Helped X improve conversion by Y%\",\n  \"confidence\": 0.0\n}\n\nHard rule:\n\nNever invent a post, interest, or quote."
      },
      {
        "title": "Stage 3: Message strategy (YC framework)",
        "body": "For each lead, create a strategy brief before generating copy:\n\nProblem: what specific pain this role likely has\nSolution: what your offer solves\nProof: one concrete metric/client signal\nCTA: one low-friction next step\n\nApply YC constraints:\n\none ask\nshort/mobile-first\nhuman language\npersonalization grounded in verifiable context"
      },
      {
        "title": "Stage 4: Sequence generation (MachFive)",
        "body": "Resolve campaign ID first (GET /api/v1/campaigns) if not provided.\nSubmit leads with required email field.\nPrefer batch for many leads; poll until completion.\nExport JSON result and map sequences back to lead IDs.\n\nRequired generation payload hygiene:\n\ninclude name, title, company, email\ninclude linkedin_url and company_website when available\nset email_count intentionally (usually 3)\nuse approved CTA set aligned with campaign goal"
      },
      {
        "title": "Stage 5: QA and decision gate",
        "body": "Before declaring output ready, validate each sequence:\n\npersonalization factuality check\nYC rubric check (human, concise, one CTA)\ntoken insertion sanity (name/company/title correct)\nprohibited claims check (no fabricated proof)\n\nAny failed sequence must be flagged needs_revision."
      },
      {
        "title": "Stage 6: Scheduling and send handoff",
        "body": "This meta-skill outputs send-ready recommendations, not direct send automation.\n\nIf user asks for timing optimization (for example Tuesday 10:00), return it as a scheduling recommendation field and handoff plan.\n\nExample handoff object:\n\n{\n  \"lead_id\": \"...\",\n  \"sequence_status\": \"approved\",\n  \"suggested_send_time_local\": \"Tuesday 10:00\",\n  \"timezone\": \"Europe/Berlin\",\n  \"send_system\": \"external\",\n  \"notes\": \"Timing is recommendation-only; execution tool must schedule/send.\"\n}"
      },
      {
        "title": "Causal Chain (Scenario Mapping)",
        "body": "For the scenario \"sell design services to startup marketing leaders\":\n\nApollo returns target leads (example target: 50 CMOs in Berlin SaaS).\nLinkedIn/API enrichment attempts to add usable context per lead.\nYC framework converts lead context into a concise Problem → Solution → Proof → CTA angle.\nMachFive generates multi-step sequences with validated variables.\nAgent outputs:\n\napproved sequences\nquality score per lead\nscheduling recommendation (example: Tuesday 10:00 local)"
      },
      {
        "title": "Output Contract",
        "body": "Always return these sections:\n\nLeadSummary\n\nrequested vs qualified lead count\nrejection reasons (missing email, poor fit, duplicate)\n\n\n\nEnrichmentSummary\n\nfields successfully enriched\nunavailable fields and why\n\n\n\nSequencePackage\n\none object per lead with subjects/bodies by step\nQA status (approved or needs_revision)\n\n\n\nExecutionPlan\n\nsend-time recommendation\nrequired external sender/scheduler\nblockers (missing campaign, missing API key, missing email)"
      },
      {
        "title": "Guardrails",
        "body": "Never fabricate personalization facts.\nNever claim a lead posted something unless sourced and verifiable.\nDo not proceed to MachFive generation without campaign ID resolution.\nDo not mark sequence approved when CTA is unclear or multiple asks exist.\nKeep language non-manipulative and compliant with outreach policies."
      },
      {
        "title": "Failure Handling",
        "body": "Missing MATON_API_KEY: stop Apollo/LinkedIn stages.\nMissing MACHFIVE_API_KEY: stop generation stage and return draft-only strategy.\nMissing campaign ID: list campaigns and request explicit selection.\nBatch timeout/partial output: continue via list status + export recovery flow.\nInsufficient lead quality: return reduced high-quality set instead of forcing volume."
      },
      {
        "title": "Known Limits from Inspected Upstream Skills",
        "body": "linkedin-api inspected capability set is not equivalent to unrestricted scraping of arbitrary personal lead activity.\ncold-email generates sequences but does not itself guarantee outbound send scheduling/execution.\napollo-api provides search/enrichment primitives; email deliverability validation beyond provider fields may require extra tooling.\n\nTreat these as explicit constraints in planning and reporting."
      }
    ],
    "body": "Purpose\n\nRun a full B2B cold outreach workflow from ICP definition to sequence-ready output.\n\nPrimary objective:\n\nIdentify high-fit leads.\nEnrich context for personalization.\nProduce concise, non-salesy, high-response outreach sequences.\nReturn execution-ready assets for external sending/scheduling systems.\n\nThis is an orchestration skill. It coordinates upstream skills; it does not replace them.\n\nRequired Installed Skills\napollo-api (inspected latest: 1.0.5)\nlinkedin-api (inspected latest: 1.0.2)\nyc-cold-outreach (inspected latest: 1.0.1)\ncold-email (MachFive Cold Email, inspected latest: 1.0.5)\n\nInstall/update with ClawHub:\n\nnpx -y clawhub@latest install apollo-api\nnpx -y clawhub@latest install linkedin-api\nnpx -y clawhub@latest install yc-cold-outreach\nnpx -y clawhub@latest install cold-email\nnpx -y clawhub@latest update --all\n\n\nVerify availability:\n\nnpx -y clawhub@latest list\n\n\nIf any required skill is missing, stop and report exact install commands.\n\nRequired Credentials\nMATON_API_KEY for apollo-api and linkedin-api (Maton gateway)\nMACHFIVE_API_KEY for cold-email\n\nPreflight checks:\n\necho \"$MATON_API_KEY\" | wc -c\necho \"$MACHFIVE_API_KEY\" | wc -c\n\n\nIf either key is missing or empty, stop before lead processing.\n\nJob Context Template\n\nCollect these inputs before execution:\n\noffer: what is being sold (example: design service)\nicp_title: target role (example: CMO)\nicp_industry: target industry (example: SaaS)\nicp_location: target location (example: Berlin)\nlead_count_target (example: 50)\ncampaign_goal: reply, meeting, referral, audit request, etc.\nproof_points: case studies, metrics, social proof\ntone_constraints: plain-English, short, non-salesy\nmachfive_campaign (campaign ID or campaign name to resolve)\nexecution_mode: draft-only or generation-ready\n\nDo not start writing copy until these are explicit.\n\nTool Responsibilities\nApollo API (apollo-api)\n\nUse for lead discovery and basic enrichment.\n\nOperationally relevant behavior from inspected skill:\n\nSearch people: POST /apollo/v1/mixed_people/api_search\nSearch filters include:\nq_person_title\nperson_locations\nq_organization_name\nq_keywords\nEnrich person by email or LinkedIn URL:\nPOST /apollo/v1/people/match\nSupports pagination via page and per_page.\nUses Maton gateway and optional Maton-Connection header.\n\nPrimary output of this stage:\n\ninitial lead list with role/company/email/linkedin_url (when available)\nLinkedIn API (linkedin-api)\n\nUse for LinkedIn-side context where accessible through provided endpoints.\n\nOperationally relevant behavior from inspected skill:\n\nAuthenticated profile/user info endpoints (for connected account context).\nContent/posting APIs (ugcPosts) and organization post/stat APIs.\nRequires MATON_API_KEY and LinkedIn protocol headers.\n\nImportant boundary:\n\nThe inspected skill is not a generic scraper for arbitrary third-party personal profiles and recent personal posts.\nIf a workflow requires deep per-lead personal-post enrichment, mark that as additional-tool-required.\nYC Cold Outreach (yc-cold-outreach)\n\nUse as writing strategy/critique framework, not as a transport API.\n\nCore principles to enforce:\n\nsingle goal per email\nhuman tone\ndeep personalization (not just token replacement)\nbrevity/mobile readability\ncredibility and proof\nreader-centric language\nclear CTA\nMachFive Cold Email (cold-email)\n\nUse for sequence generation from prepared lead records.\n\nOperationally relevant behavior from inspected skill:\n\nCampaign required (campaign_id mandatory for generate endpoints).\nSingle lead sync generation (/generate) can take minutes; use long timeout.\nBatch async generation (/generate-batch) returns list_id; poll list status; export when complete.\nLead email is required.\nSupports structured sequence output with subject/body per step.\nCanonical Workflow\nStage 1: Build lead universe (Apollo)\nQuery Apollo for ICP-constrained leads (example: CMO + SaaS + Berlin).\nPage until lead_count_target or quality threshold is reached.\nNormalize each lead record to required fields.\nDrop records without email if generation-ready mode is requested (MachFive requires email).\n\nRecommended normalized lead schema:\n\n{\n  \"lead_id\": \"apollo-or-derived-id\",\n  \"name\": \"Anna Example\",\n  \"title\": \"Chief Marketing Officer\",\n  \"company\": \"Startup GmbH\",\n  \"location\": \"Berlin\",\n  \"email\": \"anna@startup.com\",\n  \"linkedin_url\": \"https://linkedin.com/in/...\",\n  \"source\": \"apollo-api\"\n}\n\nStage 2: Enrich personalization context\nAttempt LinkedIn/API enrichment within supported endpoints.\nIf direct personal-post signal is unavailable, keep the context slot explicit as not_available.\nOptionally enrich from Apollo fields (company, role, keywords, domain context) to avoid fake personalization.\n\nPersonalization object per lead:\n\n{\n  \"icebreaker\": \"not_available_or_verified_fact\",\n  \"pain_hypothesis\": \"Likely CRO bottleneck in paid landing pages\",\n  \"proof_hook\": \"Helped X improve conversion by Y%\",\n  \"confidence\": 0.0\n}\n\n\nHard rule:\n\nNever invent a post, interest, or quote.\nStage 3: Message strategy (YC framework)\n\nFor each lead, create a strategy brief before generating copy:\n\nProblem: what specific pain this role likely has\nSolution: what your offer solves\nProof: one concrete metric/client signal\nCTA: one low-friction next step\n\nApply YC constraints:\n\none ask\nshort/mobile-first\nhuman language\npersonalization grounded in verifiable context\nStage 4: Sequence generation (MachFive)\nResolve campaign ID first (GET /api/v1/campaigns) if not provided.\nSubmit leads with required email field.\nPrefer batch for many leads; poll until completion.\nExport JSON result and map sequences back to lead IDs.\n\nRequired generation payload hygiene:\n\ninclude name, title, company, email\ninclude linkedin_url and company_website when available\nset email_count intentionally (usually 3)\nuse approved CTA set aligned with campaign goal\nStage 5: QA and decision gate\n\nBefore declaring output ready, validate each sequence:\n\npersonalization factuality check\nYC rubric check (human, concise, one CTA)\ntoken insertion sanity (name/company/title correct)\nprohibited claims check (no fabricated proof)\n\nAny failed sequence must be flagged needs_revision.\n\nStage 6: Scheduling and send handoff\n\nThis meta-skill outputs send-ready recommendations, not direct send automation.\n\nIf user asks for timing optimization (for example Tuesday 10:00), return it as a scheduling recommendation field and handoff plan.\n\nExample handoff object:\n\n{\n  \"lead_id\": \"...\",\n  \"sequence_status\": \"approved\",\n  \"suggested_send_time_local\": \"Tuesday 10:00\",\n  \"timezone\": \"Europe/Berlin\",\n  \"send_system\": \"external\",\n  \"notes\": \"Timing is recommendation-only; execution tool must schedule/send.\"\n}\n\nCausal Chain (Scenario Mapping)\n\nFor the scenario \"sell design services to startup marketing leaders\":\n\nApollo returns target leads (example target: 50 CMOs in Berlin SaaS).\nLinkedIn/API enrichment attempts to add usable context per lead.\nYC framework converts lead context into a concise Problem → Solution → Proof → CTA angle.\nMachFive generates multi-step sequences with validated variables.\nAgent outputs:\napproved sequences\nquality score per lead\nscheduling recommendation (example: Tuesday 10:00 local)\nOutput Contract\n\nAlways return these sections:\n\nLeadSummary\n\nrequested vs qualified lead count\nrejection reasons (missing email, poor fit, duplicate)\n\nEnrichmentSummary\n\nfields successfully enriched\nunavailable fields and why\n\nSequencePackage\n\none object per lead with subjects/bodies by step\nQA status (approved or needs_revision)\n\nExecutionPlan\n\nsend-time recommendation\nrequired external sender/scheduler\nblockers (missing campaign, missing API key, missing email)\nGuardrails\nNever fabricate personalization facts.\nNever claim a lead posted something unless sourced and verifiable.\nDo not proceed to MachFive generation without campaign ID resolution.\nDo not mark sequence approved when CTA is unclear or multiple asks exist.\nKeep language non-manipulative and compliant with outreach policies.\nFailure Handling\nMissing MATON_API_KEY: stop Apollo/LinkedIn stages.\nMissing MACHFIVE_API_KEY: stop generation stage and return draft-only strategy.\nMissing campaign ID: list campaigns and request explicit selection.\nBatch timeout/partial output: continue via list status + export recovery flow.\nInsufficient lead quality: return reduced high-quality set instead of forcing volume.\nKnown Limits from Inspected Upstream Skills\nlinkedin-api inspected capability set is not equivalent to unrestricted scraping of arbitrary personal lead activity.\ncold-email generates sequences but does not itself guarantee outbound send scheduling/execution.\napollo-api provides search/enrichment primitives; email deliverability validation beyond provider fields may require extra tooling.\n\nTreat these as explicit constraints in planning and reporting."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/h4gen/cold-outreach-skill",
    "publisherUrl": "https://clawhub.ai/h4gen/cold-outreach-skill",
    "owner": "h4gen",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cold-outreach-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/cold-outreach-skill",
    "agentUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cold-outreach-skill/agent.md"
  }
}