Skip to content
RethymusPublic

About

Stop throwing your career into a black box — SyncHire turns every job application into a strategic, measurable, and winnable process. | 别让你的求职前途陷入未知盲区——SyncHire能把每一次投递简历转变为一套有策略、可量化、胜算更高的完整流程。

Resources

Code of conduct

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

225 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SyncHire 知遇

SyncHire 标志:由职业路径、人物与相遇点组成的路标

为不甘心投递模板简历的人打造的 AI 求职作战中心。
打磨简历、拆解岗位、管理机会、准备面试,把每一次投递都变成有策略的出击。

简体中文 · English

License CI AI Provider: BYOK

SyncHire Lite 中文 Linux 仪表盘预览

产品宣言

求职不应该像把职业生涯扔进一个黑箱。

SyncHire 只为一个目标而生:让每一次投递都更有策略、更可衡量、更有胜算。它把简历、职位描述、候选人角色卡、个性化 PDF 导出、匹配分析、面试准备、申请进度、浏览器辅助填表和数据备份放进同一个工作台。你不再需要在文件夹、浏览器标签、备忘录和聊天记录之间来回翻找,也不必猜测“这份简历到底有没有说到岗位重点”。

想快速体验,可以直接使用本地优先的 Lite 模式,不依赖后端、不制造 API 报错噪音,个人资料始终留在你的设备上。想打开完整能力,可以启用全栈模式,接入 AI 分析、向量匹配、后端持久化、OAuth、2FA、对象存储和生产级基础设施。

为什么是 SyncHire

求职者常见痛点 SyncHire 的答案
一份简历投所有岗位 围绕具体岗位组织简历和职位描述
岗位链接散落在标签页和笔记里 结构化的申请管线
只有“感觉还行”的模糊反馈 匹配度、差距和下一步动作
面试准备总是太晚开始 基于真实岗位生成准备内容
数据被困在产品里 JSON/CSV 导出、导入预览、本地备份
演示环境必须全服务启动 Lite 模式本地可用,无后端依赖
网页投递表单反复填写 Agent 辅助预填,但提交权永远在你手里

你可以用它做什么

  • 上传并管理简历,明确校验文件类型和 10MB 大小限制。
  • 手动保存职位描述;当自动导入不可用时,保留原始岗位 URL 并给出清晰提示。
  • 用一份简历和一份职位描述,在几分钟内创建本地申请记录。
  • 维护本地候选人角色卡,用它驱动个性化简历和浏览器填表建议。
  • 在本地生成简历 PDF,不把个人信息上传到云端。
  • 为 Kimi WebBridge 这类浏览器 agent 生成填表指令,明确排除所有提交控件。
  • 审核系统填写的字段,像真实用户一样修改,并且只有明确同意后才把修改学习回角色卡。
  • 跟踪申请状态、备注、搜索视图、面试、分析和收藏搜索。
  • 在数据管理台导出、导入、预览冲突并维护本地备份记录。
  • 接入完整后端,启用 AI 简历分析、岗位匹配、面试准备、认证、存储和向量搜索。

中文 Linux 实测截图

以下截图来自 2026 年 6 月 8 日的 Linux standalone 生产验证。本轮测试在本地启动 SyncHire,注入应届生求职场景数据,切换到中文界面,并真实走查完整 Lite 流程:仪表盘、简历、职位描述、申请详情、岗位化简历生成、本地 PDF 导出、角色卡辅助填表、匹配分析、面试准备、面试预约、收藏搜索、通知设置与历史、数据分析、搜索、数据管理、AI 供应商与模型设置、Skill 与 MCP 开关面板、发现页和仓库管理。

核心流程

仪表盘 简历管理
Linux 验证后的 SyncHire Lite 中文仪表盘 Linux 验证中的 SyncHire Lite 中文简历管理页面
职位描述 申请跟踪
Linux 验证中的 SyncHire Lite 中文职位描述页面 Linux 验证中的 SyncHire Lite 中文申请跟踪页面

简历生成与浏览器 Agent

完整生成简历产物:陈宇应届前端工程师岗位化简历

申请详情 岗位化简历与 PDF
Linux 验证中的 SyncHire Lite 中文申请详情与本地简历优化页面 Linux 验证中的 SyncHire Lite 中文岗位化简历编辑与本地 PDF 导出流程
角色卡与浏览器填表 匹配分析
Linux 验证中的 SyncHire Lite 中文角色卡与浏览器填表助手页面 Linux 验证中的 SyncHire Lite 中文匹配分析页面

AI 商务证件照(生活照 → 证件照)

简历构建器可以把一张普通生活照,通过已配置的图像模型生成干净、专业的证件照 / 商务头像 —— 无需影楼、无需预约。证件照生成入口就在简历构建器的工具栏中:上传一张日常照片,按需填写姓名 / 职位 / 部门,即可生成:

SyncHire 简历构建器证件照生成弹窗:上传日常照片,可选填姓名 / 职位 / 部门,通过已配置的图像模型生成商务证件照

下方为前后对比,仅使用公众人物作为中立的演示样本,不代表对其形象的背书,也不在本次展示之外做任何复用。

吴彦祖 — 源照片 吴彦祖 — AI 生成的证件照
作为 AI 证件照生成器输入的吴彦祖生活照 SyncHire 为吴彦祖生成的 AI 专业证件照
彭于晏 — 源照片 彭于晏 — AI 生成的证件照
作为 AI 证件照生成器输入的彭于晏生活照 SyncHire 为彭于晏生成的 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 或联系维护者,我们会第一时间删除。

洞察与搜索

面试准备 数据分析
Linux 验证中的 SyncHire Lite 中文面试准备页面 Linux 验证中的 SyncHire Lite 中文数据分析页面
本地搜索 数据管理
Linux 验证中的 SyncHire Lite 中文本地搜索页面 Linux 验证中的 SyncHire Lite 中文数据管理页面

面试复盘(刚结束的面试 → 结构化改进)

面试结束后立刻把内容交给 AI:支持回忆记录(语序乱也没关系)、会议转写(腾讯会议 / 飞书妙记 / Otter 纪要粘贴进来最准)、语音转写(浏览器实时听写或上传音频后粘贴转写文本)。AI 两步走——先把混乱内容整理成按顺序的问答对话,再做七维度评分 + STAR 缺口 + 改进清单复盘。下面以一位应聘前端开发(应届)的候选人复盘真实一面为例(模型为 GLM-4-Flash)。

① 三种输入方式:回忆记录 / 会议转写 / 语音转写

回忆模式 会议转写模式 语音转写模式
面试复盘弹窗回忆记录模式:输入框可填写乱序的面试回忆 面试复盘会议转写模式:提示把腾讯会议等 AI 纪要粘贴进来 面试复盘语音转写模式:浏览器实时听写或上传音频后粘贴转写文本

② 把混乱回忆整理成 14 轮有序问答对话

应届生填写的混乱面试回忆原文   AI 把混乱回忆整理成的 14 轮按顺序问答对话

③ 七维度评分 + STAR 缺口 + 改进清单的复盘报告

AI 生成的面试复盘报告:整体评分、七维度评分、STAR 缺口与改进清单

面试与提醒

面试管线 面试预约
Linux 验证中的 SyncHire Lite 中文面试管线页面 Linux 验证中的 SyncHire Lite 中文面试预约表单
收藏搜索 通知设置
Linux 验证中的 SyncHire Lite 中文收藏搜索与匹配提醒页面 Linux 验证中的 SyncHire Lite 中文本地通知设置页面
通知历史
Linux 验证中的 SyncHire Lite 中文本地通知历史页面

聚焦搜索视图

简历搜索 职位描述搜索
Linux 验证中的 SyncHire Lite 中文简历搜索结果页面 Linux 验证中的 SyncHire Lite 中文职位描述搜索结果页面
申请搜索 设置总览
Linux 验证中的 SyncHire Lite 中文申请搜索结果页面 Linux 验证中的 SyncHire Lite 中文 AI 运行时设置总览

AI 运行时控制台

AI 供应商与模型路由 Skill 开关面板
Linux 验证中的 SyncHire Lite 中文 AI 供应商 API key 与模型路由设置 Linux 验证中的 SyncHire Lite 中文 Skill 开关面板与简历能力筛选
MCP 开关面板 发现搜索
Linux 验证中的 SyncHire Lite 中文 MCP 开关面板与浏览器桥接能力筛选 Linux 验证中的 SyncHire Lite 中文 Skill 和 MCP 发现搜索页面
仓库管理
Linux 验证中的 SyncHire Lite 中文运行时仓库管理与私有元数据目录

产品模式

模式 适合场景 运行内容
GitHub Pages BYOK 体验版 公开试用、本地求职工作流、带自己的模型密钥体验面试复盘 静态 Next.js、浏览器本地工作区、会话级 API Key、浏览器直连供应商;无 SyncHire 后端或代付额度
Lite 模式 本地隐私工作流、产品演示、轻量探索 Next.js 前端(暗色模式、移动端适配、可安装 PWA)、浏览器本地存储、本地 PDF 导出、无需 API
全栈模式 AI 能力、团队部署、API 持久化 Next.js、FastAPI、PostgreSQL + PGVector、Redis、Minio、MCP 服务

GitHub Pages BYOK 体验版

访问 SyncHire Pages 可直接体验本地优先工作流。此版本是静态站点:不会运行 SyncHire API、模型代理、认证或项目代付账户。面试复盘可在你明确确认后,直接从浏览器向已配置的 OpenAI 兼容、Anthropic 或 Gemini 供应商发请求;是否可用仍取决于供应商的浏览器 CORS 策略。

供应商 Key 仅保存在当前标签页的 sessionStorage,不会导出,也不会写入 SyncHire 后端。关闭标签页/窗口通常会清除它;浏览器会话恢复、扩展程序、XSS、被入侵的设备或发布链路不在这一保证范围内。求职数据则默认保存在浏览器本地,便于下次继续,但这不是备份——请在“数据管理”导出 JSON,并可随时分别清除工作区或本标签页密钥。

静态 Pages 不能安全地替代需要受控服务端的功能:图像生成、证件照、GitHub 令牌分析、OAuth、MCP、WebSocket、服务端抓取/上传等会被禁用或给出说明,而不是回退到代理。

本地复现 Pages 构建:

npm run build:pages

Release 数据存储

SyncHire 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 模式

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 简历改写,并解释每一处改动的原因。
  • 更强的岗位来源导入和信息补全。
  • 更接近真实面试的模拟练习闭环。
  • 面向导师、招聘顾问和职业教练的协作工作流。
  • 可部署的观测、告警和分析仪表盘。

参与贡献

欢迎任何能让求职工作流更锋利、更快速、更可靠、更有人味的贡献。

  1. Fork 仓库。
  2. 创建功能分支。
  3. 保持改动聚焦并补齐测试。
  4. 运行相关质量门。
  5. 提交 PR,并说明清晰的产品影响。

提交信息请遵循 conventional commits:

feat: add role-specific interview prep flow
fix: preserve job URL during import fallback
docs: refresh bilingual README

许可证

SyncHire 基于 MIT License 开源。

About

Stop throwing your career into a black box — SyncHire turns every job application into a strategic, measurable, and winnable process. | 别让你的求职前途陷入未知盲区——SyncHire能把每一次投递简历转变为一套有策略、可量化、胜算更高的完整流程。

Resources

Code of conduct

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages