Mako-Public

agent
Guvenlik Denetimi
Uyari
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 29 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Mako — AI Career Intelligence System

README.md

戴学位帽的 Finn

Mako

AI Career Intelligence System

Mako 面向计划回国求职的留学生,也服务国内应届生,从官方岗位中匹配、推荐适合你的岗位,把你的经历逐项对照岗位要求,整理出一条专属于你的求职路线。

使用 Mako Skill · 快速启动 · 查看求职流程 · 工程实现

Mako v2.9.0 公开回归测试 144/144 5 个 Docker 服务

求职信息很多,真正缺的是判断依据

准备回国求职时,招聘信息、经验分享和岗位清单并不难找。真正困难的是把这些信息与自己的经历对应起来:哪些岗位值得投入时间,现有材料能证明什么,还需要补充什么。

  • 招聘页面开了很多,却不知道哪些岗位真正适合自己的背景;
  • 海外课程、项目、实习和社团经历,很难直接对应国内企业的职责与门槛;
  • 简历反复修改,却不清楚哪些内容有事实支撑,哪些关键证据仍然缺失;
  • 面对投递、补经历、改简历和准备面试,很难判断下一步先做什么。

Mako 处理的不只是一份简历,而是求职过程中一连串相互关联的判断:先梳理已经发生并且可以说明的经历,再理解岗位要求,找出两者之间的对应关系和信息缺口,最后确定下一步行动。

认识 Finn

系着领带的 Finn

Mako 的名字来自 Mako shark,是目前已知游速最快的鲨鱼,短时间内可达 74 公里/小时。流线的身体、深叉的尾鳍、尖细的吻部,都是为速度而生;更特别的是,它能让肌肉和大脑维持比周围海水更高的体温,因此在更冷的水域里依然能保持敏锐和爆发力。

求职也像一片水温不定、信号微弱的海域:机会常常藏在看不见的地方,能不能抓住,取决于谁先感知到,并快速适应。

Finn 是一只刚从校园游进职场的小鲨鱼,鳍尖还留着没褪干净的稚气,游动的时候还带着点不熟练的冲劲。面对陌生的岗位和选择,它也可能会感到茫然——但它的感官很灵,哪怕水浑光暗,也能捕捉到别人错过的一点点信号。它或许能陪着某一刻感到迷茫的你,一起游向那个真正适合自己的方向。

从背景梳理到行动计划

小 Finn 串联背景诊断、方向匹配、JD 分析、简历优化、面试准备和行动规划

这六项任务对应求职中经常连续出现的六个问题。用户可以从当前最需要的阶段开始,也可以基于同一份个人材料依次完成。

阶段 求职任务 这一阶段解决什么
1. 认识自己 背景诊断 梳理教育、项目、实习与技能,确认已有优势和仍需补充的信息
2. 找到方向 岗位方向匹配 比较不同岗位方向与当前经历,判断值得优先了解的范围
3. 看懂 JD JD 分析 拆解职责、基本门槛、加分项和需要进一步确认的条件
4. 讲清经历 简历优化 在事实范围内调整表达,让相关经历准确回应目标岗位
5. 准备面试 面试准备 根据目标岗位准备笔试、面试、项目追问和经历复盘
6. 安排行动 行动规划 结合目标、差距和时间,安排投递、准备与能力补强

前一步形成的判断,会成为后一步的输入:岗位方向决定需要重点查看哪些 JD,JD 中的要求决定简历和面试应当准备哪些证据,尚未覆盖的要求则进入后续行动计划。

不启动完整系统,也可以先试试 Mako

如果你只想分析一份简历、看懂一份 JD,或者梳理当前求职方向,可以把 Mako Career Skill 安装到 Codex。它不需要启动 Docker、数据库或 Mako Workspace,也不要求单独配置 Mako API Key。

在 Codex 中调用 $skill-installer,并提供下面的 GitHub 地址:

使用 $skill-installer 从下面的 GitHub 路径安装 mako-career:

https://github.com/limingren0803-lgtm/Mako-Public/tree/main/integrations/codex/mako-career

安装后可以直接说:

使用 $mako-career,根据我下面的背景判断适合优先了解哪些岗位方向。

也可以上传简历、JD、项目材料或求职笔记,然后询问是否值得投、如何调整简历、怎样准备面试,或者接下来两周应该先做什么。用户不需要判断应当选择哪个内部流程,Skill 会根据最终需要的结果选择最小必要流程。

轻量版只处理当前 Codex 对话,不连接 Mako 后端,也不会把材料另行写入 Mako Workspace。当前对话、附件和模型用量仍遵循用户所在 Codex 环境的规则。需要跨会话保存材料、管理多个岗位、跟踪投递阶段或使用已审核官方职位记录时,可以再使用完整的 Mako Workspace。

完整的安装方法、文件兼容范围和常见问题见 Mako Career Skill 使用指南。

把分析变成接下来要做的事

六项 Career Skill 用来解决当前问题,Career Workspace 则把用户已经确认的目标、岗位、材料和行动保留下来。连续求职任务会固定当前材料版本和岗位范围;分析结果只有在用户明确保存后才进入任务,候选行动也需要用户确认后才成为待办。

工作区由三个相互关联的页面组成:

  • 求职总览汇总今天优先处理的事项、未来七天的截止安排和岗位阶段;
  • 目标岗位记录官方已审核职位或用户自行提供的完整 JD,并保留来源和当前状态;
  • 今日行动把任务写成可完成的事项,明确完成标准,并可关联到具体岗位;
  • 求职任务把同一目标下的材料、岗位、分析阶段和已保存结果串联起来。

这些状态由用户确认和更新。系统不会因为一次分析自动改变投递或面试阶段,也不会把建议直接记成已经接受的行动。工作区使用独立的本地 SQLite 保存数据,支持导出和清空,不反向修改 CareerProfile、官方职位库、Evidence Registry、Redis 或 ChromaDB。

Mako Career Workspace 求职行动总览

让自己的材料参与分析

个人材料库用于保存需要反复核对的简历、项目文档、课程材料和求职笔记。它支持 TXT、Markdown、带文本层的 PDF 和 DOCX;文件会先展示解析预览,用户确认后才保存规范化文本和页码、章节或行号,原始文件不会长期保留。

使用 Career Skill 时,可以让 Mako 自动查找相关材料、只使用指定材料,或者在本次分析中完全关闭个人材料。只有达到相关性要求的内容才会参与回答,结果会列出实际使用的材料及引用位置;没有合适内容时,不会为了补全回答强行加入无关片段。

个人材料库使用独立的本地存储,不会把检索结果自动写成 CareerProfile 事实,也不会改变岗位、行动项或求职阶段。

在工作台里开始

工作台现在提供求职总览、目标岗位、今日行动、个人材料库和六项 Career Skill。用户可以先整理需要持续跟进的岗位与材料,也可以直接进入当前要解决的分析任务。

使用 Career Skill 时,可以直接输入情况,也可以上传 TXT、Markdown、带文本层的 PDF 或 DOCX;系统会先展示本次使用的内容,确认后再生成结果。

这里上传的文件只随本次请求处理,不会自动保存到个人材料库。独立分析还可以明确选择材料库中的当前简历、临时简历或不使用简历;连续任务会记录所选材料版本,内容变化后要求重新确认。

进行岗位方向匹配时,可以选择系统内已经审核的岗位,也可以提供自己的完整 JD。系统岗位会展示经过审核的职责或要求;用户提供的链接仅用于标注来源,页面不会主动访问链接内容。招聘信息来自公开网络及企业官方招聘平台;目录入口不代表具体岗位已经核验,实际岗位、条件和截止时间以企业官网为准。

Mako 求职工作台

如果问题、经历、文件、JD 或岗位选项发生变化,工作台会要求重新确认材料,避免沿用已经过时的输入。结果可以复制、下载为 TXT,也可以保留当前输入后重试。当前页面仍是本地单用户工作区,不提供云端账户、跨设备同步或线上多人平台。

判断从哪里来

Mako 给出建议时,会同时说明使用了哪些材料、哪些结论已有证据支持,以及哪些地方仍然缺少信息。这样做的目的不是替用户下结论,而是让用户能够检查依据,再决定是否采纳。

  • 简历与经历分析只使用用户提供的事实,不补写未提供的职责、技能、证书、数据或成果;
  • 匹配结果分别呈现已有证据、信息缺口和适用范围,不用一个缺少解释的综合分数代替判断;
  • 职位记录保留企业官方来源、内容版本和最近核验时间,便于回到原始信息核对;
  • 官网内容暂时无法可靠解析时,只提供已登记的官方招聘入口,不将入口描述成具体在招职位;
  • 用户可以选择职位信息的核验时间范围和来源,最终是否投递仍由用户决定;
  • 独立分析默认不写入对话记忆,不触发 CareerProfile 更新;明确截止日期已经过去时会显示过期状态。

项目当前进展

当前稳定版本为 v2.9.0。以下数据来自本次公开候选与已发布功能的可验证状态。

项目 当前状态
求职任务 6 项
企业官方来源 109 个
已审核结构化职位样本 35 个
当前版本 v2.9.0
公开回归测试 144/144 通过
Docker 服务 5 个

快速启动

环境要求:Docker Desktop、Docker Compose v2,以及 Anthropic API Key 或支持 Anthropic 协议的兼容服务密钥。

cp .env.example .env
docker compose up -d --build

在本地 .env 中填写服务地址、模型名和 API Key,同时设置随机的 REDIS_PASSWORD 和至少 32 个字符的 MAKO_ADMIN_API_KEY。

启动后打开:

  • http://localhost/mako/:Mako 求职工作台
  • http://localhost:8000/health:应用健康状态

查看运行状态与停止服务:

docker compose ps
docker compose logs -f mako
docker compose down

完整环境准备和部署步骤见 Mako 从 0 到 1 部署指南。

工程实现

Mako 的产品流程由 Agent、Skills、记忆、知识检索、职位数据治理和可观测性共同支撑。

模块 实现
Agent GeneralAgent、TechnicalAgent、CareerAgent
Skills 6 个 Career Skills,另有 General 和 Technical Skill
用户画像 Structured CareerProfile、schema-guided extraction、conservative merge
画像更新 只在检测到新增职业信息时异步更新
工作记忆 Redis Working Memory
长期记忆 ChromaDB Episodic Memory 与跨会话画像复用
能力加载 Dynamic SkillManager,按 Intent 注入单个 Career Skill
知识检索 RAG knowledge retrieval、文档版本与回滚
职位情报 109 家企业招聘入口目录、JobPosting 审核、时效与用户来源选择
V2 匹配 已审核 JD 要求、用户确认材料、逐项证据状态与请求级结果
求职工作区 CareerTask、JobTrack、ActionItem、独立 SQLite、本机会话、修订冲突检查与数据导出
可观测性 /monitor、Prometheus、evaluation、模型请求与 token 用量指标
回答可靠性 完整性检测、一次有界续写和质量状态返回
API 契约 Request ID、幂等请求、结构化错误、职位来源和安全验证摘要
部署 Nginx 外部入口、FastAPI、Docker Compose
请求链路、CareerProfile 与 Skills 路由
Nginx
  -> FastAPI POST /chat
  -> Redis Working Memory + ChromaDB
  -> 已选 Career Skill / IntentRecognizer 回退
  -> AgentOrchestrator
  -> GeneralAgent / TechnicalAgent / CareerAgent
  -> Dynamic SkillManager
  -> LLM response
  -> memory / CareerProfile / monitor / evaluation

工作台明确选择 Career Skill 时,请求直接进入对应任务;没有提供选择的 API 客户端继续使用自动意图识别。每次 Career 请求只注入一个与 Intent 对应的 Skill。本地知识上下文和 /search 直接查询现有知识库,不额外调用模型改写或重排查询。

CareerProfile 组织用户的教育、经历、技能和目标信息,只在检测到新增职业信息时异步更新。Redis 保存 Working Memory,ChromaDB 提供 Episodic Memory、画像复用与 RAG 检索。

方向匹配的 V2 请求级流程允许用户选择已审核职位、确认 JD 原文中的要求和关键词,并按已覆盖、部分覆盖、存在差距及待补充查看逐项结果。请求材料和结果不会写入证据库、CareerProfile、Redis、ChromaDB 或职位库。

官方职位数据治理

企业招聘来源目录当前登记 109 家企业招聘入口。部分来源包含经过核验的招聘方向摘要,其余来源只提供目录入口,不表示具体岗位已经核验。

GET /jobs/sources 提供只读来源目录。招聘信息来自公开网络及企业官方招聘平台;目录入口不代表具体岗位已经核验,实际岗位、条件和截止时间以企业官网为准。

JobPosting 继续记录企业、职位、地点、职责、要求、招聘类型、发布时间、有效期、更新时间和官方链接。新职位或内容变化先进入待审核状态,审核前不会替换当前有效版本。聊天过程中不会实时访问招聘网站,也不会绕过登录、验证码或访问限制。

API 入口与调用示例

Swagger 默认关闭。本地需要接口文档时,可以在 .env 中设置:

ENABLE_SWAGGER_UI=true
地址 用途
http://localhost/mako/ Mako 求职工作台
http://localhost:8000/docs Swagger UI,需启用 ENABLE_SWAGGER_UI
http://localhost:8000/health 应用健康和 Agent 统计
http://localhost:8000/skills Skill 加载摘要,需 X-Admin-Key
http://localhost:8000/monitor 监控摘要,需 X-Admin-Key
http://localhost:8000/search 本地知识检索
http://localhost:8000/jobs/sources 官方职位来源只读目录
http://localhost:8000/v2/workspace/* 求职工作区会话、岗位、行动、总览与导出
http://localhost:9090 Prometheus
curl -X POST "http://localhost:8000/chat" \
  -H "Content-Type: application/json" \
  -d '{"user_id":"demo-user","job_max_age_days":30,"job_source_ids":["src_cn_tencent","src_cn_baidu"],"job_data_mode":"official_links_if_missing","message":"我准备回国求职,主修信息系统,有数据分析实习经历,适合关注哪些岗位?"}'

响应中的关键字段包括:

  • response
  • intent
  • agent_type
  • review_required
  • latency_ms
  • knowledge_used
  • job_data_used
  • job_sources
  • job_max_age_days
  • job_source_ids
  • job_data_mode
  • job_source_options
  • request_id
  • response_complete
  • continuation_used
  • quality_flags

当模型输出因 token 上限或结构未闭合而可能中断时,Mako 最多执行一次有界续写。调用方可以根据完整性和质量字段决定是否重试或转入人工检查。

验证、已知边界与安全边界

v2.4.0 公开版本完成了以下验证:

检查项 结果
公开基线回归 141/141 通过
Python syntax / import 通过
Python 依赖审计 执行 pip-audit;ChromaDB 三项暂无修复版本的公告使用精确临时例外
Docker Compose config 通过
V2 请求级岗位匹配与权限边界 通过
Career Workspace 会话、岗位、行动、冲突与删除边界 通过
求职总览、目标岗位、今日行动与六个 Career Skill 通过
个人材料预览、导入、检索、引用、导出和删除边界 通过
模型用量指标、幂等请求与 /chat 独立限流 通过

公开仓库的 CI 会运行公开基线回归、依赖审计、Python 编译检查、Compose 配置检查和凭据模式扫描。本地运行公开基线测试:

.\.venv-win\Scripts\python.exe -m unittest discover -s tests -v

当前边界:

  • 不同企业官网的数据呈现方式不同,未验证的站点不会启用自动分页或批量刷新;
  • 职位信息反映最近一次成功核验的官网状态,投递前仍应打开返回的官方链接确认;
  • /chat 和 /search 尚未提供终端用户身份系统,公网多用户部署还需要身份层与 TLS;
  • Career Workspace 面向本机单用户使用,通过 12 小时 HttpOnly 会话保护;它不是线上账户或跨设备同步系统;
  • /chat 的五分钟幂等缓存适用于当前单进程部署,多实例运行需要共享协调层;
  • V2 工作台只对具备已审核结构化 JD 条目的系统岗位提供逐项状态,其他有效岗位和用户 JD 继续使用常规方向匹配;
  • Career Skill 的请求级材料不会自动变成工作区行动;扫描 PDF、旧 DOC、DOCM、PPT、Excel、图片和音视频尚未开放;
  • 个人材料库不提供 OCR、云端账户、跨设备同步或多人协作,原始二进制文件不会长期保留。

v2.4.0 保持既有 API 路径、Redis key、CareerProfile Schema 和知识登记库结构不变。个人材料使用独立 SQLite 文件和独立 ChromaDB collection,复用 Career Workspace 的持久化 volume。普通材料操作不会写入画像、岗位、行动、记忆、职位库或证据登记库。

管理、调试、知识库、职位刷新和评测接口使用独立的 X-Admin-Key。应用、Redis、ChromaDB 和 Prometheus 的直连端口默认只绑定本机;外部招聘内容作为不可信事实背景处理,不能修改 Agent 身份、系统规则或工具权限。

目录结构
agents/       Agent 实现与编排
api/          FastAPI 入口和 HTTP 路由
core/         Intent、CareerProfile、职位模型与 Skill 加载
memory/       Redis 与 ChromaDB 记忆层
skills/       动态业务规则
mcp/          工具管理、知识库和职位适配器
monitor/      运行监控
evaluation/   意图与对话评测
tests/        公开基线回归与安全边界测试
tools/        维护工具
ui/           求职工作台、交互脚本和品牌图标

项目文档

Yorumlar (0)

Sonuc bulunamadi