Install
openclaw skills install @upkuajing/b2b-lead-generationAggregate B2B lead generation using customs trade data, global company due diligence, and LinkedIn professional network info to analyze markets, profile firm...
openclaw skills install @upkuajing/b2b-lead-generationAggregate skill for B2B lead generation: customs trade intelligence + global-company deep due-diligence + LinkedIn professional data. 38 scripts across 3 data sources, routed by domain index.
Three data sources, each behind a domain index (intent → script decision table):
| Data source | What it answers | Index |
|---|---|---|
| Customs - HS code analysis | Market distribution / trends / share for a product (HS code) | indexes/customs-analysis.md |
| Customs - company trade | One company's trade scale, partners, products, ports, trends | indexes/customs-company.md |
| Customs - macro overview | Country-level trade totals, top buyers/suppliers, US imports | indexes/customs-overview.md |
| Global company - deep | Firmographics, shareholders/UBO, employees, decision-makers (全球企业库) | indexes/global-depth.md |
| Professional network: companies, people, colleagues, alumni, career | indexes/linkedin.md |
python --versionpip install -r requirements.txtScript directory: scripts/*.py
Important: Always use direct script invocation like python scripts/customs_analysis_area.py. Do NOT use shell compound commands like cd scripts && python customs_analysis_area.py.
indexes/<domain>.md - it is an intent→script decision table that pins each intent to exactly one script.references/<xxx>-api.md for exact parameter names/formats - never guess parameters.| User Intent | Route to |
|---|---|
| Analyze an HS code's market distribution / trends / share / overview | indexes/customs-analysis.md |
| Profile one company's trade scale / partners / products / ports / trends | indexes/customs-company.md |
| Macro country trade overview / Top buyers & suppliers / US imports | indexes/customs-overview.md |
| Company firmographics / shareholders-UBO / employees / decision-makers (background check) | indexes/global-depth.md |
| LinkedIn companies / people / professional network / career & education | indexes/linkedin.md |
These belong to standalone companion skills - hand off when the user needs them:
| User wants | Hand off to |
|---|---|
| Buyers/suppliers with real trade records (trade record search) | upkuajing-customs-trade-company-search (= upkuajing-trade-company-search) |
| Quick company/person lookup + contact info (shallow search) | upkuajing-company-people-search (= upkuajing-global-company-people-search) |
| Validate / clean contact info before outreach | b2b-outreach (phone/email/domain validity) or upkuajing-contact-info-validity-check |
| Send email / SMS / map merchant harvesting after leads found | b2b-outreach |
upkuajing-customs-trade-company-search (find buyers with trade records) → this skill global-depth/linkedin (find decision-makers) → b2b-outreach validity (clean contacts) → b2b-outreach (reach out).global-depth (global_company_search → company_shareholder_list / company_employee_list) → customs-company (customs_company_stats to gauge real trade scale).linkedin (linkedin_company_employee_list) → linkedin_person_experience_list / linkedin_person_education_list (background).customs-overview (summary / top_n to size a market) → customs-analysis (trade_percent to find dominant players) → global-depth (background the top players).This skill requires an API key, stored in ~/.upkuajing/.env:
cat ~/.upkuajing/.env
UPKUAJING_API_KEY=your_api_key_here
First check if ~/.upkuajing/.env has UPKUAJING_API_KEY. If not, prompt the user to choose:
~/.upkuajing/.env)auth.py --new_key (auto-saved to ~/.upkuajing/.env)Wait for user selection.
When API response indicates insufficient balance:
auth.py --new_rec_order)python scripts/auth.py --account_info
Newly applied keys must be registered/bound at UpKuaJing Open Platform.
All API calls incur fees; billing methods differ per interface.
Latest pricing: visit Detailed Price Description, or run:
python scripts/auth.py --price_info
(returns complete pricing for all interfaces - the aggregate auth.py queries the full price list and falls back to per-original-skill lookup if needed.)
global_company_search, global_company_person_search, linkedin_company_search, linkedin_person_search): billed by calls = ceil(query_count / 20); each call returns up to 20 records (query_count range 20–1000). When query_count > 20, inform the user of the expected call count first.cursor from the previous response to fetch the next page; single-record scripts (stats, summary, date, school detail) return one result per call.references/<xxx>-api.md.Any operation that incurs fees must first inform the user and wait for explicit confirmation in a separate message. Do not execute in the same message as the notification. When query_count exceeds one page, inform the user of the expected number of calls first.
UPKUAJING_API_KEY in ~/.upkuajing/.envreferences/ - get correct parameter names/formats from documentation, do not guesscustoms-analysis (route: indexes/customs-analysis.md)
customs-company (route: indexes/customs-company.md)
customs-overview (route: indexes/customs-overview.md)
global-depth (route: indexes/global-depth.md)
linkedin (route: indexes/linkedin.md)
countryType: 1 = exporting countries (suppliers), 2 = importing countries (buyers).pid/hid is not the same as a LinkedIn pid/hid - stay within one source per investigation.*_search) return a task_id + file_url; resume with --task_id to append. Customs & list scripts use cursor pagination - pass the cursor from the previous response (inside --params) to fetch the next page.task_data/ stores results under UUID subdirectories.auth.py --price_info for accurate pricing.references/<xxx>-api.md first.Other UpKuaJing skills you might find useful: