阅历 YueLi

September 20, 2026 · View on GitHub

Jev 简历批量分类桌面工具(Windows / macOS / Linux):导入一个文件夹的简历(PDF / DOCX / TXT,支持拖拽整文件夹进窗口),后台并发送入 TypeSafe Jev 决策模型,输出每个回答的四维判定:

维度形式说明
岗位分类choice后端/前端/移动端/算法/数据/测试/运维/产品/其他(判据可在 criteria.toml 中编辑)
资历级别choice实习 / 初级1-3年 / 中级3-5年 / 高级5-10年 / 专家10年+
技术强度score 0-10项目可量化程度、技术深度、主导性
注水嫌疑noul 0-1时间线矛盾、头衔失实、数字堆砌等信号

批次可随时取消;结果本地缓存(按内容哈希),改判据自动失效重判;可导出 CSV(Excel 兼容)/ JSON。

判定由 AI 模型生成,仅供参考,不构成招聘决策依据。简历内容会发送至 api.typesafe.ai 进行判定,请遵守当地个人信息保护法规,仅处理你有权处理的简历。

架构

  • crates/jev-core — 无 UI 依赖的核心库:三格式文本提取(pdfium-render / zip+quick-xml / 原文)、Jev 客户端(容错解析 + 429/5xx 退避重试)、批量流水线(Semaphore 并发 + 内容哈希缓存 + 取消)、判据 TOML(版本化)、CSV/JSON 导出。全量单元测试。
  • crates/jev-app — Tauri 2 桌面应用:Rust 命令层(src/commands.rs,批次线程 + 事件泵)+ ui/ 下的 React + Vite + TypeScript 前端(结果表 / 工具栏 / 状态栏)。

本地开发

# 1. Rust 1.98.1(rust-toolchain.toml 已钉住)与 Node 20+
rustup toolchain install 1.98.1

# 2. pdfium 动态库(脚本会放到 vendor/ 与 target/{debug,release}/ 旁,无需环境变量)
./scripts/fetch-pdfium.sh

# 3. 测试核心与前端
cargo test -p jev-core
npm install
npm test

# 4. 运行桌面应用(自动起 Vite dev server)
npm run dev

API Key

推荐:应用内点「设置」(未配置 Key 时顶部提示可直接点击)填入 TypeSafe API Key,保存即生效。也可以直接编辑配置文件:

  • macOS: ~/Library/Application Support/yueli/config.toml
  • Windows: %APPDATA%\yueli\config.toml
  • Linux: ~/.config/yueli/config.toml
api_key = "apikey_..."
base_url = "https://api.typesafe.ai"
model = "jev-latest"
concurrency = 4

改配置文件后无需重启,下一批次即生效。

判据校准

分类体系在 config.toml 同目录的 criteria.toml:9 个默认分类的 description 是判定标准本身,改措辞即改判定;每次保存自动递增版本号,旧缓存自动失效。与 zhihu-jev 相同的校准流程:拿 ~20 份你有把握的简历当测试集,只改判据措辞,直到判定与你的判断一致。

安装包(GitHub Release)

GitHub Releases 下载对应平台安装包:

  • macOS: .dmg / .app.tar.gz(未签名,安装后执行 xattr -cr /Applications/yueli.app 即可打开;或系统设置 → 隐私与安全性 → 仍要打开)
  • Windows: -setup.exe (NSIS) / .msi(SmartScreen 提示点「仍要运行」)
  • Linux: .deb / .AppImage / .rpm

pdfium 动态库已通过 bundle.resources 打入安装包,macOS / Windows / AppImage 开箱即用;.deb 如提示找不到 pdfium,设置环境变量 PDFIUM_DYNAMIC_LIB_PATH 指向系统 pdfium 即可。

License

MIT