Hacker News· haydermuhib·· 8 天前AI 评分22
StackCheck:本地优先的技术栈情报与薪资基准工具
Show HN: StackCheck – Local-first tech stack intelligence and salary benchmarks
AI 导读
StackCheck 是一个本地优先的技术栈市场情报工具,从 HiringCafe 抓取实时招聘信息,用 Streamlit 仪表盘展示技术需求排名、技能组合与薪资基准。
正文 · AI 翻译
技术栈市场情报引擎与数据分析仪表板
从实时招聘信息中追踪技术需求、技能组合和薪酬基准。
快速安装
安装独立二进制文件,无需外部依赖:
macOS 和 Linux
curl -fsSL https://raw.githubusercontent.com/haydermuhib/StackCheck/main/install.sh | bashWindows (PowerShell)
curl.exe -L "https://github.com/haydermuhib/StackCheck/releases/latest/download/StackCheck-windows-x64.exe" -o StackCheck.exe; .\StackCheck.exe
你也可以直接从 GitHub Releases 下载 StackCheck-windows-x64.exe。如果 Windows SmartScreen 在首次启动时提示,请选择更多信息,然后选择仍要运行。
运行 Web 仪表板:
stackcheck
概述
StackCheck 从 HiringCafe 收集实时招聘信息,通过基于章节的加权提取技术要求,并在本地 Streamlit 仪表板中可视化市场统计数据。它帮助工程师和分析师评估技术需求、检查技能组合,并对跨区域就业市场的薪酬进行基准测试。
Web 仪表板界面
| 高管市场概览 | 地域薪酬分布 |
|---|---|
![]() 关键指标卡片、加权技术技能频率排名和领域类别细分。 |
![]() 国家级薪酬条带散点图,带有水平中位数基准线。 |
| 经验与雇主分析 | 交互式职位浏览器 |
![]() 资历技能差异、薪酬层级表、招聘雇主和技能栈复杂度。 |
![]() 可搜索的职位记录,包含解析后的薪资、标准化技术栈和直接申请链接。 |
核心功能
| 功能 | 描述 |
|---|---|
| 实时职位采集 | 按关键词、地点(巴基斯坦、美国、英国、德国、印度、远程)、工作模式(远程、混合、现场)、经验水平和结果限制进行查询。 |
| 数据清洗与去重 | 使用 SHA-256 指纹识别跨公司删除重复职位,并将地点拼写错误解析为规范的国家名称。 |
| 章节感知优先级加权 | 根据技能在职位描述中出现的位置,区分必需技能(1.8 倍乘数)与一般职责(1.0 倍至 1.2 倍)。 |
| 货币标准化 | 使用每日汇率和离线回退表,将外币(INR、PHP、EUR、GBP、CAD、PKR)转换为年度美元基准。 |
| 统计图表 | 显示热门技能频率、共现热力图(如 Python 与 SQL,或 Snowflake 与 dbt)以及薪酬分布。 |
| 交互式职位浏览器 | 可筛选表格,支持经验水平、国家和技术标签选项,并附有直接申请链接。 |
| 独立应用程序 | 自包含可执行文件,内嵌运行时、本地 SQLite 存储和就地 GitHub 更新器。 |
与标准招聘网站的比较
标准招聘网站返回搜索卡片,但不计算聚合市场指标。StackCheck 将职位描述处理为结构化分析:
| 指标 | 标准招聘网站 | StackCheck |
|---|---|---|
| 技能需求排名 | 仅搜索结果卡片 | 按频率和加权分数排名的顶级技术 |
| 章节加权 | 对所有文本一视同仁 | 对强制性资格要求赋予比一般摘要更高的权重 |
| 技能配对 | 不可用 | 显示经常一起被要求的工具的相关矩阵 |
| 薪酬基准 | 未标准化的数字 | 计算最小值、中位数和最大值区间,并附样本数 |
| 工作模式分布 | 不可用 | 远程、混合和现场职位的薪酬比较 |
| 技能广度 | 不可用 | 每个职位平均要求的技术数量 |
| 工作区 | 不可用 | 项目范围内的搜索与历史搜索记录 |
| 数据导出 | 仅限 Web 界面 | 本地 SQLite 数据库,可导出为 CSV、JSON 和 Markdown |
抓取设计与限制
StackCheck 的设计宗旨是负责任地查询源服务器,避免造成服务中断:
- 批量数据获取: StackCheck 每次 HTTP 请求读取包含 60 到 90 条完整列表的服务端渲染载荷。收集 2,000 条列表大约需要 25 到 30 次请求。
- 限速请求: 请求通过持久连接顺序执行,并内置礼貌性暂停(每次调用间隔 0.35 秒)。
- 本地计算: 抓取的列表直接保存到本地 SQLite 数据库(
~/.stackcheck/stackcheck.db)。技能解析、薪资计算和图表生成完全在你的本地机器上运行。 - 相关性过滤: 通过分词验证检查职位名称,防止不相关的工作污染特定搜索。
系统架构
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ HiringCafe Public │────▶│ Deduplicator and │────▶│ Section-Aware │
│ API Client │ │ Country Normalizer │ │ Priority Weighting │
└──────────────────────┘ └──────────────────────┘ └──────────┬───────────┘
│
▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ Export Reports │◀────│ Streamlit Web UI │◀────│ Local SQLite Storage │
│ (CSV, JSON, Markdown)│ │ & Matplotlib OOP Ax │ │ (~/.stackcheck/*.db) │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
组件分解
src/stackcheck/client/hiringcafe.py:请求载荷,支持分页、工作场所过滤和重试逻辑。src/stackcheck/client/normalizer.py:职位名称分类、地理别名和重复指纹识别。src/stackcheck/analyzer/rule_extractor.py:位置正则提取器,将要求与一般文本分离。src/stackcheck/analyzer/metrics.py:技能共现矩阵、薪资分布和加权评分。src/stackcheck/storage/repository.py:多项目 SQLite 存储库,管理架构迁移和 upsert。src/stackcheck/launcher.py:桌面启动器,支持空闲端口选择和浏览器启动逻辑。src/stackcheck/updater.py:GitHub Releases 更新检查器,带超时保护。
方法论
- 数据集清洗: 通过生成职位名称-公司-地点复合哈希来去除重复项和垃圾信息。
- 类别分类: 将技术分组为类别(语言、BI 工具、数据库、云与 DevOps、AI 与机器学习)。
- Requirement weighting:
- 第一项要求:1.8 倍
- 第二项要求:1.5 倍
- 第三项要求:1.3 倍
- 日常工作职责:1.2 倍
- 一般帖子文本:1.0 倍
- 优先资格:0.7 倍
- 区域比较: 衡量工具采用率在不同国家和区域市场之间的差异。
安装选项
选项 A:单行脚本(推荐)
# Installs to ~/.local/bin/stackcheck with desktop shortcut and icon curl -fsSL https://raw.githubusercontent.com/haydermuhib/StackCheck/main/install.sh | bash # Launch dashboard stackcheck
选项 B:Python 源码安装
git clone https://github.com/haydermuhib/StackCheck.git cd StackCheck python3 -m venv .venv source .venv/bin/activate pip install -e . streamlit run app.py
选项 C:构建独立可执行文件
# Build standalone folder distribution python build_app.py --onedir # Or build single-file binary python build_app.py --onefile
命令行界面
# Launch web dashboard stackcheck # Print version stackcheck -v # Check status of running dashboard process stackcheck status # Verify runtime dependencies stackcheck check # Stop running dashboard process stackcheck stop # Check for updates and upgrade in-place stackcheck update # Query jobs for a role and location stackcheck search "Data Analyst" --location "United States" --limit 30 # Query remote backend engineering jobs stackcheck search "Backend Engineer" --workplace remote --limit 50 # Export dataset stackcheck export --format all
运行测试
运行单元测试套件:
pytest tests/
快速参考
| 命令或文件 | 用途 |
|---|---|
stackcheck |
启动本地 Web 仪表板 |
stackcheck -v |
打印已安装版本 |
stackcheck status |
检查服务器状态、进程 ID 和端口 |
stackcheck check |
验证运行时依赖 |
stackcheck stop |
停止正在运行的仪表板进程 |
stackcheck search <query> |
将实时职位查询到本地 SQLite 存储 |
stackcheck export --format all |
将数据集导出为 CSV、JSON 和 Markdown |
stackcheck update |
从 GitHub Releases 更新二进制文件 |
| index.html | 落地页 |
| CONTRIBUTING.md | 贡献指南和开发者设置 |
| LICENSE | MIT 许可证 |
许可证
本项目根据 MIT 许可证 授权。
来源:Hacker News · github.com



