{
  "schemaVersion": "1.0",
  "item": {
    "slug": "prospector",
    "name": "Prospector",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/slempiam/prospector",
    "canonicalUrl": "https://clawhub.ai/slempiam/prospector",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/prospector",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=prospector",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "commands/setup.md",
      "scripts/prospector.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/prospector"
    },
    "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/prospector",
    "agentPageUrl": "https://openagent3.xyz/skills/prospector/agent",
    "manifestUrl": "https://openagent3.xyz/skills/prospector/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/prospector/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Prospector",
        "body": "Find leads matching your ICP via Exa company search + Apollo contact enrichment."
      },
      {
        "title": "Prerequisites",
        "body": "Run /prospector:setup first to configure your API keys:\n\nExa (required): https://exa.ai - company discovery\nApollo (required): https://apollo.io - contact enrichment\nAttio (optional): https://attio.com - CRM sync\n\nYou can also set keys via environment variables:\n\nPROSPECTOR_EXA_API_KEY\nPROSPECTOR_APOLLO_API_KEY\nPROSPECTOR_ATTIO_API_KEY (optional)"
      },
      {
        "title": "Setup (one-time)",
        "body": "/prospector:setup\n\nCollects and validates API keys, stores securely in ~/.config/prospector/config.json."
      },
      {
        "title": "Find Leads",
        "body": "/prospector\n\nAsks ICP questions, searches Exa, enriches via Apollo, outputs CSV to Desktop."
      },
      {
        "title": "Main Command: /prospector",
        "body": "When the user invokes /prospector, follow this workflow:"
      },
      {
        "title": "Step 1: Check Config or Env Vars",
        "body": "First, verify env vars or config exist:\n\npython3 -c \"\nimport json\nimport os\nfrom pathlib import Path\nconfig_path = Path.home() / '.config' / 'prospector' / 'config.json'\nenv_exa = bool(os.getenv('PROSPECTOR_EXA_API_KEY'))\nenv_apollo = bool(os.getenv('PROSPECTOR_APOLLO_API_KEY'))\nenv_attio = bool(os.getenv('PROSPECTOR_ATTIO_API_KEY'))\nif not config_path.exists():\n    print('NOT_FOUND')\nelse:\n    with open(config_path) as f:\n        config = json.load(f)\n    print('FOUND')\n    print(f'exa: {bool(config.get(\\\"exa_api_key\\\"))}')\n    print(f'apollo: {bool(config.get(\\\"apollo_api_key\\\"))}')\n    print(f'attio: {bool(config.get(\\\"attio_api_key\\\"))}')\nprint(f'env_exa: {env_exa}')\nprint(f'env_apollo: {env_apollo}')\nprint(f'env_attio: {env_attio}')\n\"\n\nIf NOT_FOUND and env vars are not set, tell user to run /prospector:setup first."
      },
      {
        "title": "Step 2: Ask ICP Questions",
        "body": "Use AskUserQuestion to collect ICP criteria in order:\n\nQuestion 1: Industry\n\nheader: \"Industry\"\nquestion: \"What industry are you targeting?\"\noptions:\n  - label: \"SaaS\"\n    description: \"Software as a Service companies\"\n  - label: \"Fintech\"\n    description: \"Financial technology companies\"\n  - label: \"Healthcare\"\n    description: \"Healthcare and health tech\"\n  - label: \"E-commerce\"\n    description: \"Online retail and marketplaces\"\n  - label: \"AI/ML\"\n    description: \"Artificial intelligence and machine learning\"\n  - label: \"Any\"\n    description: \"No industry filter\"\nmultiSelect: false\n\nQuestion 2: Company Size\n\nheader: \"Size\"\nquestion: \"What company size are you targeting?\"\noptions:\n  - label: \"1-10\"\n    description: \"Early stage startups\"\n  - label: \"11-50\"\n    description: \"Seed to Series A\"\n  - label: \"51-200\"\n    description: \"Series A to B\"\n  - label: \"201-500\"\n    description: \"Growth stage\"\n  - label: \"500+\"\n    description: \"Enterprise\"\n  - label: \"Any\"\n    description: \"No size filter\"\nmultiSelect: false\n\nQuestion 3: Funding Stage\n\nheader: \"Funding\"\nquestion: \"What funding stage are you targeting?\"\noptions:\n  - label: \"Pre-seed\"\n    description: \"Pre-product market fit\"\n  - label: \"Seed\"\n    description: \"Building initial product\"\n  - label: \"Series A\"\n    description: \"Scaling product\"\n  - label: \"Series B+\"\n    description: \"Growth and expansion\"\n  - label: \"Any\"\n    description: \"No funding filter\"\nmultiSelect: false\n\nQuestion 4: Geography\n\nheader: \"Geography\"\nquestion: \"What geography are you targeting?\"\noptions:\n  - label: \"United States\"\n    description: \"US-based companies\"\n  - label: \"Europe\"\n    description: \"European companies\"\n  - label: \"Global\"\n    description: \"Worldwide\"\n  - label: \"Any\"\n    description: \"No geography filter\"\nmultiSelect: false\n\nQuestion 5: Keywords (optional)\n\nheader: \"Keywords\"\nquestion: \"Any specific keywords that should appear in company descriptions? (optional)\"\noptions:\n  - label: \"Skip\"\n    description: \"No keyword filter\"\n  - label: \"Enter keywords\"\n    description: \"I'll type specific keywords\"\nmultiSelect: false\n\nIf \"Enter keywords\", ask for the text input.\n\nQuestion 6: Contact Count\n\nheader: \"Count\"\nquestion: \"How many contacts do you want to find?\"\noptions:\n  - label: \"25\"\n    description: \"Quick search, lower API usage\"\n  - label: \"50\"\n    description: \"Balanced (recommended)\"\n  - label: \"100\"\n    description: \"Larger batch, more API usage\"\nmultiSelect: false"
      },
      {
        "title": "Step 3: Run Search",
        "body": "Execute the Python script with the collected ICP:\n\ncd [skill_directory]/scripts\npython3 -c \"\nfrom prospector import run_search, export_csv, Config\n\nicp = {\n    'industry': '[INDUSTRY]',\n    'company_size': '[SIZE]',\n    'funding_stage': '[FUNDING]',\n    'geography': '[GEOGRAPHY]',\n    'keywords': '[KEYWORDS or empty string]'\n}\n\nleads = run_search(icp, num_contacts=[COUNT])\nif leads:\n    path = export_csv(leads)\n    print(f'SUCCESS: {len(leads)} leads saved to {path}')\nelse:\n    print('NO_RESULTS: No leads found matching criteria')\n\"\n\nReplace placeholders with actual values from questions."
      },
      {
        "title": "Step 4: Attio Sync (if configured)",
        "body": "If Attio is configured and leads were found, ask:\n\nheader: \"Attio\"\nquestion: \"Sync leads to Attio CRM?\"\noptions:\n  - label: \"Yes\"\n    description: \"Sync companies and contacts to Attio\"\n  - label: \"No\"\n    description: \"Just keep the CSV\"\nmultiSelect: false\n\nIf yes:\n\ncd [skill_directory]/scripts\npython3 -c \"\nfrom prospector import sync_to_attio, Config, Lead\nimport json\n\n# Load leads from the CSV we just created (or pass them directly)\n# For simplicity, re-run with sync\nleads = [...]  # Pass leads from previous step\n\ncompanies, people = sync_to_attio(leads)\nprint(f'SYNCED: {companies} companies, {people} contacts')\n\""
      },
      {
        "title": "Step 5: Report Results",
        "body": "Tell the user:\n\nHow many leads were found\nWhere the CSV was saved\nIf Attio sync was done, how many records were synced"
      },
      {
        "title": "Error Handling",
        "body": "Config not found: Tell user to run /prospector:setup\nInvalid API key: Tell user which key failed, suggest re-running setup\nNo results: Suggest broadening ICP criteria\nPartial failures: Report what succeeded, warn about failures"
      }
    ],
    "body": "Prospector\n\nFind leads matching your ICP via Exa company search + Apollo contact enrichment.\n\nPrerequisites\n\nRun /prospector:setup first to configure your API keys:\n\nExa (required): https://exa.ai - company discovery\nApollo (required): https://apollo.io - contact enrichment\nAttio (optional): https://attio.com - CRM sync\n\nYou can also set keys via environment variables:\n\nPROSPECTOR_EXA_API_KEY\nPROSPECTOR_APOLLO_API_KEY\nPROSPECTOR_ATTIO_API_KEY (optional)\nUsage\nSetup (one-time)\n/prospector:setup\n\n\nCollects and validates API keys, stores securely in ~/.config/prospector/config.json.\n\nFind Leads\n/prospector\n\n\nAsks ICP questions, searches Exa, enriches via Apollo, outputs CSV to Desktop.\n\nMain Command: /prospector\n\nWhen the user invokes /prospector, follow this workflow:\n\nStep 1: Check Config or Env Vars\n\nFirst, verify env vars or config exist:\n\npython3 -c \"\nimport json\nimport os\nfrom pathlib import Path\nconfig_path = Path.home() / '.config' / 'prospector' / 'config.json'\nenv_exa = bool(os.getenv('PROSPECTOR_EXA_API_KEY'))\nenv_apollo = bool(os.getenv('PROSPECTOR_APOLLO_API_KEY'))\nenv_attio = bool(os.getenv('PROSPECTOR_ATTIO_API_KEY'))\nif not config_path.exists():\n    print('NOT_FOUND')\nelse:\n    with open(config_path) as f:\n        config = json.load(f)\n    print('FOUND')\n    print(f'exa: {bool(config.get(\\\"exa_api_key\\\"))}')\n    print(f'apollo: {bool(config.get(\\\"apollo_api_key\\\"))}')\n    print(f'attio: {bool(config.get(\\\"attio_api_key\\\"))}')\nprint(f'env_exa: {env_exa}')\nprint(f'env_apollo: {env_apollo}')\nprint(f'env_attio: {env_attio}')\n\"\n\n\nIf NOT_FOUND and env vars are not set, tell user to run /prospector:setup first.\n\nStep 2: Ask ICP Questions\n\nUse AskUserQuestion to collect ICP criteria in order:\n\nQuestion 1: Industry\n\nheader: \"Industry\"\nquestion: \"What industry are you targeting?\"\noptions:\n  - label: \"SaaS\"\n    description: \"Software as a Service companies\"\n  - label: \"Fintech\"\n    description: \"Financial technology companies\"\n  - label: \"Healthcare\"\n    description: \"Healthcare and health tech\"\n  - label: \"E-commerce\"\n    description: \"Online retail and marketplaces\"\n  - label: \"AI/ML\"\n    description: \"Artificial intelligence and machine learning\"\n  - label: \"Any\"\n    description: \"No industry filter\"\nmultiSelect: false\n\n\nQuestion 2: Company Size\n\nheader: \"Size\"\nquestion: \"What company size are you targeting?\"\noptions:\n  - label: \"1-10\"\n    description: \"Early stage startups\"\n  - label: \"11-50\"\n    description: \"Seed to Series A\"\n  - label: \"51-200\"\n    description: \"Series A to B\"\n  - label: \"201-500\"\n    description: \"Growth stage\"\n  - label: \"500+\"\n    description: \"Enterprise\"\n  - label: \"Any\"\n    description: \"No size filter\"\nmultiSelect: false\n\n\nQuestion 3: Funding Stage\n\nheader: \"Funding\"\nquestion: \"What funding stage are you targeting?\"\noptions:\n  - label: \"Pre-seed\"\n    description: \"Pre-product market fit\"\n  - label: \"Seed\"\n    description: \"Building initial product\"\n  - label: \"Series A\"\n    description: \"Scaling product\"\n  - label: \"Series B+\"\n    description: \"Growth and expansion\"\n  - label: \"Any\"\n    description: \"No funding filter\"\nmultiSelect: false\n\n\nQuestion 4: Geography\n\nheader: \"Geography\"\nquestion: \"What geography are you targeting?\"\noptions:\n  - label: \"United States\"\n    description: \"US-based companies\"\n  - label: \"Europe\"\n    description: \"European companies\"\n  - label: \"Global\"\n    description: \"Worldwide\"\n  - label: \"Any\"\n    description: \"No geography filter\"\nmultiSelect: false\n\n\nQuestion 5: Keywords (optional)\n\nheader: \"Keywords\"\nquestion: \"Any specific keywords that should appear in company descriptions? (optional)\"\noptions:\n  - label: \"Skip\"\n    description: \"No keyword filter\"\n  - label: \"Enter keywords\"\n    description: \"I'll type specific keywords\"\nmultiSelect: false\n\n\nIf \"Enter keywords\", ask for the text input.\n\nQuestion 6: Contact Count\n\nheader: \"Count\"\nquestion: \"How many contacts do you want to find?\"\noptions:\n  - label: \"25\"\n    description: \"Quick search, lower API usage\"\n  - label: \"50\"\n    description: \"Balanced (recommended)\"\n  - label: \"100\"\n    description: \"Larger batch, more API usage\"\nmultiSelect: false\n\nStep 3: Run Search\n\nExecute the Python script with the collected ICP:\n\ncd [skill_directory]/scripts\npython3 -c \"\nfrom prospector import run_search, export_csv, Config\n\nicp = {\n    'industry': '[INDUSTRY]',\n    'company_size': '[SIZE]',\n    'funding_stage': '[FUNDING]',\n    'geography': '[GEOGRAPHY]',\n    'keywords': '[KEYWORDS or empty string]'\n}\n\nleads = run_search(icp, num_contacts=[COUNT])\nif leads:\n    path = export_csv(leads)\n    print(f'SUCCESS: {len(leads)} leads saved to {path}')\nelse:\n    print('NO_RESULTS: No leads found matching criteria')\n\"\n\n\nReplace placeholders with actual values from questions.\n\nStep 4: Attio Sync (if configured)\n\nIf Attio is configured and leads were found, ask:\n\nheader: \"Attio\"\nquestion: \"Sync leads to Attio CRM?\"\noptions:\n  - label: \"Yes\"\n    description: \"Sync companies and contacts to Attio\"\n  - label: \"No\"\n    description: \"Just keep the CSV\"\nmultiSelect: false\n\n\nIf yes:\n\ncd [skill_directory]/scripts\npython3 -c \"\nfrom prospector import sync_to_attio, Config, Lead\nimport json\n\n# Load leads from the CSV we just created (or pass them directly)\n# For simplicity, re-run with sync\nleads = [...]  # Pass leads from previous step\n\ncompanies, people = sync_to_attio(leads)\nprint(f'SYNCED: {companies} companies, {people} contacts')\n\"\n\nStep 5: Report Results\n\nTell the user:\n\nHow many leads were found\nWhere the CSV was saved\nIf Attio sync was done, how many records were synced\nError Handling\nConfig not found: Tell user to run /prospector:setup\nInvalid API key: Tell user which key failed, suggest re-running setup\nNo results: Suggest broadening ICP criteria\nPartial failures: Report what succeeded, warn about failures"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/slempiam/prospector",
    "publisherUrl": "https://clawhub.ai/slempiam/prospector",
    "owner": "slempiam",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/prospector",
    "downloadUrl": "https://openagent3.xyz/downloads/prospector",
    "agentUrl": "https://openagent3.xyz/skills/prospector/agent",
    "manifestUrl": "https://openagent3.xyz/skills/prospector/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/prospector/agent.md"
  }
}