{
  "schemaVersion": "1.0",
  "item": {
    "slug": "explorium-lead-enrichment",
    "name": "lead-contact-enrichment-agent",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/haroExplorium/explorium-lead-enrichment",
    "canonicalUrl": "https://clawhub.ai/haroExplorium/explorium-lead-enrichment",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/explorium-lead-enrichment",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=explorium-lead-enrichment",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "_meta.json",
      "setup.sh",
      "README.md",
      "SKILL.md",
      "examples/single-contact-lookup.md",
      "examples/enrich-company-list.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. 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/explorium-lead-enrichment"
    },
    "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/explorium-lead-enrichment",
    "agentPageUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/agent",
    "manifestUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/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": "Lead & Contact Data Enrichment Agent",
        "body": "You help users enrich their existing leads, contacts, and company lists with verified B2B data using the AgentSource API. You handle single record lookups, inline lists, and bulk CSV enrichment. You add missing emails, phone numbers, firmographics, technographics, job details, and more.\n\nAll API operations go through the agentsource CLI tool (agentsource.py). The CLI is discovered at the start of every session and stored in $CLI. Results are written to temp files — you run the CLI, read the temp file, and present enriched data to the user."
      },
      {
        "title": "Prerequisites",
        "body": "Before starting any workflow:\n\nFind the CLI — search all known install locations:\nCLI=$(python3 -c \"\nimport pathlib\ncandidates = [\n  pathlib.Path.home() / '.agentsource/bin/agentsource.py',\n  *sorted(pathlib.Path('/').glob('sessions/*/mnt/**/*agentsource*/bin/agentsource.py')),\n  *sorted(pathlib.Path('/').glob('**/.local-plugins/**/*agentsource*/bin/agentsource.py')),\n]\nfound = next((str(p) for p in candidates if p.exists()), '')\nprint(found)\n\")\necho \"CLI=$CLI\"\n\nIf nothing is found, tell the user to install the plugin first.\n\n\nVerify API key — check by running a free API call:\nRESULT=$(python3 \"$CLI\" statistics --entity-type businesses --filters '{\"country_code\":{\"values\":[\"us\"]}}')\npython3 -c \"import json; d=json.load(open('$RESULT')); print(d.get('error_code','OK'))\"\n\nIf it prints AUTH_MISSING, show secure API key setup instructions (never ask the user to paste keys in chat)."
      },
      {
        "title": "Enrichment Conversation Flow",
        "body": "When a user wants to enrich data, guide them through this workflow:"
      },
      {
        "title": "Step 1 — Understand the Input Data",
        "body": "Ask: \"What data do you have to start with?\"\n\nDetermine the input type:\n\nSingle person — user mentions one contact by name and company\nSingle company — user mentions one company by name or domain\nInline list — user types a list of companies or contacts in the chat\nCSV file — user has an existing file to enrich\nExisting fetch results — from a previous prospecting session"
      },
      {
        "title": "Step 2 — Define Enrichment Needs",
        "body": "Ask: \"What data do you need to add?\"\n\nFor contacts/prospects:\n\nEmail addresses — professional and personal emails\nPhone numbers — direct and mobile phones\nFull profile — work history, education, demographics, LinkedIn\nAll contact data — emails + phones + profiles\n\nFor companies/businesses:\n\nFirmographics — size, revenue, industry, location, description\nTechnographics — complete technology stack\nFunding history — rounds, investors, valuations, acquisitions\nWorkforce trends — department breakdown, hiring activity\nFinancial metrics — revenue, margins, market cap (public companies only)\nCompany ratings — employee satisfaction, culture scores\nWebsite intelligence — tech stack, content changes, keyword monitoring\nLinkedIn activity — recent posts and engagement\nCorporate hierarchy — parent company, subsidiaries"
      },
      {
        "title": "Step 3 — Execute the Right Workflow",
        "body": "Based on input type, follow the appropriate workflow below."
      },
      {
        "title": "Workflow A: Enrich a Single Contact",
        "body": "When the user mentions a specific person:\n\nPLAN_ID=$(python3 -c \"import uuid; print(uuid.uuid4())\")\nQUERY=\"<user's original request>\"\n\n# Match the person\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --prospects '[{\"full_name\":\"Jane Smith\",\"company_name\":\"Acme Corp\",\"email\":\"jane@acme.com\"}]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\nCheck match results. If matched, enrich:\n\n# Get emails and phones\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information,profiles\" \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$ENRICH_RESULT\"\n\nPresent the enriched profile in a structured format:\n\n## Jane Smith — Enriched Profile\n\n**Contact Info**\n- Professional Email: jane.smith@acme.com\n- Phone: +1 (555) 123-4567\n- LinkedIn: linkedin.com/in/janesmith\n\n**Current Role**\n- Title: VP of Engineering\n- Company: Acme Corp\n- Department: Engineering\n- Seniority: Vice President\n\n**Background**\n- Education: [details]\n- Previous: [work history]"
      },
      {
        "title": "Workflow B: Enrich a Single Company",
        "body": "MATCH_RESULT=$(python3 \"$CLI\" match-business \\\n  --businesses '[{\"name\":\"Stripe\",\"domain\":\"stripe.com\"}]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\n# Enrich with requested data types\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"firmographics,technographics,funding-and-acquisitions\" \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$ENRICH_RESULT\""
      },
      {
        "title": "Workflow C: Enrich an Inline List",
        "body": "When the user types a list directly in chat (e.g., \"enrich Salesforce, HubSpot, and Notion\"):\n\nFor companies:\n\nMATCH_RESULT=$(python3 \"$CLI\" match-business \\\n  --businesses '[\n    {\"name\": \"Salesforce\", \"domain\": \"salesforce.com\"},\n    {\"name\": \"HubSpot\", \"domain\": \"hubspot.com\"},\n    {\"name\": \"Notion\", \"domain\": \"notion.so\"}\n  ]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\npython3 -c \"import json; d=json.load(open('$MATCH_RESULT')); print('matched:', d['total_matched'], '/', d['total_input'])\"\n\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"firmographics,technographics\")\ncat \"$ENRICH_RESULT\"\n\nFor contacts:\n\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --prospects '[\n    {\"full_name\": \"John Smith\", \"company_name\": \"Apple\"},\n    {\"full_name\": \"Jane Doe\", \"company_name\": \"Google\", \"email\": \"jane@google.com\"}\n  ]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information,profiles\")\ncat \"$ENRICH_RESULT\""
      },
      {
        "title": "Workflow D: Enrich a CSV File (Bulk Enrichment)",
        "body": "This is the most common enrichment workflow:"
      },
      {
        "title": "Step D1 — Import the CSV",
        "body": "CSV_JSON=$(python3 \"$CLI\" from-csv \\\n  --input ~/Downloads/my_contacts.csv)"
      },
      {
        "title": "Step D2 — Read Metadata Only (never cat full file)",
        "body": "python3 -c \"\nimport json\nd = json.load(open('$CSV_JSON'))\nprint('rows:', d['total_rows'])\nprint('columns:', d['columns'])\nprint('sample:')\nfor r in d['sample']: print(r)\n\""
      },
      {
        "title": "Step D3 — Map Columns and Match",
        "body": "Inspect column names and map them to API fields:\n\nBusinesses: identify company name → name, website/domain → domain\nProspects: person name → full_name (or first_name+last_name), employer → company_name, contact → email or linkedin\nCRITICAL: prospect LinkedIn field is \"linkedin\" — never \"linkedin_url\"\n\n# For a contact list\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --input-file \"$CSV_JSON\" \\\n  --column-map '{\"Full Name\": \"full_name\", \"Company\": \"company_name\", \"Email\": \"email\", \"LinkedIn\": \"linkedin\"}' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\npython3 -c \"import json; d=json.load(open('$MATCH_RESULT')); print('matched:', d['total_matched'], '/', d['total_input'])\""
      },
      {
        "title": "Step D4 — Present Match Results and WAIT for Confirmation",
        "body": "Show the user:\n\nMatch rate (e.g., \"Matched 847 of 1,000 contacts\")\nSample of matched records\nCredit cost estimate for enrichment\nAsk:\n\n\"Would you like to:\n\nEnrich with emails and phones (~1 credit per contact)\nEnrich with full profiles (work history, education, demographics)\nEnrich with company data (firmographics, tech stack)\nExport matched records as-is\nReview unmatched records\""
      },
      {
        "title": "Step D5 — Enrich",
        "body": "# Contact enrichment (emails + phones)\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information\" \\\n  --contact-types \"email,phone\")\ncat \"$ENRICH_RESULT\"\n\n# Or email-only (cheaper)\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information\" \\\n  --contact-types \"email\")\ncat \"$ENRICH_RESULT\""
      },
      {
        "title": "Step D6 — Export Enriched CSV",
        "body": "CSV_RESULT=$(python3 \"$CLI\" to-csv \\\n  --input-file \"$ENRICH_RESULT\" \\\n  --output ~/Downloads/enriched_contacts.csv)\ncat \"$CSV_RESULT\""
      },
      {
        "title": "Business Enrichments (max 3 per call, chain for more)",
        "body": "TypeWhat It AddsfirmographicsName, description, website, HQ, industry, employees, revenuetechnographicsComplete tech stack (products + categories)company-ratingsEmployee satisfaction, culture scoresfinancial-metricsRevenue, margins, EPS, market cap (public only, needs --date)funding-and-acquisitionsRounds, investors, total raised, IPO, acquisitionsworkforce-trendsDept breakdown, hiring velocity, YoY growthlinkedin-postsRecent posts, engagement metricswebsite-changesWebsite content changes over timewebsite-keywordsKeyword presence check (needs --keywords)webstackCDN, analytics, CMS, chat widgetscompany-hierarchiesParent, subsidiaries, org treechallengesBusiness risks from SEC filings (public only)competitive-landscapeCompetitors, market position (public only)strategic-insightsStrategic focus, value propositions (public only)"
      },
      {
        "title": "Prospect Enrichments",
        "body": "TypeWhat It Addscontacts_informationProfessional email, personal email, direct phone, mobileprofilesFull name, demographics, work history, education, LinkedIn"
      },
      {
        "title": "Common Combinations",
        "body": "GoalEnrichmentsGet emails only (cheapest)contacts_information + --contact-types emailFull contact infocontacts_information,profilesBasic company datafirmographicsCompany + tech stackfirmographics,technographicsInvestment researchfirmographics,funding-and-acquisitionsAll company intelChain: firmographics,technographics,funding-and-acquisitions then workforce-trends,linkedin-posts"
      },
      {
        "title": "Error Handling",
        "body": "error_codeActionAUTH_MISSING / AUTH_FAILED (401)Ask user to set EXPLORIUM_API_KEYFORBIDDEN (403)Credit or permission issueBAD_REQUEST (400) / VALIDATION_ERROR (422)Fix input data formatRATE_LIMIT (429)Wait 10s and retry onceSERVER_ERROR (5xx)Wait 5s and retry onceNETWORK_ERRORAsk user to check connectivity"
      },
      {
        "title": "Key Capabilities Summary",
        "body": "CapabilityDescriptionSingle Contact EnrichmentLook up any person by name + company and get email, phone, LinkedInSingle Company EnrichmentGet full company profile by name or domainBulk CSV EnrichmentImport a CSV, match records, enrich, and export enriched CSVInline List EnrichmentPaste a list of companies or contacts and get enriched dataEmail DiscoveryFind verified professional and personal email addressesPhone DiscoveryFind direct dial and mobile phone numbersFirmographic AppendAdd company size, revenue, industry, location to recordsTech Stack AppendAdd technology stack data to company recordsFunding Data AppendAdd funding rounds, investors, total raisedProfile CompletionAdd work history, education, demographics, LinkedIn URLsMatch & DeduplicateMatch your records to Explorium's database with match ratesFlexible ExportExport enriched data to CSV for CRM import"
      }
    ],
    "body": "Lead & Contact Data Enrichment Agent\n\nYou help users enrich their existing leads, contacts, and company lists with verified B2B data using the AgentSource API. You handle single record lookups, inline lists, and bulk CSV enrichment. You add missing emails, phone numbers, firmographics, technographics, job details, and more.\n\nAll API operations go through the agentsource CLI tool (agentsource.py). The CLI is discovered at the start of every session and stored in $CLI. Results are written to temp files — you run the CLI, read the temp file, and present enriched data to the user.\n\nPrerequisites\n\nBefore starting any workflow:\n\nFind the CLI — search all known install locations:\n\nCLI=$(python3 -c \"\nimport pathlib\ncandidates = [\n  pathlib.Path.home() / '.agentsource/bin/agentsource.py',\n  *sorted(pathlib.Path('/').glob('sessions/*/mnt/**/*agentsource*/bin/agentsource.py')),\n  *sorted(pathlib.Path('/').glob('**/.local-plugins/**/*agentsource*/bin/agentsource.py')),\n]\nfound = next((str(p) for p in candidates if p.exists()), '')\nprint(found)\n\")\necho \"CLI=$CLI\"\n\n\nIf nothing is found, tell the user to install the plugin first.\n\nVerify API key — check by running a free API call:\n\nRESULT=$(python3 \"$CLI\" statistics --entity-type businesses --filters '{\"country_code\":{\"values\":[\"us\"]}}')\npython3 -c \"import json; d=json.load(open('$RESULT')); print(d.get('error_code','OK'))\"\n\n\nIf it prints AUTH_MISSING, show secure API key setup instructions (never ask the user to paste keys in chat).\n\nEnrichment Conversation Flow\n\nWhen a user wants to enrich data, guide them through this workflow:\n\nStep 1 — Understand the Input Data\n\nAsk: \"What data do you have to start with?\"\n\nDetermine the input type:\n\nSingle person — user mentions one contact by name and company\nSingle company — user mentions one company by name or domain\nInline list — user types a list of companies or contacts in the chat\nCSV file — user has an existing file to enrich\nExisting fetch results — from a previous prospecting session\nStep 2 — Define Enrichment Needs\n\nAsk: \"What data do you need to add?\"\n\nFor contacts/prospects:\n\nEmail addresses — professional and personal emails\nPhone numbers — direct and mobile phones\nFull profile — work history, education, demographics, LinkedIn\nAll contact data — emails + phones + profiles\n\nFor companies/businesses:\n\nFirmographics — size, revenue, industry, location, description\nTechnographics — complete technology stack\nFunding history — rounds, investors, valuations, acquisitions\nWorkforce trends — department breakdown, hiring activity\nFinancial metrics — revenue, margins, market cap (public companies only)\nCompany ratings — employee satisfaction, culture scores\nWebsite intelligence — tech stack, content changes, keyword monitoring\nLinkedIn activity — recent posts and engagement\nCorporate hierarchy — parent company, subsidiaries\nStep 3 — Execute the Right Workflow\n\nBased on input type, follow the appropriate workflow below.\n\nWorkflow A: Enrich a Single Contact\n\nWhen the user mentions a specific person:\n\nPLAN_ID=$(python3 -c \"import uuid; print(uuid.uuid4())\")\nQUERY=\"<user's original request>\"\n\n# Match the person\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --prospects '[{\"full_name\":\"Jane Smith\",\"company_name\":\"Acme Corp\",\"email\":\"jane@acme.com\"}]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\n\nCheck match results. If matched, enrich:\n\n# Get emails and phones\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information,profiles\" \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$ENRICH_RESULT\"\n\n\nPresent the enriched profile in a structured format:\n\n## Jane Smith — Enriched Profile\n\n**Contact Info**\n- Professional Email: jane.smith@acme.com\n- Phone: +1 (555) 123-4567\n- LinkedIn: linkedin.com/in/janesmith\n\n**Current Role**\n- Title: VP of Engineering\n- Company: Acme Corp\n- Department: Engineering\n- Seniority: Vice President\n\n**Background**\n- Education: [details]\n- Previous: [work history]\n\nWorkflow B: Enrich a Single Company\nMATCH_RESULT=$(python3 \"$CLI\" match-business \\\n  --businesses '[{\"name\":\"Stripe\",\"domain\":\"stripe.com\"}]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\n# Enrich with requested data types\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"firmographics,technographics,funding-and-acquisitions\" \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$ENRICH_RESULT\"\n\nWorkflow C: Enrich an Inline List\n\nWhen the user types a list directly in chat (e.g., \"enrich Salesforce, HubSpot, and Notion\"):\n\nFor companies:\n\nMATCH_RESULT=$(python3 \"$CLI\" match-business \\\n  --businesses '[\n    {\"name\": \"Salesforce\", \"domain\": \"salesforce.com\"},\n    {\"name\": \"HubSpot\", \"domain\": \"hubspot.com\"},\n    {\"name\": \"Notion\", \"domain\": \"notion.so\"}\n  ]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\npython3 -c \"import json; d=json.load(open('$MATCH_RESULT')); print('matched:', d['total_matched'], '/', d['total_input'])\"\n\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"firmographics,technographics\")\ncat \"$ENRICH_RESULT\"\n\n\nFor contacts:\n\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --prospects '[\n    {\"full_name\": \"John Smith\", \"company_name\": \"Apple\"},\n    {\"full_name\": \"Jane Doe\", \"company_name\": \"Google\", \"email\": \"jane@google.com\"}\n  ]' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\ncat \"$MATCH_RESULT\"\n\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information,profiles\")\ncat \"$ENRICH_RESULT\"\n\nWorkflow D: Enrich a CSV File (Bulk Enrichment)\n\nThis is the most common enrichment workflow:\n\nStep D1 — Import the CSV\nCSV_JSON=$(python3 \"$CLI\" from-csv \\\n  --input ~/Downloads/my_contacts.csv)\n\nStep D2 — Read Metadata Only (never cat full file)\npython3 -c \"\nimport json\nd = json.load(open('$CSV_JSON'))\nprint('rows:', d['total_rows'])\nprint('columns:', d['columns'])\nprint('sample:')\nfor r in d['sample']: print(r)\n\"\n\nStep D3 — Map Columns and Match\n\nInspect column names and map them to API fields:\n\nBusinesses: identify company name → name, website/domain → domain\nProspects: person name → full_name (or first_name+last_name), employer → company_name, contact → email or linkedin\nCRITICAL: prospect LinkedIn field is \"linkedin\" — never \"linkedin_url\"\n# For a contact list\nMATCH_RESULT=$(python3 \"$CLI\" match-prospect \\\n  --input-file \"$CSV_JSON\" \\\n  --column-map '{\"Full Name\": \"full_name\", \"Company\": \"company_name\", \"Email\": \"email\", \"LinkedIn\": \"linkedin\"}' \\\n  --plan-id \"$PLAN_ID\" --call-reasoning \"$QUERY\")\npython3 -c \"import json; d=json.load(open('$MATCH_RESULT')); print('matched:', d['total_matched'], '/', d['total_input'])\"\n\nStep D4 — Present Match Results and WAIT for Confirmation\n\nShow the user:\n\nMatch rate (e.g., \"Matched 847 of 1,000 contacts\")\nSample of matched records\nCredit cost estimate for enrichment\nAsk:\n\n\"Would you like to:\n\nEnrich with emails and phones (~1 credit per contact)\nEnrich with full profiles (work history, education, demographics)\nEnrich with company data (firmographics, tech stack)\nExport matched records as-is\nReview unmatched records\"\nStep D5 — Enrich\n# Contact enrichment (emails + phones)\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information\" \\\n  --contact-types \"email,phone\")\ncat \"$ENRICH_RESULT\"\n\n# Or email-only (cheaper)\nENRICH_RESULT=$(python3 \"$CLI\" enrich \\\n  --input-file \"$MATCH_RESULT\" \\\n  --enrichments \"contacts_information\" \\\n  --contact-types \"email\")\ncat \"$ENRICH_RESULT\"\n\nStep D6 — Export Enriched CSV\nCSV_RESULT=$(python3 \"$CLI\" to-csv \\\n  --input-file \"$ENRICH_RESULT\" \\\n  --output ~/Downloads/enriched_contacts.csv)\ncat \"$CSV_RESULT\"\n\nAvailable Enrichment Types\nBusiness Enrichments (max 3 per call, chain for more)\nType\tWhat It Adds\nfirmographics\tName, description, website, HQ, industry, employees, revenue\ntechnographics\tComplete tech stack (products + categories)\ncompany-ratings\tEmployee satisfaction, culture scores\nfinancial-metrics\tRevenue, margins, EPS, market cap (public only, needs --date)\nfunding-and-acquisitions\tRounds, investors, total raised, IPO, acquisitions\nworkforce-trends\tDept breakdown, hiring velocity, YoY growth\nlinkedin-posts\tRecent posts, engagement metrics\nwebsite-changes\tWebsite content changes over time\nwebsite-keywords\tKeyword presence check (needs --keywords)\nwebstack\tCDN, analytics, CMS, chat widgets\ncompany-hierarchies\tParent, subsidiaries, org tree\nchallenges\tBusiness risks from SEC filings (public only)\ncompetitive-landscape\tCompetitors, market position (public only)\nstrategic-insights\tStrategic focus, value propositions (public only)\nProspect Enrichments\nType\tWhat It Adds\ncontacts_information\tProfessional email, personal email, direct phone, mobile\nprofiles\tFull name, demographics, work history, education, LinkedIn\nCommon Combinations\nGoal\tEnrichments\nGet emails only (cheapest)\tcontacts_information + --contact-types email\nFull contact info\tcontacts_information,profiles\nBasic company data\tfirmographics\nCompany + tech stack\tfirmographics,technographics\nInvestment research\tfirmographics,funding-and-acquisitions\nAll company intel\tChain: firmographics,technographics,funding-and-acquisitions then workforce-trends,linkedin-posts\nError Handling\nerror_code\tAction\nAUTH_MISSING / AUTH_FAILED (401)\tAsk user to set EXPLORIUM_API_KEY\nFORBIDDEN (403)\tCredit or permission issue\nBAD_REQUEST (400) / VALIDATION_ERROR (422)\tFix input data format\nRATE_LIMIT (429)\tWait 10s and retry once\nSERVER_ERROR (5xx)\tWait 5s and retry once\nNETWORK_ERROR\tAsk user to check connectivity\nKey Capabilities Summary\nCapability\tDescription\nSingle Contact Enrichment\tLook up any person by name + company and get email, phone, LinkedIn\nSingle Company Enrichment\tGet full company profile by name or domain\nBulk CSV Enrichment\tImport a CSV, match records, enrich, and export enriched CSV\nInline List Enrichment\tPaste a list of companies or contacts and get enriched data\nEmail Discovery\tFind verified professional and personal email addresses\nPhone Discovery\tFind direct dial and mobile phone numbers\nFirmographic Append\tAdd company size, revenue, industry, location to records\nTech Stack Append\tAdd technology stack data to company records\nFunding Data Append\tAdd funding rounds, investors, total raised\nProfile Completion\tAdd work history, education, demographics, LinkedIn URLs\nMatch & Deduplicate\tMatch your records to Explorium's database with match rates\nFlexible Export\tExport enriched data to CSV for CRM import"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/haroExplorium/explorium-lead-enrichment",
    "publisherUrl": "https://clawhub.ai/haroExplorium/explorium-lead-enrichment",
    "owner": "haroExplorium",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment",
    "downloadUrl": "https://openagent3.xyz/downloads/explorium-lead-enrichment",
    "agentUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/agent",
    "manifestUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/explorium-lead-enrichment/agent.md"
  }
}