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 месяцев.
Это отдельное приложение или что-то, что я устанавливаю в своего coding-агента?Это скиллы для агентов, а не отдельное приложение: они работают внутри Claude Code, Codex и совместимых хостингов скиллов, опираясь на Python-обвязку из скриптов вроде initrun.py, checkphase.py и renderreport.py.
Как его установить и запустить анализ?Установите плагин для Claude Code (рекомендуется) или запустите установщик одной командой, который сделает символические ссылки на скилл в ~/.claude/skills/ и ~/.codex/skills/. Затем просто попросите провести анализ зарплат или риск увольнения — либо вызовите скилл в своём агенте напрямую.
Что должно быть установлено, чтобы всё работало?Python 3.9+ плюс python-docx, LibreOffice для шага конвертации DOCX в PDF и шрифты Noto для письменностей на основе не-латиницы. Команда bash install.sh --check точно покажет, чего не хватает; без LibreOffice renderreport.py --docx-only всё равно создаст DOCX.
Он подходит для любой компании?Используются только публичные данные, поэтому для непубличной компании анализ идёт по «предварительному» пути: на обложке это указано, и ничего из отчёта нельзя выдавать за измеренные факты. Кроме того, он никогда не преодолевает логины, капчи и источники с ограничениями robots.
Он будет угадывать зарплаты конкретных людей?Нет — обвязка отказывается делать выводы о доходе любого частного лица. Публичные профили используются только для агрегированной таксономии ролей и карьерных переходов, но никогда — для зарплаты конкретного человека.
Что мешает ИИ просто выдумать цифры?Десять механических проверок не дают продвинуться дальше, пока работа не сделана по-настоящему: источники зафиксированы, у каждой цифры есть 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