company_skill README

The project's README from github.com/kelvinfkr/company_skill. As one markdown file: README.md.

Company Skills

中文文档:README.zh-CN.md

A public-evidence company research toolkit with two complementary agent skills:

Skill Question it answers Main deliverable
company-talent-economics How much do people earn, how many cross a pay threshold, and which roles are economically critical? Auditable compensation and career report
estimate-layoff-risk What is an employee, intern, contractor, or role group's 3/6/12-month involuntary job-loss risk? Evidence-backed risk intervals and scenario report

Both skills start from business economics and profit pools rather than titles, sentiment, or salary-site anecdotes. They separate public facts, user-provided facts, assumptions, derived metrics, and inference.

The toolkit runs in Claude Code, Codex, and compatible skill hosts. The talent-economics skill supports multilingual typesetting; the layoff-risk skill uses an adaptive candidate interview plus current public research.


Company Talent Economics: what you actually get

A directory of auditable artifacts, with report.pdf as the deliverable:

File What it is
report.pdf The typeset report: 12 sections, cover, localized tables, evidence status on every number
report.json The structured model the PDF is rendered from
analysis_notes.md The nine written-out reasoning chains with intermediate numbers
evidence.jsonl Claim-level ledger: every number, its source, its tier, its claim type
source_manifest.csv Every source searched — including the ones that turned up nothing
model.json / population.json Bucket model and the Monte Carlo population estimate

The method runs one causal chain, in this order:

business model → profit pools → critical processes → critical roles
→ org/level structure → market replacement cost → compensation distribution → promotion paths

A title is not a salary. Two people at the same nominal level are worth different amounts if they control different profit pools, customer relationships or technical bottlenecks — so the analysis starts from where the money is made, not from a salary survey.


Install

Pick one. The first is the shortest; the second is the most portable.

/plugin marketplace add kelvinfkr/company_skill
/plugin install company-talent-economics@company-skill

2. Clone and install (Claude Code + Codex, one command)

git clone https://github.com/kelvinfkr/company_skill.git
cd company_skill
bash install.sh

The current installer symlinks company-talent-economics into ~/.claude/skills/ and ~/.codex/skills/, then checks its dependencies. Because it is a symlink, git pull updates both hosts at once.

Install estimate-layoff-risk separately:

ln -s "$(pwd)/skills/estimate-layoff-risk" ~/.codex/skills/estimate-layoff-risk
# or: cp -R skills/estimate-layoff-risk ~/.codex/skills/

For Claude Code, use ~/.claude/skills/estimate-layoff-risk as the destination instead.

bash install.sh --claude      # Claude Code only
bash install.sh --codex       # Codex only
bash install.sh --project     # also into ./.claude/skills of the current repo
bash install.sh --copy        # copy instead of symlink
bash install.sh --check       # verify dependencies, install nothing
bash install.sh --zip         # build dist/company-talent-economics.zip
bash install.sh --uninstall   # remove the links

One-liner, no clone needed (it fetches the repo into ~/.cache first):

curl -fsSL https://raw.githubusercontent.com/kelvinfkr/company_skill/main/install.sh | bash

3. claude.ai (web / desktop)

bash install.sh --zip

Then upload dist/company-talent-economics.zip at Settings → Capabilities → Skills → Upload skill.

4. Manual

Copy or symlink skills/company-talent-economics/ into any of:

Host Path
Claude Code, global ~/.claude/skills/company-talent-economics/
Claude Code, one project <repo>/.claude/skills/company-talent-economics/
Codex ~/.codex/skills/company-talent-economics/

Requirements

Needed for Install
Python 3.9+ everything already on most systems
python-docx rendering the report pip install -r skills/company-talent-economics/requirements.txt
LibreOffice DOCX → PDF apt install libreoffice-writer / brew install --cask libreoffice
Noto fonts non-Latin scripts apt install fonts-noto-cjk fonts-noto-core

Everything except the renderer is standard library only. Without LibreOffice, render_report.py --docx-only still produces the DOCX. bash install.sh --check tells you exactly what is missing and what it affects.


Use it

Ask for compensation and talent economics:

小米集团的员工薪酬分布是怎样的?年薪超过 100 万的有多少人?
How many people at Siemens earn above €150k, and which roles justify it?
ソニーで年収2000万円を超える社員は何人くらいいますか?

Ask for involuntary job-loss risk:

Use estimate-layoff-risk to assess a Dreame product intern's 3/6/12-month risk.
Interview me first, then research current public evidence and produce scenario ranges.

Or invoke a skill directly:

Host Talent economics Layoff risk
Claude Code /company-talent-economics <company> /estimate-layoff-risk <company and role>
Codex $company-talent-economics <company> $estimate-layoff-risk <company and role>

See the layoff skill's README for its full interview prompt, profit-pool framework, privacy boundaries, CLI pipeline, and fictional worked example.

Driving the harness by hand

S=~/.claude/skills/company-talent-economics

python $S/scripts/init_run.py "小米集团" --out ./talent-economics/xiaomi --year 2025
python $S/scripts/check_phase.py ./talent-economics/xiaomi --next   # prints the next phase's steps
# ...do them...
python $S/scripts/check_phase.py ./talent-economics/xiaomi          # gate check; repeat to phase 10

init_run.py infers language, jurisdiction, currency and threshold from the company name and prints what it chose. Override any of them:

python $S/scripts/init_run.py "Nestlé S.A." --out ./tmp/nestle --year 2024 \
       --jurisdiction ch --language fr --currency CHF --threshold 250000

Ten gates, no shortcuts

check_phase.py is the spine. Each gate mechanically refuses to advance until the work is real: sources are logged, every figure carries an evidence id, the modelled payroll reconciles with the disclosed payroll within ±10%, no TODO survives into report.json. The gate output is the to-do list.

Phase Gate
0 Entity, language, jurisdiction resolved
1 Six search passes logged; core facts sourced
2 Payroll envelope and profit pools written out
3 Level ladder mapped
4 Compensation evidence per band
5 Population model runs and reconciles
6 Three-band pay diagnosis for critical roles
7 ≥8 career transitions
8 Charter, equity, and every prose section filled
9 Cross-checks and sensitivity
10 PDF rendered, inspected, checklist ticked

Languages and countries

The rule

The report follows the language of the company name. If you write your request in a different language from the company name, your language wins — you are the reader.

Resolution order: --language → $CTE_LANG → the script and legal form of the company name.

python $S/scripts/i18n.py detect "台積電股份有限公司"
# {"language": "zh-TW", "confidence": "high", "jurisdiction_hint": "tw", ...}

Any language works; twelve are fully typeset

Two different things get called "language" here:

A language with no pack still produces a full report in that language; the structural labels fall back (zh-HK → zh-TW → en) and the renderer says so. Numbers are scaled the way each language actually says them — 1.2 亿, 120M, 1,2 Mrd., 2 億 — and Arabic and Hebrew render right-to-left, with mirrored tables and footer.

Add a language — one JSON file, no code:

python $S/scripts/check_locales.py --new nl   # scaffolds locales/nl.json from English
# translate the strings; keep the keys and every {placeholder}
python $S/scripts/check_locales.py            # verifies it

49 jurisdictions

assets/jurisdictions.json carries, per country: filing venues to scope site: searches to, the local names of the documents worth fetching, the company registry, currency, a high-pay threshold prior, an employer social-contribution rate, and a note on what that regime is unusually good at — or unusually misleading about.

python $S/scripts/i18n.py jurisdictions            # list all
python $S/scripts/i18n.py jurisdictions japan      # one entry; aliases resolve

Aliases work, so us, usa, america, sec and nasdaq all reach the same entry. Add a country by appending an entry — again, no code change.

Search runs in two languages at once: filings are indexed under their local names (有価証券報告書, Vergütungsbericht, 사업보고서, Formulário de Referência), cross-border analyst coverage under English ones. Searching one side loses half the evidence.

Two registry fields are priors, not facts, and every override is recorded in the notes:


What it refuses to do

These are enforced by the harness, not by good intentions:


Repository layout

.claude-plugin/            plugin + marketplace manifests
install.sh                 installer, dependency check, zip builder
skills/
  company-talent-economics/
    SKILL.md               compensation and career research workflow
    scripts/               ten-gate harness
    locales/               12 chrome locale packs
    assets/                jurisdiction registry, search terms, priors, templates
    references/            economics, evidence, localization, career methods
    schemas/               report / model / evidence JSON schemas
    examples/              worked runs and runnable fixtures
  estimate-layoff-risk/
    README.md              interaction guide and local run instructions
    SKILL.md               layoff-risk workflow and safety boundaries
    scripts/               case setup, interview, search, estimation, rendering, validation
    references/            profit pools, roles, leadership regimes, evidence, calibration
    schemas/               case / evidence / model / report JSON schemas
    examples/              fictional robotics product-intern case
Script Does
init_run.py Create a run; resolve language, jurisdiction, currency, threshold
check_phase.py The ten gates, with the next steps printed on every pass and failure
search_plan.py Six-pass query ladder, venue-scoped and bilingual
build_model.py levels.json → model.json, payroll-envelope check with a TC/revenue fallback
estimate_population.py Monte Carlo estimate of employees above the threshold
pay_band_diagnostic.py Market / economic / internal band overlap
career_graph.py Aggregate observed career transitions
compile_report.py Fill report.json's numeric sections in the run's language
validate_bundle.py Bundle completeness, vocabulary, terminology, affordability
render_report.py JSON → DOCX → PDF, localized chrome, per-script fonts, RTL
i18n.py Language detection, locale packs, jurisdiction registry, formatting
check_locales.py Validate packs and registry; scaffold a new language
selftest.py Drive a synthetic run through all ten gates and every locale

Development

python skills/company-talent-economics/scripts/check_locales.py    # packs + registry
python skills/company-talent-economics/scripts/selftest.py         # gates 0-10, DOCX only
python skills/company-talent-economics/scripts/selftest.py --pdf   # also convert to PDF

selftest.py runs three scenarios end to end — a fully disclosed listed company, an unlisted company that has to take the provisional path, and the literal-[ ]-in-prose case — then renders every locale. CI runs exactly these on every push.


License

MIT. See LICENSE.

company_skill (kelvinfkr/company_skill)

Searching Database…

这是做什么的?一套基于公开信息的公司研究工具包,包含两个智能体技能:一个为公司生成可审计的薪酬与职业经济报告,另一个估算未来 3/6/12 个月非自愿失业的风险。
这是一个独立应用,还是装到我的编程智能体里的东西?它们是智能体技能,不是独立应用:运行在 Claude Code、Codex 及其他兼容的技能宿主里,背后由一套 Python 脚本支撑,比如 initrun.py、checkphase.py 和 renderreport.py。
怎么安装,怎么开始分析?安装 Claude Code 插件(推荐),或者运行一条命令的安装脚本,把技能软链接到 ~/.claude/skills/ 和 ~/.codex/skills/。然后直接让它做薪酬分析或裁员风险分析,或者在智能体里直接调用该技能。
需要装些什么才能运行?需要 Python 3.9+,加上 python-docx;DOCX 转 PDF 那一步需要 LibreOffice,非拉丁文字需要 Noto 字体。运行 bash install.sh --check 会准确列出缺了什么;没有 LibreOffice 时,renderreport.py --docx-only 仍能生成 DOCX。
是不是什么公司都能查?工具只用公开信息,所以非上市公司走临时(preliminary)路径:封面会注明,报告里任何内容都不得当作实测结果。它也绝不越过登录墙、验证码或 robots 限制的来源。
它会猜某个具体的人的工资吗?不会——系统拒绝推断任何私人个体的薪酬。公开的个人资料只用于汇总的岗位分类和职业路径分析,绝不用于推测某个具名人物的工资。
怎么防止 AI 编造数字?十道硬性关卡,工作不达标就不放行:来源必须登记,每个数字都要带证据 id,模型推算的工资总额必须与披露的工资总额对得上(误差 ±10% 以内),不允许残留任何 TODO,统计结果以蒙特卡洛区间而非单点估计给出。
支持哪些语言和国家?正文可以用任何语言;十二个语言区域附带完整排版(英语、简体中文、繁体中文、日语、韩语、西班牙语、法语、德语、葡萄牙语、意大利语、俄语、阿拉伯语),支持从右到左。49 个司法辖区内置申报机构、登记处、货币和薪酬门槛的先验信息,检索为双语进行。
跑完之后我能拿到什么?一个可审计的成果目录:report.pdf 共 12 节,每个数字都标注证据状态;还有 report.json、记录推理链的 analysisnotes.md、证据台账 evidence.jsonl、sourcemanifest.csv,以及包含蒙特卡洛总体估计的 model.json 和 population.json。
裁员风险技能和人才经济技能有什么区别?estimate-layoff-risk 通过自适应的候选访谈加上最新公开研究,估算员工、实习生、外包人员或某个岗位群体在 3/6/12 个月内非自愿失业的风险,产出有证据支撑的风险区间和情景报告。它需要单独于 talent-economics 技能另行安装。
Creator
kelvinfkr
Size
3.1 MB
Stars
213
Updated
CommitAug 25
Age
1mo
Commits · 90 Days