为不甘心投递模板简历的人打造的 AI 求职作战中心。
打磨简历、拆解岗位、管理机会、准备面试,把每一次投递都变成有策略的出击。
求职不应该像把职业生涯扔进一个黑箱。
SyncHire 只为一个目标而生:让每一次投递都更有策略、更可衡量、更有胜算。它把简历、职位描述、候选人角色卡、个性化 PDF 导出、匹配分析、面试准备、申请进度、浏览器辅助填表和数据备份放进同一个工作台。你不再需要在文件夹、浏览器标签、备忘录和聊天记录之间来回翻找,也不必猜测“这份简历到底有没有说到岗位重点”。
想快速体验,可以直接使用本地优先的 Lite 模式,不依赖后端、不制造 API 报错噪音,个人资料始终留在你的设备上。想打开完整能力,可以启用全栈模式,接入 AI 分析、向量匹配、后端持久化、OAuth、2FA、对象存储和生产级基础设施。
| 求职者常见痛点 | SyncHire 的答案 |
|---|---|
| 一份简历投所有岗位 | 围绕具体岗位组织简历和职位描述 |
| 岗位链接散落在标签页和笔记里 | 结构化的申请管线 |
| 只有“感觉还行”的模糊反馈 | 匹配度、差距和下一步动作 |
| 面试准备总是太晚开始 | 基于真实岗位生成准备内容 |
| 数据被困在产品里 | JSON/CSV 导出、导入预览、本地备份 |
| 演示环境必须全服务启动 | Lite 模式本地可用,无后端依赖 |
| 网页投递表单反复填写 | Agent 辅助预填,但提交权永远在你手里 |
- 上传并管理简历,明确校验文件类型和 10MB 大小限制。
- 手动保存职位描述;当自动导入不可用时,保留原始岗位 URL 并给出清晰提示。
- 用一份简历和一份职位描述,在几分钟内创建本地申请记录。
- 维护本地候选人角色卡,用它驱动个性化简历和浏览器填表建议。
- 在本地生成简历 PDF,不把个人信息上传到云端。
- 为 Kimi WebBridge 这类浏览器 agent 生成填表指令,明确排除所有提交控件。
- 审核系统填写的字段,像真实用户一样修改,并且只有明确同意后才把修改学习回角色卡。
- 跟踪申请状态、备注、搜索视图、面试、分析和收藏搜索。
- 在数据管理台导出、导入、预览冲突并维护本地备份记录。
- 接入完整后端,启用 AI 简历分析、岗位匹配、面试准备、认证、存储和向量搜索。
以下截图来自 2026 年 6 月 8 日的 Linux standalone 生产验证。本轮测试在本地启动 SyncHire,注入应届生求职场景数据,切换到中文界面,并真实走查完整 Lite 流程:仪表盘、简历、职位描述、申请详情、岗位化简历生成、本地 PDF 导出、角色卡辅助填表、匹配分析、面试准备、面试预约、收藏搜索、通知设置与历史、数据分析、搜索、数据管理、AI 供应商与模型设置、Skill 与 MCP 开关面板、发现页和仓库管理。
| 仪表盘 | 简历管理 |
|---|---|
![]() |
![]() |
| 职位描述 | 申请跟踪 |
|---|---|
![]() |
![]() |
完整生成简历产物:陈宇应届前端工程师岗位化简历
| 申请详情 | 岗位化简历与 PDF |
|---|---|
![]() |
![]() |
| 角色卡与浏览器填表 | 匹配分析 |
|---|---|
![]() |
![]() |
简历构建器可以把一张普通生活照,通过已配置的图像模型生成干净、专业的证件照 / 商务头像 —— 无需影楼、无需预约。证件照生成入口就在简历构建器的工具栏中:上传一张日常照片,按需填写姓名 / 职位 / 部门,即可生成:
下方为前后对比,仅使用公众人物作为中立的演示样本,不代表对其形象的背书,也不在本次展示之外做任何复用。
| 吴彦祖 — 源照片 | 吴彦祖 — AI 生成的证件照 |
|---|---|
![]() |
![]() |
| 彭于晏 — 源照片 | 彭于晏 — AI 生成的证件照 |
|---|---|
![]() |
![]() |
证件照路由与具体供应商解耦(兼容 OpenAI 的 images/edits、SiliconFlow、火山方舟 / 豆包),并在服务端执行,确保 API Key 不会出现在浏览器端。请自行配置 OPENAI_API_KEY 与 base_url 即可启用。
肖像与素材声明。 SyncHire 是开源、非商业项目。上述演示照片仅用于展示证件照功能,并按其原始自由许可复用 —— 吴彦祖照片来自 Gage Skidmore(CC BY-SA 3.0),彭于晏 2018 年 10 月照片为 CC BY 3.0,均取自 Wikimedia Commons。照片人物为公众人物,不构成对 SyncHire 的背书,生成的证件照也不在本次展示之外做任何复用。如展示内容侵害您的权益,请提 issue 或联系维护者,我们会第一时间删除。
| 面试准备 | 数据分析 |
|---|---|
![]() |
![]() |
| 本地搜索 | 数据管理 |
|---|---|
![]() |
![]() |
面试结束后立刻把内容交给 AI:支持回忆记录(语序乱也没关系)、会议转写(腾讯会议 / 飞书妙记 / Otter 纪要粘贴进来最准)、语音转写(浏览器实时听写或上传音频后粘贴转写文本)。AI 两步走——先把混乱内容整理成按顺序的问答对话,再做七维度评分 + STAR 缺口 + 改进清单复盘。下面以一位应聘前端开发(应届)的候选人复盘真实一面为例(模型为 GLM-4-Flash)。
① 三种输入方式:回忆记录 / 会议转写 / 语音转写
| 回忆模式 | 会议转写模式 | 语音转写模式 |
|---|---|---|
![]() |
![]() |
![]() |
② 把混乱回忆整理成 14 轮有序问答对话
③ 七维度评分 + STAR 缺口 + 改进清单的复盘报告
| 面试管线 | 面试预约 |
|---|---|
![]() |
![]() |
| 收藏搜索 | 通知设置 |
|---|---|
![]() |
![]() |
| 通知历史 |
|---|
![]() |
| 简历搜索 | 职位描述搜索 |
|---|---|
![]() |
![]() |
| 申请搜索 | 设置总览 |
|---|---|
![]() |
![]() |
| AI 供应商与模型路由 | Skill 开关面板 |
|---|---|
![]() |
![]() |
| MCP 开关面板 | 发现搜索 |
|---|---|
![]() |
![]() |
| 仓库管理 |
|---|
![]() |
| 模式 | 适合场景 | 运行内容 |
|---|---|---|
| GitHub Pages BYOK 体验版 | 公开试用、本地求职工作流、带自己的模型密钥体验面试复盘 | 静态 Next.js、浏览器本地工作区、会话级 API Key、浏览器直连供应商;无 SyncHire 后端或代付额度 |
| Lite 模式 | 本地隐私工作流、产品演示、轻量探索 | Next.js 前端(暗色模式、移动端适配、可安装 PWA)、浏览器本地存储、本地 PDF 导出、无需 API |
| 全栈模式 | AI 能力、团队部署、API 持久化 | Next.js、FastAPI、PostgreSQL + PGVector、Redis、Minio、MCP 服务 |
访问 SyncHire Pages 可直接体验本地优先工作流。此版本是静态站点:不会运行 SyncHire API、模型代理、认证或项目代付账户。面试复盘可在你明确确认后,直接从浏览器向已配置的 OpenAI 兼容、Anthropic 或 Gemini 供应商发请求;是否可用仍取决于供应商的浏览器 CORS 策略。
供应商 Key 仅保存在当前标签页的 sessionStorage,不会导出,也不会写入 SyncHire 后端。关闭标签页/窗口通常会清除它;浏览器会话恢复、扩展程序、XSS、被入侵的设备或发布链路不在这一保证范围内。求职数据则默认保存在浏览器本地,便于下次继续,但这不是备份——请在“数据管理”导出 JSON,并可随时分别清除工作区或本标签页密钥。
静态 Pages 不能安全地替代需要受控服务端的功能:图像生成、证件照、GitHub 令牌分析、OAuth、MCP、WebSocket、服务端抓取/上传等会被禁用或给出说明,而不是回退到代理。
本地复现 Pages 构建:
npm run build:pagesSyncHire release 安装包使用同一套本地优先数据结构,但不同平台的底层存储后端不同:
| Release 平台 | 应用壳 | 数据存储后端 |
|---|---|---|
Windows .exe |
Tauri | 通过 Tauri 原生命令写入应用数据目录下的 JSON 文件:app_data_dir()/storage/{key}.json |
macOS .dmg |
Tauri | 同样写入 Tauri 应用数据目录:app_data_dir()/storage/{key}.json |
Linux .deb / .rpm |
Tauri | 同样写入 Tauri 应用数据目录:app_data_dir()/storage/{key}.json |
Android .apk |
Capacitor | 使用原生 @capacitor/preferences 存储 |
| Web / 浏览器 fallback | 浏览器 | 使用 window.localStorage |
| GitHub Pages BYOK | 浏览器 | 非敏感工作区数据使用 localStorage;供应商 Key 只使用当前标签页的 sessionStorage |
主应用状态在各平台保持相同的 key 和 payload 结构,包括 synchire-storage。在
Tauri 和 Capacitor 构建中,如果原生存储为空,SyncHire 会尝试从已有浏览器
localStorage 执行一次迁移,避免旧本地数据丢失。
支持上传 PDF、DOC、DOCX 和 TXT 简历,提取结构化内容,围绕目标岗位定制内容,并在本地导出 PDF 供用户人工提交。SyncHire 把简历当作持续迭代的资产,而不是一次性附件。
把候选人身份沉淀成一张本地角色卡:联系方式、目标岗位、教育背景、技能、项目证据、工作许可、到岗时间和期望薪资。SyncHire 用它作为个性化简历和浏览器填表计划的事实来源,但不把这些信息上传云端。
沉淀职位名称、公司、要求、技能、链接和岗位描述。每一个机会都变成可比较、可分析、可行动的数据。
完整 AI 工作流面向匹配评分、缺失技能、关键词差距和定位建议而设计。产品目标很直接:让下一次投递永远比上一次更聪明。
为投递页面生成可审核的填表计划,并交给 Kimi WebBridge 或类似本地浏览器 agent 执行。SyncHire 只填已知字段,排除提交控件,填写后停下等待用户审核,并且只有在用户明确同意后,才从用户修改中学习并更新角色卡。
另有内置的 Electron 求职浏览器(electron/job-browser):<webview> 浏览器 + 填表助手侧栏,登录态按分区持久化。引擎绝不自动提交表单;开发时需先在仓库根执行 npm run build:fill-engine 生成注入脚本,再用 npx electron electron/smoke-test.js 做端到端冒烟(验证测试表单加载与引擎检测:15 字段、提交排除;自动退出,退出码 0 通过 / 1 断言失败 / 2 看门狗超时)。
基于真实岗位生成技术题、行为题、HR 问题和 STAR 方法准备内容。准备的不是泛泛而谈的面经,而是你即将面对的那场对话。
面试结束后立即复盘。支持回忆记录、会议转写(腾讯会议 / 飞书妙记 / Otter)、语音转写三种输入,AI 先把混乱内容整理成有序问答对话,再做七维度评分、STAR 缺口分析与可执行改进清单。所有结论只基于你输入的真实内容,不杜撰问题或答案。
支持 JSON/CSV 导出、导入预览、冲突处理和本地备份元数据。求职数据是你的战略资产,SyncHire 让它始终属于你。
SyncHire/
├── frontend/ Next.js 16 应用、Lite 模式体验、E2E 测试
├── api/ FastAPI 后端、认证、数据、AI 编排
├── electron/ Electron 求职浏览器(<webview> + 填表助手侧栏)
├── mcp-servers/ 用于解析、匹配和面试准备的模块化 AI 服务
├── db/ 数据库 schema 和迁移
├── deploy/ 部署资源(仅 Docker)
├── docs/ 工程与产品文档
└── docker-compose.yml
| 层级 | 技术 |
|---|---|
| 前端 | Next.js 16.2.7, React 19.2.7, TypeScript, Tailwind CSS, Zustand, TanStack Query |
| 后端 | FastAPI, Python 3.11+, Pydantic, PyJWT |
| 数据 | PostgreSQL 16, PGVector, Redis, Minio |
| AI | OpenAI, Anthropic, 模块化 MCP servers |
| 质量保障 | Vitest, Playwright, Pytest, Ruff, Black, Bandit, pip-audit, ESLint |
- Node.js 22+ 和 npm 10+
- Python 3.11+
- Docker 和 Docker Compose
- Git
Lite 模式是最快体验产品的方式,不需要后端。npm install 必须在仓库根目录执行(npm workspaces 管理 frontend 与 mcp-servers)。
git clone https://github.com/Rethymus/SyncHire.git
cd SyncHire
npm install
npm run dev:frontend打开:
http://localhost:3000
如需本地 API 供数(申请跟踪、岗位信息流等页面从后端读取数据),另开终端启动 lite 后端:
pip install -r api/requirements_lite.txt
cd api
python main_lite.py # http://localhost:8000当你需要 API、数据库、对象存储、AI 服务和完整平台能力时,使用全栈模式。
git clone https://github.com/Rethymus/SyncHire.git
cd SyncHire
cp .env.example .env
npm install
npm run docker:up
npm run db:migrate
npm run dev服务地址:
| 服务 | 地址 |
|---|---|
| Frontend | http://localhost:3000 |
| API | http://localhost:8000 |
| API Docs | http://localhost:8000/docs |
| PostgreSQL | localhost:5432 |
| Minio Console | http://localhost:9001 |
AI 能力需要在 .env 中配置模型供应商密钥:
OPENAI_API_KEY=sk-your-openai-key
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key# 开发
npm run dev
npm run dev:frontend
npm run dev:api
npm run dev:mcp
# 基础设施
npm run docker:up
npm run docker:down
npm run docker:logs
npm run db:migrate
# 前端质量门
npm run type-check --workspace=frontend
npm run lint:nocache --workspace=frontend -- --max-warnings=0
npm test --workspace=frontend
npm run test:e2e --workspace=frontend
npm run test:e2e:guarded --workspace=frontend # e2e 前端口守卫(检测 :3000/:8000 僵尸 webServer)
npm run build --workspace=frontend
# 后端质量门
cd api
pytest -q -W error --tb=short
ruff check .
black --check .
bandit -q -r app main.py
pip check
pip-audit求职工具不能脆弱,SyncHire 的质量门故意设得很严格。
| 检查项 | 当前基线 |
|---|---|
| 后端测试 | 421 个用例(CI 门禁,SQLite+mock 全离线),warning 视为 error |
| 前端单元测试 | 263 个测试通过 |
| Playwright E2E | 38 个测试通过(4 个用例按需跳过:2 截图 + 2 全栈) |
| CI E2E | 42 用例(38 过 + 4 按需跳过,含 16 路由 smoke 与 React 受控表单),导航可达、零意外 console 错误,CI 自动拉起 lite 后端 |
| 用户视角路由回扫 | 16 路由 smoke 逐页回扫 + 35 用例默认门禁 E2E(chromium) |
| 安全检查 | Bandit、pip-audit、pip check 通过 |
| 生产构建 | 通过 |
当前用户视角流程证据已沉淀在中英文 README 截图矩阵中,并由 Playwright 截图回归按需覆盖(默认 e2e 跳过,避免实时时间戳造成截图 diff 噪声):
cd frontend && UPDATE_SNAPSHOTS=1 npx playwright test e2e/readme-screenshots.spec.ts --workers=1。
- 更深入的 AI 简历改写,并解释每一处改动的原因。
- 更强的岗位来源导入和信息补全。
- 更接近真实面试的模拟练习闭环。
- 面向导师、招聘顾问和职业教练的协作工作流。
- 可部署的观测、告警和分析仪表盘。
欢迎任何能让求职工作流更锋利、更快速、更可靠、更有人味的贡献。
- Fork 仓库。
- 创建功能分支。
- 保持改动聚焦并补齐测试。
- 运行相关质量门。
- 提交 PR,并说明清晰的产品影响。
提交信息请遵循 conventional commits:
feat: add role-specific interview prep flow
fix: preserve job URL during import fallback
docs: refresh bilingual README
SyncHire 基于 MIT License 开源。




































