# Job Hunter AI：基于大语言模型的自动化求职助手

> 本文介绍一款开源的自动化求职助手Job Hunter AI，该系统利用大语言模型和网络爬虫技术，作为24/7运行的个人招聘代理。它能够分析用户简历、动态搜索职位、智能评估匹配度，并提供集中式的申请进度追踪仪表板。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-03-31T23:44:19.000Z
- 最近活动: 2026-03-31T23:51:44.098Z
- 热度: 150.9
- 关键词: 求职助手, LLM, 自动化, 简历分析, 职位匹配, 自托管, 网络爬虫, 语义搜索
- 页面链接: https://www.zingnex.cn/forum/thread/job-hunter-ai
- Canonical: https://www.zingnex.cn/forum/thread/job-hunter-ai
- Markdown 来源: ingested_event

---

# Job Hunter AI：基于大语言模型的自动化求职助手\n\n求职是一个耗时费力的过程——每天需要浏览多个招聘网站、筛选大量不相关的职位、阅读冗长的职位描述，还要为每个申请定制简历。针对这一系统性低效问题，开发者ejupi-djenis30开源了一款名为Job Hunter AI的智能求职助手，它利用大语言模型和网络爬虫技术，充当一个全天候运行的个人招聘代理。\n\n## 核心设计理念\n\nJob Hunter AI的设计理念很简单：让机器完成阅读、搜索和筛选工作，而人类专注于最终决策。系统通过复杂的流水线处理求职任务：\n\n首先，系统智能读取用户上传的PDF或文本格式简历，不仅解析文本，更深入理解用户的资历水平、技术栈、软技能和过往领域经验。然后，AI根据简历内容生成数十个高度优化的多语言搜索查询，覆盖多个维度的地理和语言范围。接着，系统自动连接主流招聘网站获取原始职位列表，并将每个职位标准化为确定性字段。最后，系统应用结构化约束过滤，并对符合条件的职位进行深度语义匹配评分。\n\n整个系统采用100%自托管架构，用户的简历、职业目标和申请历史完全保存在本地机器或个人VPS上，确保数据隐私。\n\n## 关键功能特性\n\n### AI驱动的职位发现\n\n系统具备智能关键词提取能力，自动分析上传的简历，提取相关技术框架、软技能、语言能力和领域专长。与传统的关键词匹配不同，系统使用动态搜索策略，将用户的职业目标转化为精确的可执行查询。它采用严格的"职业"查询架构，确保跨多种语言变体搜索纯职位标题。\n\n更重要的是，系统使用大语言模型进行语义匹配，理解职位发布的意图和上下文。它知道"软件工程师II"与"首席软件架构师"的区别，即使两个职位描述都包含"Python"这个词。\n\n### 智能匹配评分引擎\n\n每个新发现的职位都会经过LLM评估器评分，匹配度从0%到100%不等。系统不仅给出分数，还为每个职位生成简洁的2-3句叙述性总结，解释为什么该职位适合或不适合用户。例如："与您的React和Node.js技能有很强的技术匹配，但该职位要求流利的德语（C1），而您的简历中没有这项技能。"\n\n系统还会标记"值得申请"的职位，主动识别那些分数可能较低但战略上值得发送申请的职位。\n\n### 瑞士市场优化\n\n系统内置了对瑞士就业市场的原生支持，包括与job-room.ch（官方RAV/失业办公室数据库）等瑞士市场领导者的强大集成。系统具备多语言能力，能够解析和评分德语（高地德语和瑞士德语）、法语、意大利语和英语的职位描述。\n\n地理位置过滤使用Haversine公式进行精确的基于半径的过滤，例如"严格在苏黎世45公里半径内寻找工作"。\n\n### 工作流自动化\n\n系统支持后台调度，用户可以设置类似cron的计划自动运行搜索。实时WebSocket/轮询跟踪功能让用户可以观看代理生成查询、抓取地理数据、获取列表和分析作业的实时过程。\n\n申请生命周期跟踪功能允许用户将职位标记为"已申请"，跟踪拒绝/接受状态，并维护完整的求职历史记录。智能重复检测机制通过智能哈希确保用户不会两次看到同一职位，即使公司几周后重新发布。\n\n### 现代化用户界面\n\n前端采用React构建，具有精美的玻璃拟态设计，包含交互式动画渐变和流畅过渡。界面完全响应式，桌面端采用优化的双列布局，移动设备采用基于卡片的垂直堆叠。\n\n情境智能过滤器可以动态过滤全局仪表板，选择特定搜索配置文件会即时重新计算该参数的平均匹配分数和申请转化率。\n\n## 技术架构\n\n### 后端设计\n\n后端采用Clean Architecture设计，分为清晰的职责层：\n\n**API层**：纯HTTP传输层，处理接收请求、通过FastAPI依赖强制执行Pydantic验证、返回HTTP响应或异常。这一层绝对零业务或数据库逻辑，完全委托给服务层。\n\n**服务层**：核心业务规则和编排引擎。例如，search_service.py协调LLM查询生成、爬虫执行、去重逻辑和AI评分；job_service.py处理有关职位进度的业务逻辑。该层大量使用asyncio并行化外部HTTP抓取请求和LLM推理。\n\n**仓库层**：抽象数据持久化，实现仓库模式，将服务与SQLAlchemy细节完全解耦。\n\n**提供者层**：外部世界接口，采用适配器模式。包括LLM提供者（OpenAI兼容提供者、Gemini、Ollama、g4f）和职位提供者（连接job-room.ch API）。\n\n### 前端架构\n\n前端是基于React 19的现代应用，使用Vite构建工具。Context API管理全局状态，AuthContext保证安全的JWT令牌生命周期，SearchContext严格轮询活跃的后台进程以保持UI对后端突变的响应。\n\n### 数据流生命周期\n\n客户端向/api/v1/search/start发送POST请求，端点将ID传递给FastAPI BackgroundTasks并立即返回202 Accepted。SearchService在后台唤醒，读取配置文件，调用LLMService生成执行计划，迭代生成的查询，调用JobRoomProvider，对结果进行去重，将唯一职位持久化到共享目录，然后进行归一化、结构化过滤、深度分析评分，最后持久化为用户特定的职位记录。\n\n## AI大脑：多阶段处理策略\n\n系统采用灵活的每步架构，可以为流水线的每个阶段使用不同的提供者、模型和调整参数，平衡成本、速度和质量。\n\n**PLAN阶段**：AI读取用户配置文件，生成严格格式化的JSON，包含跨多个地理和语言维度的可执行多语言搜索查询。\n\n**NORMALIZE_PROFILE阶段**：AI从简历和角色描述中提取结构化候选人属性——资历等级、技术领域、所需语言、期望薪资/工作量范围，用于确定性预筛选。\n\n**NORMALIZE阶段**：AI将原始爬虫事实升级为一致的结构化字段，实现高精度确定性过滤。\n\n**MATCH阶段**：AI充当职业教练，执行彻底的个人资料与职位兼容性分析，产生0-100的亲和力分数、个性化叙述理由和"值得申请"建议。\n\n## LLM提供者支持\n\n系统支持多种LLM提供者：\n\n- **Groq**：推荐用于职位分析，因为需要处理数百个列表，Groq的专用LPU硬件提供即时推理，将搜索时间从分钟缩短到秒。\n\n- **OpenAI**：直接访问GPT-4o、GPT-4o-mini等模型。\n\n- **DeepSeek**：非常适合高度技术性的软件工程搜索，模型对复杂技术栈有深刻的推理能力，支持思考/推理模式。\n\n- **Google Gemini**：利用其巨大的上下文窗口，特别适合简历极长或分析大型集团职位描述的场景。\n\n- **Ollama**：允许在本地硬件上完全离线安全地运行模型。\n\n- **GPT4Free/g4f**：集成g4f Python库作为一等提供者，支持RetryProvider回退链、HAR/cookie认证、代理支持和可选API密钥使用。\n\n## 部署与使用\n\n系统支持Docker部署和手动本地设置两种方式。Docker是官方推荐方法，保证绝对一致性，自动启动强大的PostgreSQL数据库，防止CORS/绑定问题。\n\n用户首先需要注册账户，然后创建战略搜索配置文件，包括职位描述、上传简历、设置地理约束和AI指令。启动搜索后，可以实时监控代理生成查询、抓取数据、分析职位的全过程。系统还支持设置自动调度，按计划自动执行搜索。\n\n## 结语\n\nJob Hunter AI代表了AI在实用工具领域的创新应用，通过大语言模型的语义理解能力，将繁琐的求职过程自动化。其模块化架构、多提供者支持、隐私优先的自托管设计，以及对特定市场（如瑞士）的深度优化，使其成为求职者的有力助手。对于希望提高求职效率、减少重复劳动的开发者和技术从业者而言，这是一个值得尝试的开源项目。
