Tianyancha Company Insight Dashboard Skill — Enter a company name to automatically generate a single-file HTML dashboard containing company overview, job openings analysis, data analysis, judicial risk, financing history, shareholder structure, intellectual property, outbound investment, and key personnel.
Export Notes: This Skill has been exported from the original Kimi environment and is adapted for use by other Kimi Work users.
kimi_search_v2andPythonRunare both built-in Kimi Work tools and require no modification.
Trigger Conditions
Triggered when the user mentions the following keywords:
- Tianyancha, company lookup, company information, company dashboard, company search
- recruitment search, job openings, job list, job analysis, recruitment analysis
- judicial risk, legal litigation, court hearing announcements
- financing situation, financing history, shareholder information
- business registration information, key personnel, company insights
- intellectual property, patents, trademarks, software copyrights
- outbound investment, establishment date, number of insured employees
- job data analysis, recruitment data analysis, recruitment trends
- company health, job-seeking advice, company reviews, company analysis
- recruitment forecast, salary analysis, job-seeking reference
- industry analysis, industry insights, leading companies, industry rankings, big tech comparison
- AI large models, internet, e-commerce, fintech, new energy and other industry names + dashboard/analysis/insights
Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
# Check project-level first
test -f .canghe-skills/canghe-tianyancha/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.canghe-skills/canghe-tianyancha/EXTEND.md" && echo "user"
| Path | Location |
|---|---|
.canghe-skills/canghe-tianyancha/EXTEND.md |
Project directory |
$HOME/.canghe-skills/canghe-tianyancha/EXTEND.md |
User home |
| Result | Action |
|---|---|
| Found | Read, parse, display summary |
| Not found | Ask user with AskUserQuestion (see references/config/first-time-setup.md) |
EXTEND.md Supports: default output directory, recent job analysis window, industry company count, preferred data sources, report language, and whether to include dashboard disclaimers.
Schema: references/config/preferences-schema.md
Usage
Execution Flow
Mode 1 — Single Company Query (enter company name)
- Extract the company name from the user input
- Use
kimi_search_v2to search company data in parallel:{企业名} 天眼查 在招岗位 招聘 岗位分析{企业名} 天眼查 司法风险 法律诉讼{企业名} 天眼查 融资历史 股东信息{企业名} 天眼查 工商信息 主要人员 成立时间 参保人数{企业名} 天眼查 知识产权 专利 商标 软件著作权{企业名} 天眼查 对外投资
- After structured extraction, call
generate_dashboard()to generate a single-company dashboard
Mode 2 — Industry Query (enter industry name)
- Extract the industry name from the user input (e.g., "AI large models", "internet", "e-commerce")
- Use
kimi_search_v2to search for the list of leading companies in that industry:{行业名} 头部企业 排名 大厂 天眼查{行业名} 公司 融资 在招岗位 天眼查
- Extract the core data of the TOP 5-10 leading companies (name, job openings, establishment date, registered capital, financing round, number of insured employees, headquarters city, core products)
- Collect complete data for each leading company(business registration information, job openings, judicial risk, financing history, shareholder structure, intellectual property, outbound investment, key personnel)
- Call
generate_industry_with_companies()to generate in batch:- An independent "Company Insight Dashboard" for each company
- An industry insight dashboard (company cards are clickable to jump to the corresponding company dashboard)
Script Directory
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>.py - Replace all
${SKILL_DIR}in this document with the actual path
Script Reference:
| Script | Purpose |
|---|---|
scripts/generate_dashboard.py |
Generates single-company, industry, and batch HTML dashboards |
Industry Dashboard Data Structure
industry_data fields:
industry_name: industry nameindustry_desc: industry introduction (optional)companies: list of leading companies, each item containing:name: company namejobs_total: total number of job openingsestablished_date: establishment dateregistered_capital: registered capitalstatus: business statusscale: company sizefunding_rounds: number of financing roundstianyancha_url: Tianyancha detail page linkkey_products: core products/businessemployees: employee size/number of insured employeescity: Headquarters Cityindustry_segment: Sub-sector
Industry Dashboard Content
The industry insight dashboard includes:
- Industry Overview — Number of leading companies, total number of open positions, total number of insured persons, summary of financing rounds
- Leading Company Cards — Each company displays: open positions, financing rounds, number of insured persons, year of establishment, headquarters city, registered capital, company size, core products. The card can be clicked to jump to that company's separate "Company Insight Dashboard", while retaining the "Tianyancha Details" external link
- Open Positions Comparison — Horizontal bar chart of TOP10 companies
- Financing Activity Comparison — Comparison of financing rounds of TOP10 companies
- Establishment Time Distribution — Statistics of the number of companies established by year
- Company Size Distribution — Pie chart showing size distribution
- Headquarters City Distribution — Bar chart showing city concentration
- Disclaimer — Data is for reference only and does not constitute investment advice
Dashboard Generation Code
Single Company Dashboard
import sys
sys.path.insert(0, '${SKILL_DIR}/scripts')
from generate_dashboard import generate_dashboard
# 请替换 {workspace_path} 为你的实际工作区路径,例如:
# macOS: /Users/<你的用户名>/Documents/kimi/workspace
# Windows: C:\Users\<你的用户名>\Documents\kimi\workspace
filepath = generate_dashboard(company_data, '{workspace_path}')
print(f"看板已生成: {filepath}")
Industry Dashboard
import sys
sys.path.insert(0, '${SKILL_DIR}/scripts')
from generate_dashboard import generate_industry_dashboard
filepath = generate_industry_dashboard(industry_data, '{workspace_path}')
print(f"行业看板已生成: {filepath}")
Batch Generation (Industry Dashboard + Company Dashboards)
Generate the industry insight dashboard + separate insight dashboards for all leading companies at the same time; company cards can be clicked to jump:
import sys
sys.path.insert(0, '${SKILL_DIR}/scripts')
from generate_dashboard import generate_industry_with_companies
result = generate_industry_with_companies(
industry_data, # 行业数据(同 generate_industry_dashboard)
companies_data_list, # 企业数据列表(每个元素同 generate_dashboard 的 company_data)
'{workspace_path}'
)
print(f"行业看板: {result['industry_dashboard']}")
print(f"企业看板: {result['company_dashboards']}")
print(f"所有文件: {result['all_files']}")
Batch Generation Process:
- First generate a separate
企业洞察看板_{企业名}.html - for each company, then generate the industry dashboard; company cards automatically link to the corresponding company dashboard file
- Company cards provide two entries: "Company Insight Dashboard" (local) and "Tianyancha Details" (external)
Company Profile Fields
established_date: Establishment Time (string, e.g. "1999-09-09")registered_capital: Registered Capital (string, e.g. "10000万元")paid_in_capital: Paid-in Capital (string)legal_representative: Legal Representative (string)social_credit_code: Unified Social Credit Code (string)company_type: Company Type (string, e.g. "有限责任公司")insured_count: Number of Insured Persons (int)business_scope: Business Scope (string)
Open Position Fields
title: Job Titlesalary: Salary Rangecity: Cityeducation: Education Requirementexperience: Experience Requirementsource: Recruitment Platform Sourcedate: Publish Date (YYYY-MM-DD format)url/webInfoPath: Job Link (prefer webInfoPath)startDate: Timestamp (milliseconds, optional)
Judicial Risk Fields
title: Case Namedate: Datetype: Risk Level (High Risk/Medium Risk/Low Risk)status: Case Status
Financing History Fields
round: Financing Roundamount: Financing Amountdate: Financing Dateinvestor: Investor
Shareholder Structure Fields
name: Shareholder Nameratio: Shareholding Ratioamount: Subscribed Amount
Intellectual Property Fields
type: Type (Patent/Trademark/Software Copyright)name: Namedate: Application/Registration Datestatus: Statuscategory: Category
Outbound Investment Fields
company: Investee Company Nameamount: Investment Amountratio: Shareholding Ratiostatus: Investment Statusdate: Investment Dateindustry: Industry of Investee Company
Key Personnel Fields
name: Nameposition: Positioneducation: Education
Stage 3 — Dashboard Generation
Use PythonRun to call generate_dashboard.py to generate the HTML dashboard:
import sys
sys.path.insert(0, '${SKILL_DIR}/scripts')
from generate_dashboard import generate_dashboard
filepath = generate_dashboard(company_data, '{workspace_path}')
print(f"看板已生成: {filepath}")
Dashboard Tab Structure
The dashboard contains 9 tabs, with "Company Overview" displayed by default:
- Company Overview — Basic business information (establishment date, registered capital, paid-in capital, legal representative, number of insured employees, company type, unified social credit code), business scope, core data summary
- Job Posting Analysis — Multi-dimensional data analysis view (does not display job listings, purely chart-based analysis)
- Data Analysis — Company health assessment, recruitment trend forecast, job seeker friendliness, salary competitiveness, risk warnings, city expansion analysis, job type distribution, comprehensive job search recommendations
- Judicial Risk — Legal litigation, court hearing announcements, etc.
- Financing History — Financing rounds, amounts, investors
- Shareholder Structure — Shareholder names, shareholding ratios, subscribed amounts
- Intellectual Property — Patent, trademark, software copyright statistics and details
- Outbound Investment — Investee companies, amounts, shareholding ratios, industries
- Key Personnel — Executive list
Job Posting Analysis Dimensions
The "Job Posting Analysis" tab does not display job listing cards, but instead uses a pure data analysis view, containing 7 ECharts charts:
| Chart | Type | Dimension |
|---|---|---|
| City Distribution | Donut Pie Chart | Jobs counted by city |
| Education Requirements | Horizontal Bar Chart | Bachelor's/Master's/Associate Degree/Unlimited |
| Salary Distribution | Bar Chart | Below 10K/10-20K/20-30K/30-50K/50K+ |
| Experience Requirements | Bar Chart | Unlimited/1-3 years/3-5 years/5-10 years/10+ years |
| Recruitment Platform Source | Donut Pie Chart | BOSS Zhipin/Lagou/Zhaopin/Liepin, etc. |
| Posting Time Trend | Area Line Chart | Trend of job posting counts over the past 13 weeks |
| TOP Popular Jobs | Horizontal Bar Chart | TOP 10 counted by job title keywords |
Supports switching between two data ranges, "This Quarter" (default, 90 days) and "All"; after switching, all charts refresh in sync.
Job Data Analysis Timeliness Specification
Core rule: only display job data analysis for the most recent quarter (90 days).
- Fixed Filtering: All charts are fixed to analyze job data from the most recent 90 days; no "All" historical data switch is provided
- Quantity Display: The title displays
(本季度 X 个) - Prompt Bar: The blue notice bar states "Currently displaying job data analysis for the last 90 days (one quarter)"
- Disclaimer: Below the notice bar, gray text is displayed: "Data is for reference only, please refer to actual conditions"
- Chart Dimensions: City distribution, education requirements, salary distribution, experience requirements, recruitment platform sources, posting time trends, TOP popular jobs
Job Data Interaction Specifications
- Filter Toggle: The "This Quarter"/"All" buttons switch the data range, and the 7 charts refresh in sync
- Responsive Charts: All charts adapt to window size
- Chart Tooltips: Hovering the mouse displays detailed data tooltip
- Empty Data Handling: When there is no data for a dimension, the chart area displays "No XX data available"
Data Analysis Dimensions
Python side analyze_jobs() function extracts the following analysis dimensions from the job list:
- City Distribution: Counted by the
cityfield, returns[{name, value}] - Education Distribution: Counted by the
educationfield, returns{categories, values} - Salary Distribution: Parses the
salaryfield (e.g. "25K-40K"), counted by range - Experience Distribution: Counted by the
experiencefield - Source Distribution: Counts recruitment platforms by the
sourcefield - Time Trend: Counts the number of job postings per week for the last 13 weeks
- TOP Jobs: Extracts core words from job titles (removing modifier suffixes), counts TOP10
Data Analysis Module
The "Data Analysis" Tab performs in-depth analysis and prediction based on all enterprise data, helping job seekers fully understand the company's situation.
Enterprise Health Assessment
Comprehensive score (out of 100), assessed from four dimensions:
| Dimension | Weight | Scoring Basis |
|---|---|---|
| Recruitment Activity | 30 points | Total number of active job postings: ≥500(30)/≥200(25)/≥50(18)/>0(10) |
| Enterprise Stability | 30 points | Years established + number of insured employees + operating status |
| Development Potential | 20 points | Financing round + number of intellectual property rights |
| Risk Level | 20 points | Number of judicial risks: high risk (-8)/medium risk (-4) |
Score levels: ≥85 Excellent / ≥70 Good / ≥50 Average / ≥30 Weak / <30 Poor
Recruitment Trend Forecast
Based on job posting data for the last 13 weeks, uses simple linear regression to predict recruitment volume for the next 4 weeks:
- Trend Judgment: Rising (slope > 0.5) / Falling (slope < -0.5) / Stable
- Forecast Chart: Historical data (solid line) + forecast data (dashed line)
- Application Advice: Provides advice on application timing based on the trend
Job Seeker Friendliness (out of 100)
| Dimension | Weight | Scoring Basis |
|---|---|---|
| Education Threshold | 25 points | Proportion of positions requiring associate degree or no requirement: ≥30%(25)/≥15%(18)/<15%(10) |
| Experience Requirement | 25 points | Proportion of positions with no requirement/low experience: ≥40%(25)/≥20%(18)/<20%(10) |
| Job Diversity | 25 points | Number of job types: ≥5(25)/≥3(18)/≥2(12)/1(5) |
| Salary Competitiveness | 25 points | Average salary: ≥35K(25)/≥25K(20)/≥15K(15)/<15K(8) |
Salary Competitiveness Rating
Based on the proportion of high-salary positions (30K+):
- Strong: ≥40% high-salary positions
- Relatively Strong: ≥20% high-salary positions
- Average: <20% high-salary positions
Risk Warning
Based on judicial risk data:
- No Risk: No judicial records
- Low Risk: Only low-risk records
- Medium Risk: Medium-risk records exist
- High Risk: High-risk records exist
City Expansion Analysis
Based on recruitment city distribution:
- Multi-City Expansion: ≥5 cities, largest city proportion <60%
- Regional Expansion: ≥3 cities
- Concentrated Development: <3 cities
Job Type Distribution
Automatically classify positions as: Technical/Product/Operations/Sales/Functional/Design/Other
Comprehensive Job Seeking Advice
Automatically generate 3-6 job seeking suggestions based on the above analysis, including:
- Overall Company Condition Evaluation
- Application Timing Suggestions
- Job Seeker Friendliness Evaluation
- Salary Competitiveness Evaluation
- Risk Alerts
- Other Featured Suggestions (outbound investment, intellectual property, etc.)
Output
- Single Company Dashboard:
{workspace_path}/企业洞察看板_{企业名}.html - Industry Dashboard:
{workspace_path}/行业洞察看板_{行业名}.html - Batch Generation: Simultaneously output industry dashboard + N company dashboards, company cards support click-through
- Single-file HTML, zero backend dependency, directly open in browser
- Uses Tailwind CSS + ECharts, responsive layout
Notes
- The Tianyancha API returns a limited number of positions per request, usually only the first 20, and the analysis results are based on available data
- Total number of positions
jobs_totalmay be inconsistent with the analysis sample size, which has been explained via quantity labels - Closed positions may still appear in API data, mitigated by the default "this quarter" filter
- The Tianyancha enterprise database cannot be directly called programmatically by code, and is actually obtained via
kimi_search_v2to retrieve public data - Intellectual property and outbound investment data may be incomplete; refer to Tianyancha public disclosures
- Salary distribution is calculated by parsing the
salarystring (e.g. "25K-40K") to compute the average and then categorize, and there may be errors - Recruitment Trend ForecastBased on simple linear regression, for reference only, and does not constitute investment advice
- Company Health ScoreTo comprehensively evaluate the model, the weights of each dimension can be adjusted according to actual circumstances.
- Job Search AdviceAutomatically generated by the algorithm; it is recommended to make a comprehensive judgment based on your personal situation.
Extension Support
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.