跳到正文
Hacker News· haydermuhib·· 8 天前AI 评分22

StackCheck:本地优先的技术栈情报与薪资基准工具

Show HN: StackCheck – Local-first tech stack intelligence and salary benchmarks

AI 导读

StackCheck 是一个本地优先的技术栈市场情报工具,从 HiringCafe 抓取实时招聘信息,用 Streamlit 仪表盘展示技术需求排名、技能组合与薪资基准。

正文 · AI 翻译

StackCheck Logo

技术栈市场情报引擎与数据分析仪表板
从实时招聘信息中追踪技术需求、技能组合和薪酬基准。

Python 3.10+ Streamlit License: MIT v0.2.1 Portable Binary


快速安装

安装独立二进制文件,无需外部依赖:

macOS 和 Linux

curl -fsSL https://raw.githubusercontent.com/haydermuhib/StackCheck/main/install.sh | bash

Windows (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 仪表板界面

高管市场概览 地域薪酬分布
Executive market overview
关键指标卡片、加权技术技能频率排名和领域类别细分。
Geographic compensation distribution
国家级薪酬条带散点图,带有水平中位数基准线。
经验与雇主分析 交互式职位浏览器
Experience and employer analytics
资历技能差异、薪酬层级表、招聘雇主和技能栈复杂度。
Interactive job explorer
可搜索的职位记录,包含解析后的薪资、标准化技术栈和直接申请链接。

核心功能

功能 描述
实时职位采集 按关键词、地点(巴基斯坦、美国、英国、德国、印度、远程)、工作模式(远程、混合、现场)、经验水平和结果限制进行查询。
数据清洗与去重 使用 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 更新检查器,带超时保护。

方法论

  1. 数据集清洗: 通过生成职位名称-公司-地点复合哈希来去除重复项和垃圾信息。
  2. 类别分类: 将技术分组为类别(语言、BI 工具、数据库、云与 DevOps、AI 与机器学习)。
  3. Requirement weighting:
    • 第一项要求:1.8 倍
    • 第二项要求:1.5 倍
    • 第三项要求:1.3 倍
    • 日常工作职责:1.2 倍
    • 一般帖子文本:1.0 倍
    • 优先资格:0.7 倍
  4. 区域比较: 衡量工具采用率在不同国家和区域市场之间的差异。

安装选项

选项 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