vasu-devs/JustHireMe

GitHub: vasu-devs/JustHireMe

JustHireMe 是一个本地优先、开源的AI求职工作台,帮助用户爬取职位、透明地评估匹配度并自动生成定制申请材料。

Stars: 1956 | Forks: 313

JustHireMe

本地优先的 AI 求职智能工具:用于筛选更合适的职位、评估匹配度并生成量身定制的申请材料。

License: AGPL-3.0 Status: Stable v1 Local First Desktop: Tauri Backend: Python GitHub Sponsors

功能简介 · 工作流程 · 架构 · 快速入门 · 标准流程 · Agent 技能 + MCP · 贡献指南 · 路线图

## Star 历史 Star History Chart ## 简要说明 JustHireMe 是一个基于 AGPL 许可证的本地优先桌面工作台,专为厌倦了嘈杂求职板和黑盒 AI 投递工具的用户打造。 ## 维护者 JustHireMe 由 Vasudev Siddh 构建并维护——他是一名全栈 AI 工程师、开源构建者,也是因为受够了糟糕的求职板而决定打造更好工具的人。 ## 当前状态 JustHireMe 的稳定核心组件包括:本地优先的桌面工作台、Python 侧车 API、线索引入、确定性排名、基于个人资料的匹配、本地 CRM 工作流以及文档/对外联络生成。每个版本均由 GitHub Actions 从 `v*` 标签构建,目前已完成 **Windows、macOS 和 Linux** 平台的安装程序分发。 | 领域 | 状态 | | --- | --- | | 前端工作台 | 稳定 | | Python 侧车 API | 稳定 | | 爬取器、排名、向量匹配和定制器核心 | 支持的开源范围 | | Windows 安装程序 (`.exe`) | 每个版本均发布 | | macOS 安装程序 (`.dmg` + `.app`) | 每个版本均发布(ad-hoc 签名,**尚未公证**——Gatekeeper 可能需选择“仍然打开”) | | Linux 软件包 (`.deb` + AppImage) | 每个版本均发布 | | 自动更新 | 内置;应用会自动从最新的 GitHub 版本更新自身 | | 精简安装程序 + 首次运行运行时 | 安装程序约 100 MB;重型运行时(浏览器 + 向量库 + 嵌入模型)在首次运行时下载一次,然后缓存 | | 深色模式 | 浅色 / 深色 / 系统,可感知系统设置,已发布 | | 本地嵌入 | 捆绑的 ONNX 模型(`all-MiniLM-L6-v2`)——语义匹配在本地运行,无需 API 密钥 | | 简历定制 | 适用于任何领域(工程、设计、金融、医疗、教育、贸易等) | | 浏览器自动化 / 自动投递 | 实验性功能,默认禁用 | | API 密钥存储 | 本地应用设置;`.env` 用于开发环境覆盖;计划支持系统钥匙串 | 如果你是新手,请先预览前端界面。如果你想贡献后端行为、源适配器或打包,请使用下面的完整桌面设置。 它帮助你完成: | 阶段 | JustHireMe 做什么 | 为什么重要 | | --- | --- | --- | | 爬取 | 从 ATS 招聘板、RSS 订阅源、Hacker News、GitHub 类源、Reddit/社区源、API 及配置的源收集线索 | 你不受限于单一求职板 | | 质量门槛 | 在条目污染管道前,拒绝过时、信息不足、垃圾、仅面向资深人员或缺乏上下文的线索 | 信号更优,清理更少 | | 排序 | 使用可解释的确定性规则、反馈学习(以及可选的 LLM 推理)对线索质量和候选人匹配度进行评分 | 你能看到某个职位为何值得关注 | | 匹配 | 使用 Kuzu 图数据和 LanceDB 向量,将职位与你的个人资料上下文进行比较 | 匹配是基于个人资料的,而非仅靠关键词 | | 定制 | 生成量身定制的简历 PDF、求职信 PDF 和外联草稿 | 你得到的是有用的整套材料,而不仅仅是一堆链接 | ## 可视工作流 ``` flowchart LR A["Import Resume / Profile"] --> B["Profile Graph
Kuzu"] A --> C["Skill + Project Vectors
LanceDB"] D["Scraper Sources"] --> E["Normalized Leads"] E --> F["Lead Quality Gate"] F --> G["Ranker + Evaluator"] B --> G C --> G G --> H["Lead Pipeline"] H --> I["Customizer"] I --> J["Resume PDF"] I --> K["Cover Letter PDF"] I --> L["Outreach Drafts"] ``` ``` flowchart TD S["Source Adapter"] --> N["Normalize Lead"] N --> Q{"Quality Gate"} Q -- "Reject" --> R["Filtered with reason"] Q -- "Accept" --> C["Local CRM"] C --> E["Fit Evaluation"] E --> U["User Review"] Q:::gate R:::reject C:::store E:::score classDef gate fill:#e0f2fe,stroke:#0284c7,color:#0f172a classDef reject fill:#fee2e2,stroke:#dc2626,color:#0f172a classDef store fill:#dcfce7,stroke:#16a34a,color:#0f172a classDef score fill:#fef3c7,stroke:#d97706,color:#0f172a ``` ## 功能简介

从多种来源爬取

从 ATS/公司招聘板、RSS 订阅源、Hacker News、GitHub 类来源、Reddit/社区来源、API 以及自定义配置目标收集职位信息。

拒绝低质量线索

在保存线索前应用确定性质量门槛。过滤掉过时、信息不足、仅面向资深人员、无偿、垃圾或缺乏上下文的信息。

透明地评估匹配度

对角色对齐度、技术栈覆盖、项目证据、资历匹配度、地点约束、红旗标志、来源信号以及语义个人资料相似度进行评分。

生成定制化材料包

为任何领域(不仅限于软件)的职位生成简历 PDF、求职信 PDF、创始人消息、LinkedIn 备注、冷邮件、关键词覆盖总结以及所选项目说明。

## 为什么存在 大多数求职工具犯以下两种错误之一: | 问题 | 结果 | | --- | --- | | 爬取范围过广 | 用户淹没在过时、不相关、仅面向资深人员或垃圾职位中 | | 自动化过于激进 | 用户失去控制和信任 | | 排名不透明 | 没人知道为什么推荐某个职位 | | 云优先 | 敏感的个人资料/职位数据离开用户机器 | | 难以扩展 | 贡献者无法轻松添加新来源或改进排名 | JustHireMe 采取了不同的路径: ``` More signal. More explanation. More local control. More contributor-friendly source adapters. Less blind automation. ``` ## 产品原则 | 原则 | 含义 | | --- | --- | | 本地优先 | 个人资料数据、线索历史、生成文档、图数据、向量和设置默认存储在本地 | | 可解释 | 每个重要的排名过滤决策都应有可见的原因 | | 对贡献者友好 | 添加源适配器应简单且可测试 | | 人类控制 | 生成的材料是供审阅的草稿,而非自动提交 | | 诚实的降级 | 如果向量、模型或源数据失败,应用应明确告知 | | 自动化是实验性的 | 浏览器自动化是实验室区域,而非核心开源承诺 | ## 架构 ``` flowchart TB subgraph Desktop["Tauri Desktop Shell"] UI["React + TypeScript UI"] Bridge["Tauri Commands
Port + API Token"] end subgraph Backend["Python Backend Sidecar"] API["FastAPI + WebSockets"] Scrapers["Scraper Agents"] Gate["Lead Quality Gate"] Ranker["Ranker / Evaluator"] Customizer["Document + Outreach Generator"] end subgraph LocalData["Local Data Layer"] SQLite["SQLite CRM"] Kuzu["Kuzu Profile Graph"] LanceDB["LanceDB Vectors"] Files["Generated PDFs"] end UI --> Bridge --> API API --> Scrapers --> Gate --> SQLite API --> Ranker Ranker --> Kuzu Ranker --> LanceDB API --> Customizer --> Files API --> SQLite ``` | 领域 | 技术 | | --- | --- | | 桌面壳 | Tauri 2(自动更新、浅色/深色/系统主题) | | 前端 | React 19, TypeScript, Vite, Tailwind CSS | | 后端 API | Python 3.13, FastAPI, WebSockets | | 本地 CRM | SQLite | | 个人资料图 | Kuzu | | 向量存储 | LanceDB | | 嵌入 | 本地 ONNX 模型(`all-MiniLM-L6-v2`)——无需 API 密钥 | | 匹配 | 确定性评分、本地语义搜索、可选的 LLM 评估 | | 文档 | Markdown/PDF 渲染 | | 实验实验室 | Playwright 浏览器自动化 | | 打包 | 精简 Tauri 安装程序 + 首次运行运行时包(Windows / macOS / Linux) | **首次运行运行时包。** 为了保持安装程序较小(约 100 MB,而非约 450-700 MB),重型运行时(Playwright 浏览器、向量库和 ONNX 嵌入模型)不捆绑到安装程序中。应用在首次运行时下载一次,验证后缓存。该包具有内容版本控制,因此常规的应用更新会重用缓存的包,而不会重新下载。 更多详情:[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) ## 仓库地图 ``` JustHireMe/ |-- src/ React frontend workbench | |-- api/ HTTP/WebSocket API clients and types | |-- features/ Apply, dashboard, graph, pipeline, profile, settings | |-- shared/ Components, hooks, context, utilities | `-- main.tsx Frontend entrypoint |-- backend/ Python FastAPI sidecar | |-- api/ Main app, routers, auth, scheduler, WebSockets | |-- core/ Config, logging, version, telemetry, shared types | |-- contracts/ Service and data contracts | |-- data/ SQLite repositories, graph/vector helpers, migrations | |-- discovery/ Lead discovery, quality gate, source adapters | |-- generation/ Resume, cover letter, and outreach generators | |-- ranking/ Fit scoring, criteria, semantic/evaluator logic | |-- services/ Domain service apps and routers | `-- tests/ Backend unit, integration, and regression tests |-- src-tauri/ Tauri Rust shell | `-- resources/ Bundled sidecar/runtime resources generated for packages |-- website/ Public website |-- docs/ Architecture, source adapter, release docs |-- scripts/ Build scripts |-- skills/ Agent skill instructions `-- .github/ CI, issue templates, PR template ``` ## 快速入门 ### 安装桌面应用 如果你不是开发者,只想运行 JustHireMe,请使用此路径。打开最新的 [GitHub Release](https://github.com/vasu-devs/JustHireMe/releases/latest) 并获取你平台的资源。 | 平台 | 下载 | 备注 | | --- | --- | --- | | Windows | `JustHireMe_*_x64-setup.exe` | 如果遇到 SmartScreen 提示,请点击 **更多信息** -> **仍然运行** | | macOS(Apple Silicon) | `JustHireMe_*_aarch64.dmg` | 尚未公证:如果 macOS 提示应用已损坏/未验证,请在 **系统设置 -> 隐私与安全性 -> 仍要打开** 中允许 | | Linux(Debian/Ubuntu) | `JustHireMe_*_amd64.deb` | 使用 `sudo dpkg -i` 安装文件 | | Linux(便携版) | `JustHireMe_*_amd64.AppImage` | `chmod +x` 然后运行 | **首次启动会下载运行时包。** 首次打开应用时,会通过 HTTPS 获取运行时(浏览器 + 向量库 + 嵌入模型)并缓存;这是一次性下载。之后,应用准备好离线运行,常规更新不会重新下载。 应用会自动从最新的 GitHub 版本更新自身。发布说明包含 SHA256 校验和,每个安装程序均由 GitHub Actions 从发布标签构建,因此发布的二进制文件与仓库源代码一致。 ### 要求 | 工具 | 版本 | | --- | --- | | Node.js | 推荐 24;CI 使用 Node 24 | | Python | 3.13+ | | Rust | stable | | uv | 最新稳定版 | | Git | 任何现代版本 | 可选: - Ollama 用于本地模型实验 - Playwright 浏览器依赖仅用于实验性自动化工作 ### 快速前端预览 如果只想检查 UI、设计方向或前端代码,请使用此路径。 ``` git clone https://github.com/vasu-devs/JustHireMe.git cd JustHireMe npm ci npm run dev ``` 这将仅启动 Vite 前端。需要后端支持的工作流可能会显示空状态、模拟状态或不可用状态,具体取决于界面。 ### 完整桌面设置 如果你需要 Tauri 壳和 Python 后端侧车,请使用此路径。 ``` git clone https://github.com/vasu-devs/JustHireMe.git cd JustHireMe npm ci cd backend uv sync --dev cd .. ``` 然后运行: ``` npm run tauri dev ``` Tauri 壳会启动前端并启动 Python 后端侧车/开发进程。 仅当处理公共网站或运行完整本地检查组时,才需要安装网站依赖: ``` cd website npm ci cd .. ``` ### 提交 Issue 前 - 检查错误是否属于支持的核心行为还是实验性自动化。 - 从日志或截图中移除 API 密钥、cookies、简历、本地数据库和生成的私有文档。 - 对于来源请求,请提供公开示例 URL 和预期的规范化字段。 - 对于排名错误,请提供预期的评分行为以及经过清理的职位/个人资料片段。 ## 开发命令 | 任务 | 命令 | | --- | --- | | 安装前端依赖 | `npm ci` | | 安装后端依赖 | `cd backend && uv sync --dev` | | 安装网站依赖 | `cd website && npm ci` | | 前端开发服务器 | `npm run dev` | | 网站开发服务器 | `cd website && npm run dev` | | 桌面开发应用 | `npm run tauri dev` | | 版本一致性检查 | `npm run version:check` | | TypeScript 检查 | `npm run typecheck` | | 前端测试 | `npm test` | | 前端构建 | `npm run build` | | 后端测试 | `cd backend && uv run python -m pytest tests -q` | | 后端回归冒烟 | `cd backend && uv run python -m pytest tests/test_regressions.py tests/test_api.py::TestAuthGate` | | Rust 测试 | `cd src-tauri && cargo test --lib` | | Rust 检查 | `cd src-tauri && cargo check` | | 网站构建 | `cd website && npm run build` | | 所有本地检查 | `npm run check` | | 构建侧车 | `npm run build:sidecar` | | 构建前端、网站和 Rust 检查 | `npm run build:all` | | 快速发布冒烟 | `npm run release:smoke` | | 发布前检查 | `npm run release:preflight` | | Windows 安装程序包预演(需要更新器签名环境) | `npm run release:windows` | | Linux 软件包 | `npm run release:linux` | | macOS 软件包 | `npm run release:macos` | `npm run check` 会运行版本检查、前端类型检查、前端测试、前端构建、网站构建、后端测试、Rust 测试和 Rust 检查。请先运行 `npm ci`、`cd backend && uv sync --dev` 和 `cd website && npm ci`,以确保每个环节都有其依赖。 在 Windows PowerShell 中,如果 `npm.ps1` 垫片被执行策略阻止,请使用 `npm.cmd` 代替 `npm`。如果你的 shell 不支持 `&&`,请将 `cd` 命令和后续命令作为独立行运行。 ## 标准流程 对于日常开发和拉取请求,请使用此工作流程: 1. 从锁定文件同步:`npm ci`,如果涉及网站或完整检查套件,还需 `cd backend && uv sync --dev` 和 `cd website && npm ci`。 2. 保持更改范围集中。核心产品工作应保留本地优先存储、可解释的排名和人工审核的生成。浏览器自动化保持实验性和可选性。 3. 针对你更改的领域运行针对性检查,然后在可行的情况下,在提交 PR 前运行 `npm run check`。 4. 为行为更改添加或更新测试。对于排名、来源、API、存储和生成相关的更改,请使用后端回归测试。 5. 每当设置、命令发布行为、面向用户的工作流、源适配器契约或隐私期望发生变化时,更新文档。 6. 不要提交 `.env`、API 密钥、cookies、令牌、私有简历、本地数据库、图/向量存储、生成的 PDF、应用数据或生成的侧车二进制文件。 对于维护者构建,请使用此发布流程: 1. 使用 `npm run version:bump -- X.Y.Z` 更新所有版本化的文件。 2. 通过 `npm run check:all`、`npm run lint`、`npm run test:coverage`、`npm run release:smoke` 和 `npm run smoke:windows-update` 运行本地验证。 3. 推送 `vX.Y.Z` 标签,让 GitHub Actions 构建、签名、验证更新器元数据、冒烟测试 Windows 安装程序、生成校验和并从 CI 发布发布资源。 4. 在检查下载的 CI 资源文件夹时,使用 `npm run release:verify-updater -- release-assets vX.Y.Z` 验证生成的更新器制品。 详细的发布检查清单存放在 [docs/MAINTAINER_RELEASE_CHECKLIST.md](docs/MAINTAINER_RELEASE_CHECKLIST.md)、[docs/windows-release.md](docs/windows-release.md) 和 [docs/PRODUCTION_RELEASE_ROADMAP.md](docs/PRODUCTION_RELEASE_ROADMAP.md) 中。 ## Agent 技能和 MCP JustHireMe 包含两个可重用的 agent 接口: - 一个 agent 中立的技能文件,位于 `skills/justhireme/SKILL.md` - 一个轻量级的 stdio MCP 服务器,位于 `backend/mcp_server.py` 该技能是带有 YAML 前置元数据的纯 Markdown 文件。它旨在用于任何能够加载本地指令的 AI 编码助手,包括 Claude、Codex、IDE agents 和自定义 agent 运行器。它告诉 agent 如何在此仓库中安全工作:保留本地优先行为、保持排名可解释、将浏览器自动化视为实验性、并使用现有的后端/前端模式。 ### 使用技能 将你的 agent 或助手指向: ``` skills/justhireme/SKILL.md ``` 如果你的 agent 期望技能位于单独的目录中,请将 `skills/justhireme` 文件夹复制或符号链接到该工具的技能/指令位置。该技能不依赖于 Codex 特定的 API 运行时。 ### 使用 MCP 服务器 首先安装后端依赖: ``` cd backend uv sync --dev cd .. ``` 在 Windows 上从仓库根目录启动 MCP 服务器: ``` backend\.venv\Scripts\python.exe backend\mcp_server.py ``` 在 macOS/Linux 上启动: ``` backend/.venv/bin/python backend/mcp_server.py ``` MCP 服务器暴露以下工具: | 工具 | 用途 | | --- | --- | | `score_job_fit` | 根据候选人 JSON 个人资料对原始职位发布进行评分 | | `evaluate_lead_quality` | 对规范化的线索运行确定性质量门槛 | | `extract_lead_intel` | 从线索文本中提取公司、地点、预算、紧急程度、技术栈和信号质量 | MCP 客户端配置示例: ``` { "mcpServers": { "justhireme": { "command": "/absolute/path/to/JustHireMe/backend/.venv/bin/python", "args": ["/absolute/path/to/JustHireMe/backend/mcp_server.py"], "cwd": "/absolute/path/to/JustHireMe" } } } ``` 在 Windows 上,使用虚拟环境解释器 `backend\\.venv\\Scripts\\python.exe`。更多详情:[docs/MCP.md](docs/MCP.md) ## 核心概念 ### 源适配器 源适配器将外部职位源转换为规范化的线索字典。 实现位于 `backend/discovery/sources/`。 ``` flowchart LR A["Raw Source"] --> B["Adapter"] B --> C["Normalized Lead"] C --> D["Quality Gate"] D --> E["Local CRM"] ``` 阅读:[docs/source-adapters.md](docs/source-adapters.md) ### 质量门槛 质量门槛位于 `backend/discovery/quality_gate.py`。 它检查: | 信号 | 示例 | | --- | --- | | URL 存在 | 拒绝没有来源/申请 URL 的行 | | 发布深度 | 惩罚信息不足的爬取片段 | | 新鲜度 | 惩罚过时的职位 | | 资历级别 | 在面向初学者的订阅源中拒绝仅面向资深人员的职位 | | 红旗标志 | 惩罚无偿、仅提成、无预算、需做家庭作业或曝光类的帖子 | | 公司/上下文 | 惩罚缺少公司或来源上下文不清晰的条目 | ### 排名 排名结合了: - 来源信号 - 线索质量评分 - 确定性匹配准则 - 资历上限 - 项目和经验证据 - 可选的 LLM 辅助评估 - 语义匹配(当向量可用时) - 反馈学习 ### 向量匹配 ``` flowchart LR Resume["Resume / Profile"] --> Graph["Kuzu Graph"] Resume --> Embed["Embeddings"] Embed --> Vectors["LanceDB"] Job["Job Description"] --> Query["Semantic Query"] Query --> Vectors Vectors --> Fit["Semantic Fit Signal"] Graph --> Fit ``` ### 定制器 对于优质线索,定制器生成: | 输出 | 用途 | | --- | --- | | 量身定制的简历 PDF | 针对特定职位的简历包 | | 求职信 PDF | 针对性的申请叙述 | | 创始人消息 | 简短直接的联络内容 | | LinkedIn 备注 | 简洁的连接/消息草稿 | | 冷邮件 | 较长的联络草稿 | | 关键词覆盖 | 显示生成的包覆盖了哪些关键词 | | 所选项目 | 解释使用了哪些个人资料证据 | ## 配置和隐私 设置可在桌面应用内部配置。对于 v1 版本,API 密钥存储在本地应用设置中。 本地数据可能包括: | 数据 | 本地存储 | | --- | --- | | 个人资料图 | 是 | | 向量表 | 是 | | 线索 CRM | 是 | | 生成的 PDF | 是 | | 设置 | 是 | | 活动历史 | 是 | 请勿分享包含 API 密钥、cookies、私有简历或个人数据的屏幕截图、日志、本地应用数据、问题附件或数据库文件。 计划改进: - 基于操作系统钥匙串的 API 密钥存储 ## 发布版本 每个版本都通过 GitHub Actions 从单个 `v*` 标签构建并发布适用于 **Windows、macOS 和 Linux** 的安装程序——绝不会从维护者工作站上传。管道构建每个平台的侧车和 Tauri 安装程序,运行自动更新冒烟测试,生成 SHA256 校验和并发布资源。Windows 和 macOS 构建尚未进行代码签名/公证,因此操作系统在首次启动时可能会发出警告(请参见上方的安装表);代码签名和 macOS 公证是下一个打包里程碑。 ``` npm run release:smoke npm run smoke:windows-update ``` 仅在需要有意进行本地包预演且 Tauri 更新器签名变量可用时使用 `npm run release:windows`。当你明确测试特定平台路径时,使用 `npm run release:linux` 或 `npm run release:macos` 进行平台特定的本地包构建。 发布冒烟测试和打包详情:[docs/windows-release.md](docs/windows-release.md)、[docs/MAINTAINER_RELEASE_CHECKLIST.md](docs/MAINTAINER_RELEASE_CHECKLIST.md) 和 [docs/PRODUCTION_RELEASE_ROADMAP.md](docs/PRODUCTION_RELEASE_ROADMAP.md)。 ## 贡献指南 最佳的初次贡献路径是爬取器/来源质量控制。

适合初学者的 Issue

添加解析器测试用例、改进文档、优化 UI 文案或添加小的来源规则。

来源贡献者

添加 ATS/公司招聘板适配器,包含规范化的线索字段和质量门槛测试。

排名贡献者

改进评分区间、资历处理、语义降级以及反馈学习。

从这里开始: | 文档 | 用途 | | --- | --- | | [CONTRIBUTING.md](CONTRIBUTING.md) | 贡献规则和开发流 | | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | 社区行为准则 | | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统设计 | | [docs/source-adapters.md](docs/source-adapters.md) | 爬取器适配器契约 | | [docs/MAINTAINER_RELEASE_CHECKLIST.md](docs/MAINTAINER_RELEASE_CHECKLIST.md) | 发布和安全检查清单 | | [ROADMAP.md](ROADMAP.md) | 项目方向 | | [SECURITY.md](SECURITY.md) | 隐私和负责任报告 | 请不要在公开问题中提交 API 密钥、简历、cookies、令牌或数据库文件。 ## 实验性自动化 仓库包含用于实验和未来插件工作的浏览器自动化和自动投递代码。 | 状态 | 含义 | | --- | --- | | 默认禁用 | 不属于支持的职位工作流的一部分 | | 不支持的实验室 | 对贡献者有用,但对普通用户不是 | | 不宣传为核心功能 | 产品在没有它的情况下也能工作 | | 未来可能的插件 | 可能后续分离出来 | ## 路线图 ``` timeline title JustHireMe Open-Source Roadmap Shipped : Quality gate + source adapter docs : Cross-platform installers (Win / macOS / Linux) : Thin installer + first-run runtime download : Auto-update : Light / Dark / System theming : Local ONNX embeddings (no API key) : Any-field resume tailoring Next : Code signing + macOS notarization : More ATS adapters and parser fixtures : OS keychain support for API keys Later : Ranking evaluation dataset : Clearer semantic-matching visibility in the UI : Optional automation plugin ``` 近期优先级: - Windows 代码签名和 macOS 公证(消除首次启动安全警告) - 更多高质量的 ATS/公司源适配器 - 更强的质量门槛测试 - UI 中更清晰的向量匹配状态 - 对贡献者友好的源插件边界 - 支持操作系统钥匙串存储 API 密钥 ## 法律与隐私 JustHireMe 是本地优先的:你的个人资料、线索和生成的文档保留在你的设备上。完整政策存放在 [docs/legal/](docs/legal/): | 文档 | 用途 | | --- | --- | | [使用条款](docs/legal/terms-of-use.md) | 使用应用和网站的规则、你的责任、担保/责任 | | [隐私政策](docs/legal/privacy-policy.md) | 收集和不收集哪些数据(几乎没有任何数据离开你的机器) | 这些政策管辖应用和网站的使用;源代码根据 AGPL-3.0(如下)单独许可。受印度法律管辖;联系 pls@justhireme.ai。参见[法律索引](docs/legal/README.md)。 ## 许可证 JustHireMe 是开源软件,许可证为 [GNU Affero General Public License v3.0 only](LICENSE)。 你可以自行托管、修改和使用 JustHireMe,包括使用你自己的 API 密钥,但须遵守 AGPL-3.0 许可证的条款。如果你修改 JustHireMe 并通过网络提供,AGPL 要求你向该网络服务的用户提供修改版本的相应源代码。 对于希望在 AGPL 条款之外使用 JustHireMe 的组织,提供商业许可,包括私有分支、专有修改、嵌入、白标或托管部署。参见 [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md) 了解商业路径。 ## 维护者备注 该项目正在公开构建,因为一个人无法独自覆盖每一个职位来源、每一个市场、每一个排名边界情况和每一种打包路径。 目标是打造一个有用的本地工具和一个友好的代码库,供贡献者添加来源、改进排名,并帮助求职者获得更清晰的信号、更少的噪音。
标签:AI, CNCF毕业项目, DNS解析, Python, star-history, Tauri, 人工智能, 匹配度排名, 工作台, 开源项目, 招聘, 数据隐私, 无后门, 本地优先, 本地推理, 桌面应用, 求职, 特征检测, 用户模式Hook绕过, 申请材料生成, 简历匹配, 职业发展, 职位推荐, 职位爬取, 自动化代码审查, 自动化求职