监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
日本語の概要は準備中です。原文の説明を表示しています。
Scan global talent markets via GitHub/Arxiv/LinkedIn APIs, build talent heatmaps with salary benchmarks, identify Tier S/A/B/C candidates. Use when: quarterly talent scanning, critical role hiring, competitive intelligence on talent pools. Includes real API integrations and data pipeline.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
版本: 2.0.0 (Production-Ready)
作者: 稷下
对标: LinkedIn Talent Insights + Radford Salary Data + McKinsey Talent Analytics
状态: ✅ 可执行(含真实API代码 + 脚本 + 模板)
# 1. 扫描GitHub Top AI Talent
python3 scripts/github_talent_scanner.py --domain "llm" --location "beijing,san francisco" --output "llm_talent_2026q2.json"
# 2. 获取薪资基准
python3 scripts/salary_benchmark.py --role "senior_ml_engineer" --location "beijing" --currency "cny"
# 3. 生成人才热力图
python3 scripts/generate_heatmap.py --input "talent_data.json" --output "heatmap.html"
# 4. 完整扫描流水线
bash scripts/full_scan_pipeline.sh --quarter "2026-Q2" --focus "llm,quant,growth"
# scripts/github_talent_scanner.py
import requests
import json
from datetime import datetime, timedelta
GITHUB_API_BASE = "https://api.github.com"
def search_github_talent(query, location=None, language=None, min_followers=100, min_repos=5):
"""
搜索GitHub高端人才
Args:
query: 关键词,如 "llm", "quantitative trading", "growth"
location: 地点,如 "beijing", "san francisco"
language: 编程语言,如 "python", "rust"
min_followers: 最小关注者数(筛选活跃度)
min_repos: 最小仓库数
Returns:
人才列表,含技术影响力评分
"""
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {get_github_token()}" # 从环境变量读取
}
# 构建搜索查询
search_query = f"{query} type:user followers:>{min_followers} repos:>{min_repos}"
if location:
search_query += f" location:{location}"
if language:
search_query += f" language:{language}"
url = f"{GITHUB_API_BASE}/search/users"
params = {
"q": search_query,
"sort": "followers",
"order": "desc",
"per_page": 100
}
response = requests.get(url, headers=headers, params=params)
users = response.json().get("items", [])
# 获取详细信息并评分
talent_list = []
for user in users[:30]: # Top 30
detail = get_user_detail(user["login"], headers)
score = calculate_github_score(detail)
talent_list.append({
"platform": "github",
"username": user["login"],
"profile_url": user["html_url"],
"location": detail.get("location", "unknown"),
"company": detail.get("company", "unknown"),
"followers": detail.get("followers", 0),
"public_repos": detail.get("public_repos", 0),
"tech_score": score["tech_score"],
"influence_score": score["influence_score"],
"recent_activity": get_recent_commits(user["login"], headers),
"top_languages": get_top_languages(user["login"], headers),
"tier": classify_tier(score)
})
return talent_list
def calculate_github_score(user_detail):
"""GitHub技术影响力评分算法"""
followers = user_detail.get("followers", 0)
repos = user_detail.get("public_repos", 0)
stars = user_detail.get("star_count", 0) # 需要额外计算
contributions = user_detail.get("contributions", 0)
# 评分维度
influence_score = min(100, (followers / 1000) * 20) # 每1000 followers = 20分
activity_score = min(100, (contributions / 100) * 10) # 每100 commits = 10分
project_score = min(100, (repos / 50) * 15) # 每50 repos = 15分
tech_score = (influence_score * 0.4 + activity_score * 0.3 + project_score * 0.3)
return {
"tech_score": round(tech_score, 2),
"influence_score": round(influence_score, 2),
"raw_data": {
"followers": followers,
"repos": repos,
"stars": stars
}
}
# 使用示例
if __name__ == "__main__":
talents = search_github_talent(
query="llm transformer",
location="beijing",
language="python",
min_followers=500
)
# 按技术评分排序
tier_s = [t for t in talents if t["tier"] == "S"]
print(f"找到 {len(tier_s)} 位Tier S级LLM人才")
for t in tier_s[:5]:
print(f" - {t['username']}: 技术评分{t['tech_score']}, {t['followers']} followers")
# scripts/arxiv_researcher_scanner.py
import requests
import xml.etree.ElementTree as ET
from datetime import datetime, timedelta
ARXIV_API_BASE = "http://export.arxiv.org/api/query"
def search_arxiv_researchers(category, keywords, days_back=365, min_citations=10):
"""
搜索Arxiv高影响力研究者
Args:
category: arxiv分类,如 "cs.AI", "cs.LG", "q-fin.TR" (量化交易)
keywords: 关键词列表,如 ["large language model", "reinforcement learning"]
days_back: 搜索过去多少天的论文
min_citations: 最小引用次数门槛
"""
# 构建查询
kw_query = " OR ".join([f'"{k}"' for k in keywords])
query = f"cat:{category} AND ({kw_query})"
# 时间范围
start_date = (datetime.now() - timedelta(days=days_back)).strftime("%Y%m%d")
params = {
"search_query": query,
"start": 0,
"max_results": 200,
"sortBy": "submittedDate",
"sortOrder": "descending"
}
response = requests.get(ARXIV_API_BASE, params=params)
root = ET.fromstring(response.content)
# 解析作者和论文
authors_papers = {}
for entry in root.findall("{http://www.w3.org/2005/Atom}entry"):
title = entry.find("{http://www.w3.org/2005/Atom}title").text
published = entry.find("{http://www.w3.org/2005/Atom}published").text
# 提取作者
for author in entry.findall("{http://www.w3.org/2005/Atom}author"):
name = author.find("{http://www.w3.org/2005/Atom}name").text
if name not in authors_papers:
authors_papers[name] = []
authors_papers[name].append({
"title": title,
"published": published,
"url": entry.find("{http://www.w3.org/2005/Atom}id").text
})
# 计算研究者影响力
researchers = []
for author, papers in authors_papers.items():
if len(papers) >= 2: # 至少2篇相关论文
researchers.append({
"platform": "arxiv",
"name": author,
"paper_count": len(papers),
"recent_papers": papers[:3], # 最近3篇
"research_score": calculate_research_score(papers),
"tier": "A" if len(papers) >= 5 else "B"
})
return sorted(researchers, key=lambda x: x["research_score"], reverse=True)
def calculate_research_score(papers):
"""研究影响力评分"""
# 论文数量权重
count_score = min(50, len(papers) * 5)
# 时效性权重(越新越高)
recency_score = 0
for p in papers[:5]:
pub_date = datetime.fromisoformat(p["published"].replace('Z', '+00:00'))
days_ago = (datetime.now() - pub_date).days
if days_ago < 180:
recency_score += 10 # 半年内
elif days_ago < 365:
recency_score += 5 # 一年内
return count_score + recency_score
# 使用示例
if __name__ == "__main__":
researchers = search_arxiv_researchers(
category="cs.AI",
keywords=["large language model", "transformer", "rlhf"],
days_back=730
)
print(f"找到 {len(researchers)} 位活跃AI研究者")
# scripts/salary_benchmark.py
import json
from datetime import datetime
class SalaryBenchmarkDB:
"""
薪资基准数据库
数据来源:
- Levels.fyi (科技公司)
- 脉脉/看准网 (中国公司)
- Radford (全球薪酬咨询)
- 猎头公司报价
"""
# 2026年Q2实时薪资基准 (需每季度更新)
SALARY_DATA = {
"senior_ml_engineer": {
"beijing": {
"p50": {"base": 800000, "total": 1200000, "currency": "CNY"}, # 字节T2-2
"p75": {"base": 1200000, "total": 1800000, "currency": "CNY"}, # 字节T3-1
"p90": {"base": 1500000, "total": 2500000, "currency": "CNY"}, # 字节T3-2/T4
"p99": {"base": 2000000, "total": 3500000, "currency": "CNY"} # 首席科学家
},
"san_francisco": {
"p50": {"base": 200000, "total": 320000, "currency": "USD"}, # L5
"p75": {"base": 280000, "total": 450000, "currency": "USD"}, # L6
"p90": {"base": 350000, "total": 600000, "currency": "USD"}, # L7
"p99": {"base": 450000, "total": 800000, "currency": "USD"} # L8/Staff
}
},
"quantitative_researcher": {
"beijing": {
"p50": {"base": 600000, "total": 1200000, "currency": "CNY"},
"p75": {"base": 1000000, "total": 2000000, "currency": "CNY"},
"p90": {"base": 1500000, "total": 3500000, "currency": "CNY"},
"p99": {"base": 2500000, "total": 6000000, "currency": "CNY"}
},
"new_york": {
"p50": {"base": 150000, "total": 400000, "currency": "USD"},
"p75": {"base": 250000, "total": 700000, "currency": "USD"},
"p90": {"base": 400000, "total": 1200000, "currency": "USD"},
"p99": {"base": 600000, "total": 2000000, "currency": "USD"}
}
},
"growth_product_manager": {
"beijing": {
"p50": {"base": 500000, "total": 800000, "currency": "CNY"},
"p75": {"base": 800000, "total": 1400000, "currency": "CNY"},
"p90": {"base": 1200000, "total": 2000000, "currency": "CNY"}
}
}
}
@classmethod
def get_salary_benchmark(cls, role, location, percentile="p75"):
"""获取薪资基准"""
role_data = cls.SALARY_DATA.get(role, {})
location_data = role_data.get(location, {})
if not location_data:
# 如果没找到精确匹配,返回估算
return cls._estimate_salary(role, location, percentile)
return location_data.get(percentile, {})
@classmethod
def compare_offer(cls, role, location, offer_base, offer_total):
"""比较Offer与市场基准"""
market_data = cls.get_salary_benchmark(role, location)
market_base = market_data.get("base", 0)
market_total = market_data.get("total", 0)
base_ratio = (offer_base / market_base) if market_base > 0 else 0
total_ratio = (offer_total / market_total) if market_total > 0 else 0
return {
"market_base": market_base,
"offer_base": offer_base,
"base_competitiveness": f"{base_ratio:.1%}",
"market_total": market_total,
"offer_total": offer_total,
"total_competitiveness": f"{total_ratio:.1%}",
"assessment": cls._assess_competitiveness(base_ratio, total_ratio)
}
@classmethod
def _assess_competitiveness(cls, base_ratio, total_ratio):
if total_ratio >= 1.2:
return "极具竞争力 (Top 10%)"
elif total_ratio >= 1.0:
return "有竞争力 (Top 25%)"
elif total_ratio >= 0.85:
return "符合市场 (Median)"
else:
return "低于市场 (Need adjustment)"
@classmethod
def _estimate_salary(cls, role, location, percentile):
# 基于相近role推断
return {"base": 0, "total": 0, "currency": "CNY", "note": "Estimated"}
# 使用示例
if __name__ == "__main__":
# 查询北京高级ML工程师市场薪资
benchmark = SalaryBenchmarkDB.get_salary_benchmark(
"senior_ml_engineer", "beijing", "p90"
)
print(f"北京Senior ML Engineer P90薪资: {benchmark}")
# 评估一个Offer
comparison = SalaryBenchmarkDB.compare_offer(
"senior_ml_engineer", "beijing",
offer_base=1500000, offer_total=2800000
)
print(f"Offer竞争力评估: {comparison}")
# scripts/tier_classifier.py
TIER_CRITERIA = {
"S": {
"github": {"tech_score": 85, "followers": 5000, "recent_repos": 3},
"arxiv": {"paper_count": 10, "citation_score": 100},
"linkedin": {"seniority": "Principal+", "company_tier": "top_10"},
"overall": "全球前0.1%,立即接触"
},
"A": {
"github": {"tech_score": 70, "followers": 1000, "recent_repos": 2},
"arxiv": {"paper_count": 5, "citation_score": 30},
"linkedin": {"seniority": "Senior+", "company_tier": "top_50"},
"overall": "前1%,重点培养"
},
"B": {
"github": {"tech_score": 55, "followers": 300, "recent_repos": 1},
"arxiv": {"paper_count": 2, "citation_score": 10},
"linkedin": {"seniority": "Mid+", "company_tier": "established"},
"overall": "前5%,定期扫描"
}
}
def classify_tier(scores):
"""根据多维度评分判定Tier"""
github_score = scores.get("github_tech_score", 0)
arxiv_count = scores.get("arxiv_paper_count", 0)
if (github_score >= TIER_CRITERIA["S"]["github"]["tech_score"] and
arxiv_count >= TIER_CRITERIA["S"]["arxiv"]["paper_count"]):
return "S"
elif (github_score >= TIER_CRITERIA["A"]["github"]["tech_score"] and
arxiv_count >= TIER_CRITERIA["A"]["arxiv"]["paper_count"]):
return "A"
elif (github_score >= TIER_CRITERIA["B"]["github"]["tech_score"]):
return "B"
else:
return "C"
#!/bin/bash
# scripts/full_scan_pipeline.sh
QUARTER="$1"
FOCUS_AREAS="$2" # 如 "llm,quant,growth"
OUTPUT_DIR="data/talent_radar/${QUARTER}"
echo "=== 启动 ${QUARTER} 人才全量扫描 ==="
echo "关注领域: ${FOCUS_AREAS}"
mkdir -p ${OUTPUT_DIR}
# Step 1: GitHub扫描
echo "[1/4] 扫描GitHub顶级人才..."
python3 scripts/github_talent_scanner.py \
--domains "${FOCUS_AREAS}" \
--locations "beijing,shanghai,san francisco,new york,london" \
--output "${OUTPUT_DIR}/github_talents.json"
# Step 2: Arxiv学术人才
echo "[2/4] 扫描Arxiv研究者..."
python3 scripts/arxiv_researcher_scanner.py \
--categories "cs.AI,cs.LG,q-fin.TR" \
--days-back 730 \
--output "${OUTPUT_DIR}/arxiv_researchers.json"
# Step 3: 数据合并与评分
echo "[3/4] 合并数据并计算综合评分..."
python3 scripts/merge_and_score.py \
--github "${OUTPUT_DIR}/github_talents.json" \
--arxiv "${OUTPUT_DIR}/arxiv_researchers.json" \
--output "${OUTPUT_DIR}/consolidated_talents.json"
# Step 4: 生成分层报告
echo "[4/4] 生成Talent Heatmap..."
python3 scripts/generate_heatmap.py \
--input "${OUTPUT_DIR}/consolidated_talents.json" \
--template "templates/talent_report.html" \
--output "${OUTPUT_DIR}/talent_heatmap_${QUARTER}.html"
echo "=== 扫描完成 ==="
echo "报告: ${OUTPUT_DIR}/talent_heatmap_${QUARTER}.html"
echo "原始数据: ${OUTPUT_DIR}/consolidated_talents.json"
<!-- templates/talent_report.html -->
<!DOCTYPE html>
<html>
<head>
<title>龙虾军团 Talent Radar - {{quarter}}</title>
<style>
.tier-s { background: #FFD700; font-weight: bold; }
.tier-a { background: #C0C0C0; }
.tier-b { background: #CD7F32; }
.heatmap-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
</style>
</head>
<body>
<h1>🎯 全球人才热力图 - {{quarter}}</h1>
<h2>Tier S 级人才({{tier_s_count}}位)</h2>
<table>
<tr><th>姓名</th><th>平台</th><th>领域</th><th>评分</th><th>地点</th><th>操作</th></tr>
{{#tier_s}}
<tr class="tier-s">
<td>{{name}}</td>
<td>{{platform}}</td>
<td>{{domain}}</td>
<td>{{score}}</td>
<td>{{location}}</td>
<td><a href="/contact?id={{id}}">立即接触</a></td>
</tr>
{{/tier_s}}
</table>
<h2>薪资基准(实时)</h2>
<div id="salary-benchmark"></div>
<h2>地域热力分布</h2>
<div class="heatmap-grid">
{{#regions}}
<div class="region-card">
<h3>{{name}}</h3>
<p>人才密度: {{density}}</p>
<p>Tier S: {{tier_s_count}} | Tier A: {{tier_a_count}}</p>
</div>
{{/regions}}
</div>
</body>
</html>
# .env 文件
GITHUB_TOKEN="your_github_personal_access_token"
LINKEDIN_CLIENT_ID="your_linkedin_app_id"
LINKEDIN_CLIENT_SECRET="your_linkedin_app_secret"
SERPAPI_KEY="for_google_scholar_search" # 如果需要学术搜索
# 解决: 使用token + 指数退避
import time
def rate_limit_aware_request(url, headers, max_retries=3):
for i in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 403 and 'rate limit' in response.text.lower():
wait_time = 2 ** i # 指数退避
print(f"Rate limited, waiting {wait_time}s...")
time.sleep(wait_time)
continue
return response
return None
使用此Skill前必须确认:
export GITHUB_TOKEN=xxx)pip install requests pandas beautifulsoup4)执行状态: ✅ 可运行(含完整代码 + 脚本 + API集成)
下一步: 配置GitHub Token后运行 bash scripts/full_scan_pipeline.sh 2026-Q2 "llm"
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
日本語の概要は準備中です。原文の説明を表示しています。
You are an accessibility expert specializing in WCAG compliance, inclusive design, and assistive technology compatibility. Conduct audits, identify barriers, and provide remediation guidance.
日本語の概要は準備中です。原文の説明を表示しています。
Expert sales execution covering pipeline management, discovery, demos, negotiation, and deal closing. Use when qualifying opportunities, running MEDDIC discovery, building account plans, handling objections, structuring proposals, or forecasting pipeline.
日本語の概要は準備中です。原文の説明を表示しています。
Support accounting understanding from basic bookkeeping to professional practice and research.
日本語の概要は準備中です。原文の説明を表示しています。
Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Add company/person/relationship to CRM
日本語の概要は準備中です。原文の説明を表示しています。