问周——人工智能简历助理
一个由人工智能驱动的聊天界面,让招聘人员和招聘经理可以询问我的背景。由...驱动 克劳德AI 和a MCP(模型上下文协议)服务器 这是我简历中每个答案的依据。
______________________________________________________________________
这是什么?
这个项目让任何人都可以就我的经历进行真正的对话,而不是静态的简历PDF:
_“周有AWS经验吗?”_\ _“他适合担任全栈角色吗?”_\ _“他最令人印象深刻的项目是什么?”_
克劳德使用MCP工具搜索我的简历,并给出具体、有根据的答案,而不是幻觉。
建筑
resume.pdf
↓
MCP Server (Node.js/Express) ← defines a "search_resume" tool
↑
Claude API (claude-sonnet) ← calls the tool, forms responses
↑
React Frontend (Vite) ← chat UI, hosted on GitHub Pages使用的技术: React、Vite、Node.js、Express、Anthropic SDK、MCP工具使用、GitHub操作、渲染
______________________________________________________________________
地方发展设置
先决条件
- 安装
- 一 无烟煤API键
1.克隆仓库
git clone https://github.com/jaysinghcodes/ask-my-resume.git
cd ask-my-resume2.启动MCP后端服务器
cd mcp-server
npm install创建一个 .env 文件(从示例中复制):
cp .env.example .env打开 .env 并添加您的Anthropic API密钥:
ANTHROPIC_API_KEY=sk-ant-...
PORT=3001启动服务器:
npm start您应该看到: ✅ Resume loaded successfully 和 🚀 MCP Server running on port 3001
3.启动React前端
打开A 新建终端选项卡:
cd frontend
npm install
npm run dev打开 http://localhost:5173 --你活着!
______________________________________________________________________
部署
后端→ 渲染
前端→ GitHub页面
______________________________________________________________________
项目结构
ask-my-resume/
├── .github/
│ └── workflows/
│ └── deploy.yml # Auto-deploys frontend on push to main
├── mcp-server/
│ ├── index.js # Express server setup + resume loading
│ ├── resume.pdf # Jay's resume (the AI's source of truth)
│ ├── package.json
│ ├── .env.example # Environment variable template
│ ├── lib/
│ │ ├── claude.js # Anthropic client + agentic loop
│ │ ├── config.js # Server configuration
│ │ ├── prompts.js # System prompts for Claude
│ │ ├── resume.js # Resume PDF loading & caching
│ │ └── tools.js # MCP tool definitions (search_resume)
│ └── routes/
│ ├── chat.js # POST /chat endpoint
│ └── health.js # GET /health endpoint
└── frontend/
├── index.html
├── vite.config.js
├── package.json
├── .env.example
├── public/
├── src/
│ ├── App.jsx # Main app with routing
│ ├── main.jsx # React entry point
│ ├── theme.js # MUI theme (beige + dark grey)
│ ├── config/
│ │ └── constants.js # App-wide constants & config
│ ├── components/
│ │ ├── ChatHeader.jsx # Chat page header with status
│ │ ├── ChatInput.jsx # Message input with auto-resize
│ │ ├── EmptyState.jsx # Initial state with suggested questions
│ │ ├── Message.jsx # Individual message bubble
│ │ ├── MessageAvatar.jsx # User/AI avatar component
│ │ ├── MessagesList.jsx # Messages container with typing indicator
│ │ ├── NavDrawer.jsx # Mobile-first navigation menu
│ │ ├── TypingIndicator.jsx # Animated dots while AI responds
│ │ └── index.js # Component exports
│ └── pages/
│ ├── ChatPage.jsx # Main chat interface
│ ├── AboutPage.jsx # About the project & tech stack
│ ├── ContactPage.jsx # Contact & social links
│ └── index.js # Page exports
└── README.md______________________________________________________________________
MCP在这里是如何工作的
MCP服务器公开了一个名为 search_resume当用户提出问题时,Claude决定是否调用此工具,执行它,获取简历内容,然后制定响应。这是 代理循环 图案:
User asks question
↓
Claude sees it needs resume context
↓
Claude calls search_resume tool
↓
Server returns resume text
↓
Claude synthesizes final answer
↓
User gets grounded, specific response______________________________________________________________________
建造于 杰伊·辛格 ·
