$npx -y skills add Xuxchloris/export_skills --skill company-researchUse when a trade agent needs to analyze a prospect company, website, business type, product line, purchasing possibility, red flags, decision-maker clues, or personalization evidence
| 1 | # Company Research |
| 2 | |
| 3 | ## Overview |
| 4 | |
| 5 | Turn prospect website content into evidence-backed sales intelligence. The core rule is to separate observed facts from inferred opportunities. |
| 6 | |
| 7 | ## When to Use |
| 8 | |
| 9 | Use this skill when the user provides a company name, website URL, prospect list row, LinkedIn snippet, trade-show exhibitor page, or distributor page and asks whether the company is worth developing. |
| 10 | |
| 11 | Do not use it to fabricate contact names or emails. |
| 12 | |
| 13 | ## Inputs |
| 14 | |
| 15 | - Company name |
| 16 | - Website URL or pasted website content |
| 17 | - Tool output from `tools/batch_prospect_pipeline.py` or `tools/decision_maker_finder.py` when a URL/list is provided |
| 18 | - Product context from `product-loader` |
| 19 | - Market context from `MARKET.yaml` |
| 20 | |
| 21 | ## Outputs |
| 22 | |
| 23 | ```json |
| 24 | { |
| 25 | "company_summary": "", |
| 26 | "business_type": "", |
| 27 | "main_products": [], |
| 28 | "target_customers": "", |
| 29 | "countries_served": [], |
| 30 | "evidence": [], |
| 31 | "evidence_status": "verified|no_evidence|fetch_failed", |
| 32 | "possible_needs": [], |
| 33 | "personalization_points": [], |
| 34 | "decision_maker_clues": [], |
| 35 | "contact_email": "", |
| 36 | "contact_phone": "", |
| 37 | "email_result": "found|没有", |
| 38 | "phone_result": "found|没有", |
| 39 | "red_flags": [], |
| 40 | "confidence": "low|medium|high" |
| 41 | } |
| 42 | ``` |
| 43 | |
| 44 | ## Procedure |
| 45 | |
| 46 | 1. If the user provides a URL or list file and no fetched content, run `tools/batch_prospect_pipeline.py` or the relevant crawler-backed tool first. Required command reference: run tools/batch_prospect_pipeline.py before scoring or email drafting. |
| 47 | 2. Read the provided website content, browsing result, or `research_reports.json` output. |
| 48 | 3. Do not output company facts without fetched evidence. If fetching fails, return `evidence_status: "fetch_failed"` and stop at review notes. |
| 49 | 4. Extract observed facts: products, business type, brands, market focus, contact page, about page, and catalog clues. |
| 50 | 5. If the input is a company name or company link, resolve the official website when possible and run official website contact search across homepage, contact, about, team, catalog, and product pages. |
| 51 | 6. Record visible email and phone values as `contact_email` and `contact_phone`; if either value is not found, write `email_result: "没有"` or `phone_result: "没有"` instead of guessing. |
| 52 | 7. Record every fact with an evidence URL and short evidence text. |
| 53 | 8. Identify business type using evidence: importer, distributor, wholesaler, retailer, brand owner, manufacturer, contractor, marketplace seller, or unrelated site. |
| 54 | 9. Compare observed facts against the product context. |
| 55 | 10. Create `possible_needs` only when there is visible product, category, application, or channel overlap. |
| 56 | 11. If fetched pages contain no relevant product or channel clue, return `evidence_status: "no_evidence"` and keep confidence low. |
| 57 | 12. Create personalization points from concrete website facts, not generic praise. |
| 58 | 13. Flag red flags: no business relevance, consumer-only content, inactive website, unverifiable contact, unrelated industry, or low-quality scraped directory. |
| 59 | 14. Return confidence based on evidence quantity and recency. |
| 60 | |
| 61 | ## Verification |
| 62 | |
| 63 | - Every personalization point has website evidence. |
| 64 | - Every observed fact includes an evidence URL. |
| 65 | - Official website contact search is run when a company name, website, or company link is available. |
| 66 | - Contact outputs include `contact_email`, `contact_phone`, `email_result`, and `phone_result`. |
| 67 | - Inferences are labeled as possible needs, not facts. |
| 68 | - No contact name is invented. |
| 69 | - Red flags are present when the website is weak or unrelated. |
| 70 | - Confidence is `low` when evidence is thin. |
| 71 | |
| 72 | ## Common Mistakes |
| 73 | |
| 74 | | Mistake | Fix | |
| 75 | | --- | --- | |
| 76 | | Calling every distributor a strong lead | Require product or channel overlap | |
| 77 | | Saying the company imports a product with no proof | Use "may need" and cite the clue | |
| 78 | | Writing generic personalization | Quote a concrete category, market, or service | |
| 79 | | Ignoring weak websites | Mark confidence and red flags clearly | |