Token导航 LogoToken导航TokenDH.com
agenthire (Aptsalt) logo
AI代理未说明官方级别未说明来源级核验

agenthire (Aptsalt)

MCP Server

AgentHire是一个基于本地LLM推理的多代理AI平台,自动化整个求职生命周期,包括分析个人资料、搜索职位、评分匹配、定制简历和面试辅导,确保数据隐私且无需云端API成本。

工具数

15

提示词数

0

GitHub Stars

0

资源数

0
本地LLMTypeScript工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aptsalt

提供方

aptsalt

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

代理人雇佣

多代理人工智能平台,可自动化整个求职生命周期,完全由Ollama的本地LLM推理提供支持。云API成本为零。完全数据隐私。

五个专业的人工智能代理——由一个协调器协调——分析个人资料、搜索工作、评分匹配、定制简历和指导面试。每个代理都作为独立的MCP服务器运行。通过SSE实时流媒体。持续的聊天会话,实时数据流入每个页面。

11个包|Turborepo monorepo|TypeScript严格模式

![Live Demo](https://aptsalt.github.io/agenthire) ![Ollama](https://ollama.ai) ![Next.js](https://nextjs.org) ![TypeScript](https://typescriptlang.org)

现场演示

______________________________________________________________________

截图

Landing Page

Dashboard — Agents Thinking

Dashboard — Pipeline Complete

Hero page with agent count and stats Profile Analyst complete (34.4 tok/s), Market Researcher thinking — React Flow graph updates live All 5 agents done: 2,578 tokens, 30.0s, 28.2 tok/s — zero cloud API calls

Jobs — Live from Pipeline

Profile Management

Architecture Overview

3 jobs auto-populated from Market Researcher JSON — salary, skills, remote badges Skills, experience timeline, education, profile strength metrics (92% completeness) Pipeline flow, MCP servers with tools, LangGraph orchestrator details

New Profile Form

Upload Resume — AI Parsing

Dynamic skills (category/level), experience, education sections with validation Upload .txt resume — Ollama parses into structured profile for review

______________________________________________________________________

为什么是Ollama?100%本地LLM推理

这是AgentHire的核心设计原则。 每个AI操作都通过以下方式在您的本地计算机上运行 奥拉玛。不需要API密钥。没有云成本。没有数据离开你的硬件。

运作原理

Your Machine (GPU)
    |
    v
Ollama Server (localhost:11434)
    |
    v
qwen2.5-coder:14b model (14B parameters)
    |
    v
Next.js API Routes call Ollama directly
    |
    +---> /api/orchestrate    --> 5-agent pipeline (profile, jobs, matches, resume, interview)
    +---> /api/parse-resume   --> Resume text -> structured Profile JSON
    |
    v
Browser receives SSE stream --> real-time agent updates

本地硬件性能

度量
模型qwen2.5-coder:14b (14B参数)
图形处理器RTX 4090(16GB VRAM)
吞吐量~37-40个令牌/秒
全5剂管路总共约20-25秒
继续解析~5-10秒
温度0.3(流水线)/0.1(恢复解析)
需要API密钥没有

Ollama处理什么

特性Ollama用法
配置文件分析免费文本职业简介评估
求职带有工作列表的结构化JSON
比赛得分四维评分(技能、经验、教育、文化)
简历定制ATS优化建议
面试指导基于主题的问题和指导技巧
简历解析原始文本->结构化配置文件JSON提取

每个代理的系统提示都经过精心设计,使本地模型返回结构化JSON(用于数据驱动页面)或简洁的自由文本(用于分析页面)。这 extractJSON() 该实用程序能够稳健地处理markdown围栏和原始JSON提取。

切换模型

# In .env or .env.local
OLLAMA_MODEL=qwen2.5-coder:14b    # Default (recommended for 16GB+ VRAM)
OLLAMA_MODEL=qwen2.5-coder:7b     # For 8GB VRAM GPUs
OLLAMA_MODEL=llama3.1:8b           # Alternative
OLLAMA_MODEL=mistral:7b            # Alternative

任何与Olama兼容的型号都可以使用。较大的模型会产生结构更好的JSON输出。14B模型在结构化输出质量与速度方面达到了最佳点。

云回退(可选)

如果您更喜欢云推理,请设置 ANTHROPIC_API_KEY 和那个 @agenthire/shared 包裹的 callLLM() 将前往克劳德。启用提示缓存以降低重复系统提示的成本。但Ollama是默认的——也是推荐的——路径。

演示模式(无需GPU)

如果Ollama没有运行,应用程序会自动回退到 演示模拟模式 --一个客户端异步生成器,产生具有真实延迟和预构建结构化数据的相同事件类型。每个页面仍然有效,由演示数据填充。这就是GitHub Pages静态部署的动力。

______________________________________________________________________

实时数据管道

三个代理在返回聊天响应的同时返回结构化JSON,这些响应会自动填充仪表板页面:

User Input
    |
    v
Orchestrator
    |
    +---> Profile Analyst    ---> free-text profile analysis
    +---> Market Researcher  ---> JSON: jobs[]           --> Jobs page
    +---> Match Scorer       ---> JSON: matches[]        --> Matches page
    +---> Resume Tailor      ---> free-text resume advice
    +---> Interview Coach    ---> JSON: topics[]          --> Interview Prep page
    |
    v
SSE Stream ---> Browser (real-time updates + structured data dispatch)
    |
    v
localStorage (Zustand persist) ---> All pages read reactively from store
代理结构化输出目标页面
市场研究员{ summary, jobs: [{ title, company, location, remote, salaryMin, salaryMax, skills, requirements }] }工作机会
比赛得分者{ summary, matches: [{ jobTitle, overallScore, skillMatchScore, experienceMatchScore, educationMatchScore, cultureFitScore, skillGaps, strengths }] }比赛
面试教练{ summary, topics: [{ title, category, difficulty, questions: [{ question, tip }] }] }面试准备

______________________________________________________________________

特性

仪表板页面

第页描述
仪表盘代理状态卡、React Flow编排图、与会话选择器的持续聊天、活动提要
档案带有技能/经验/教育背景的个人资料卡,上传简历(人工智能解析),手动创建个人资料
工作来自管道的实时工作卡——工资、地点、远程徽章、技能标签、可扩展要求
火柴现场比赛得分——得分环可视化、四维细分、技能差距分析
面试准备按类别/难度分类的主题、带指导技巧的练习题、目标角色横幅
建筑可视化系统概述——流水线流程、MCP服务器、LangGraph详细信息、技术栈

配置文件功能(新)

  • 上传简历:选择一个 .txt 文件->Ollama将其解析为结构化的配置文件数据->在表单中查看->保存
  • 新建配置文件:手动表格,包含动态技能(类别/级别)、经验(亮点)、教育部分
  • AI简历解析:The /api/parse-resume 路由将简历文本发送给Ollama,并显示结构化提取提示
  • 配置文件持久性:通过Zustand persistent保存到本地存储——页面刷新和导航后仍然有效

聊天功能

  • 会话持续 --消息在导航和页面刷新后仍然有效
  • 会话选择器 --在最多10个聊天会话之间切换
  • 推断遥测 --每条消息统计信息:型号、持续时间、令牌计数、tok/s
  • 管道汇总 --总令牌、总时间、完成时的代理计数
  • 结构化数据调度 --代理JSON响应会自动填充“作业”、“匹配”和“面试准备”页面
  • 演示模式回退 --在没有Ollama的情况下,使用模拟的代理响应工作

______________________________________________________________________

入门指南

先决条件

  • Node.js>=20
  • npm>=10
  • 奥拉玛 安装时拉模型

设置

# Clone
git clone https://github.com/aptsalt/agenthire.git
cd agenthire

# Install dependencies
npm install

# Pull the LLM model
ollama pull qwen2.5-coder:14b

# Start Ollama (if not already running)
ollama serve

# Start dev server
npm run dev

打开 http://localhost:3002 --仪表板加载了所有待命的代理。

环境变量

创建 .env.localapps/web/:

# Ollama (default — no key needed)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=qwen2.5-coder:14b

# Anthropic (optional, for cloud inference)
ANTHROPIC_API_KEY=sk-ant-...

# Supabase (optional, for database persistence)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

验证一切正常

  1. 打开http://localhost:3002,导航到 仪表盘
  2. 在聊天中发送消息: *“分析我的个人资料并找到匹配的工作”*
  3. 观看代理使用实时推理统计数据流式传输响应
  4. 引导到 工作 --实时工作卡从管道中出现
  5. 引导到 火柴 --4维细分的现场比赛得分
  6. 引导到 面试准备 --管道中的主题和问题
  7. 引导到 档案 --点击“上传简历”或“新建个人资料”
  8. 刷新页面——所有数据都通过本地存储保存
  9. 如果Ollama关闭,演示模式将自动启动

______________________________________________________________________

技术栈

技术
前端Next.js 15、React 19、顺风CSS 4、Zustand 5(持久化)、React Flow 12
代理协议模型上下文协议(MCP)SDK、stdio传输
编排LangGraph,条件状态图路由
LLM推理奥拉玛 (qwen2.5编码器:14b本地),拟人克劳德(可选)
数据库Supabase、PostgreSQL、pgvector
可观测性OpenTetry,引脚
验证Zod(运行时模式+TypeScript类型)
构建Turborepo、TypeScript 5.7(严格模式)、ESM
测试Vitest(单元),剧作家(E2E),自定义eval框架
流媒体服务器通过ReadableStream发送事件(SSE)
坚持通过Zustand持久化中间件实现本地存储

______________________________________________________________________

Monorepo结构

agenthire/
  apps/
    web/                              # Next.js 15 frontend (App Router, Turbopack)
      app/
        layout.tsx                    # Root layout (Inter font, dark theme)
        page.tsx                      # Landing page
        globals.css                   # Design tokens, animations, React Flow styles
        (dashboard)/
          layout.tsx                  # Sidebar navigation, collapsible
          dashboard/
            page.tsx                  # Dashboard: agent status, graph, chat, activity
            profiles/page.tsx         # Profile card, upload resume, new profile
            jobs/page.tsx             # Live job cards from pipeline
            matches/page.tsx          # Live match scores from pipeline
            interview-prep/page.tsx   # Live topics & questions from pipeline
            architecture/page.tsx     # System architecture visualization
        api/
          orchestrate/route.ts        # SSE streaming 5-agent pipeline
          parse-resume/route.ts       # Resume text -> Profile JSON via Ollama
      components/
        agent-flow/agent-graph.tsx    # React Flow orchestration graph
        chat/chat-panel.tsx           # Persistent chat with session picker
        profile/
          profile-card.tsx            # Profile display component
          profile-form-modal.tsx      # Manual profile creation form
          resume-upload-modal.tsx     # Resume upload + AI parsing flow
      lib/
        store.ts                      # Zustand store with persist middleware
        demo-simulation.ts            # Demo fallback with structured data
        supabase.ts                   # Supabase client
  packages/
    shared/                           # Zod schemas, types, LLM client, BaseMcpAgent
    observability/                    # OpenTelemetry tracing, metrics, pino logging
    orchestrator/                     # LangGraph state graph, routing, SSE streaming
    evals/                            # Eval runner, scorers, fixtures, CLI reporter
    mcp-servers/
      resume-parser/                  # MCP: parse resumes into structured profiles
      job-search/                     # MCP: search and filter job postings
      match-scorer/                   # MCP: score profile-job matches
      resume-tailor/                  # MCP: tailor resumes for specific jobs
      interview-coach/                # MCP: interview questions & coaching
      project-tools/                  # MCP: project management utilities
  supabase/
    migrations/                       # SQL: schema, indexes, RLS policies, triggers
  docs/
    ARCHITECTURE.md                   # Detailed system architecture
    API.md                            # API endpoint documentation
    FRONTEND.md                       # Frontend architecture and data flow
    screenshots/                      # App screenshots for README

______________________________________________________________________

MCP服务器

每个代理都是一个通过stdio传输进行通信的独立MCP服务器:

服务器工具
简历分析器@agenthire/mcp-resume-parserparse_resume, extract_skills, analyze_experience
职位搜索@agenthire/mcp-job-searchsearch_jobs, filter_jobs, get_job_details
比赛得分者@agenthire/mcp-match-scorerscore_match, identify_gaps, rank_jobs
简历定制@agenthire/mcp-resume-tailortailor_resume, optimize_keywords, generate_summary
面试教练@agenthire/mcp-interview-coachgenerate_questions, evaluate_answer, provide_feedback

建立在 @modelcontextprotocol/sdk 使用Zod输入验证和共享 BaseMcpAgent 抽象类。

______________________________________________________________________

架构决策

决定理由
Ollama仅在云端零成本推理,完全数据隐私,无费率限制,离线工作
MCP通过直接函数调用代理隔离、独立扩展、协议标准化
自定义路由上的LangGraph类型安全状态管理、条件边、人在环支持
基于WebSockets的SSE更简单的服务器实现、自动重新连接、单向就足够了
关于Redux最少的样板,用于本地存储的持久化中间件,直接访问存储
JSON代理提示结构化输出自动填充页面,而不仅仅是聊天文本
Turborepo monorepo共享类型、依赖感知构建、增量缓存

______________________________________________________________________

命令

npm run dev            # Start all packages in dev mode
npm run build          # Build all packages (respects dependency order)
npm run test           # Run vitest across all packages
npm run type-check     # TypeScript strict mode check
npm run lint           # Lint all packages
npm run eval           # Run eval suites
npm run eval:report    # Display eval results

______________________________________________________________________

文档

文档描述
建筑系统架构、数据流图、包责任
APIREST/SSE端点文档、事件模式、代理JSON格式
前端存储形状、组件库存、页面数据流、设计令牌

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

本地LLMTypeScript工作流自动化AI求职本地部署数据隐私自动化工作流多代理系统

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP