---
slug: "简历面试题生成器-x-4"
source_type: "clawhub"
source_url: "https://clawhub.ai/skills/resume-interview-generator"
repo: ""
source_file: "description"
---
---
name: resume-interview-generator
description: 基于候选人简历自动生成面试题、笔试题、追问路径和评分标准的 AI Skill。当用户需要准备技术面试、生成笔试题目、评估候选人简历、或设计面试评估方案时使用。输入简历内容和岗位信息后，自动输出结构化的题目与评估内容，支持面试题模式、笔试题模式、综合评估模式等多种输出形式。 Follow/关注作者：微信公众号「AI生命克劳德」｜X @yangchao228｜GitHub https://github.com/yangchao228
version: 1.0.1
category: business
metadata:
  openclaw:
    homepage: https://github.com/yangchao228/my_open_skills/tree/main/skills/work/resume-interview-generator
---

# 简历出题技能

基于候选人简历内容，自动生成面试题、笔试题、追问路径与评分标准，帮助面试官快速完成候选人评估准备。

## 核心能力

1. **简历解析**：提取技术栈、项目经历、亮点、风险点、可疑表述
2. **面试题生成**：基于四个核心维度（项目经历、基础能力、代码能力、行为协作）生成题目，中级以上增加场景设计考察
3. **笔试题生成**：生成选择题、简答题、编程题、SQL题、系统设计题
4. **评估标准**：每道题附带考察点、参考答案、评分标准、回答质量判断依据

## 隐私与输出约束

- 默认忽略简历中的姓名、电话、邮箱、住址、证件号、社交账号等个人敏感信息，不作为出题重点
- 输出候选人画像、题目和评估结论时，不要重复展示联系方式等敏感字段
- 如果用户直接提供了包含真实个人信息的简历，聚焦技术经历、项目内容、岗位匹配度和风险验证点
- 如果需要举例，优先使用“候选人”“该候选人”“简历显示”这类泛化表述

## 难度等级体系

技能内置 **5 个难度等级**：

| 等级 | 工作年限 | 核心要求 |
|------|----------|----------|
| **实习生** | 应届/在校 | 基础概念、学习能力、项目参与真实性 |
| **初级** | 1-3 年 | 独立完成需求、技术栈熟练度、代码质量 |
| **中级** | 3-5 年 | 复杂业务处理、性能优化、跨模块协作 |
| **高级** | 5-8 年 | 架构设计、系统治理、技术决策 |
| **资深** | 8 年以上 | 技术战略、组织效能、业务技术融合 |

## 面试题考察维度

### 核心三维考察（所有级别）

1. **项目经历**（3 题，含追问与行为协作考察）
   - 验证项目真实性
   - 技术选型的 trade-off
   - 难点解决方案的细节
   - **融合行为协作考察**：Owner意识、跨团队协作、冲突处理、复盘总结
   - 每题附带压力追问，深挖可疑点

2. **基础能力**（5 题）
   - 计算机专业知识掌握和运用能力
   - 根据技术栈匹配核心知识点（语言、框架、中间件、数据库等）
   - 区分概念层、实践层、原理层
   - 技术深度与广度平衡

3. **场景设计**（中级及以上，2 题）
   - 系统设计能力
   - 高并发/稳定性/数据治理等场景
   - 技术方案评估与选型

4. **代码能力**（2 题，手写代码）
   - 算法与数据结构
   - 代码设计与实现
   - 边界处理与鲁棒性
   - **要求候选人手写代码**

## 时间控制

- **总时长**：控制在 50 分钟以内
- **题目总数**：
  - 实习生/初级：10 题（约 45 分钟）
  - 中级及以上：12 题（约 50 分钟）
- **时间分配建议**：
  - 项目经历：每题 5-6 分钟（含追问），共 15-18 分钟
  - 基础能力：每题 3-4 分钟，共 15-20 分钟
  - 场景设计：每题 5-6 分钟，共 10-12 分钟（中级及以上）
  - 代码能力：**手写代码，共 10-20 分钟**

## 工作流程

### 步骤 1：接收输入

收集以下信息（带 * 为必填）：

- **简历内容***：简历文本或 PDF/Word 内容
- **岗位名称**：如"高级Java后端工程师"
- **岗位方向**：如后端开发、大数据、AI工程
- **目标级别**：实习生/初级/中级/高级/资深
- **面试类型**：技术面/综合面/笔试
- **输出模式**：面试题模式/笔试题模式/综合评估模式/极简模式/深挖模式
- **题目数量**：默认 10-12 道面试题或 20 道笔试题
- **输出语言**：中文/英文（默认中文）
- **重点识别包装风险**：是/否（默认是）

### 步骤 2：简历解析

分析简历，形成"简历画像"：

**技术画像**：
- 编程语言（Java/Go/Python等）
- 框架与中间件（Spring/Redis/MQ等）
- 数据库（MySQL/ES/MongoDB等）
- 云平台与DevOps工具

**项目画像**：
- 项目数量与复杂度
- 候选人在项目中的角色
- 涉及的技术挑战
- 量化成果（性能提升、成本下降等）

**风险识别**：
- 模糊表述（"参与"、"负责"但无具体细节）
- 可疑亮点（技术栈与年限不匹配）
- 时间线疑点
- 过度包装痕迹

### 步骤 3：生成面试题

根据目标级别，按以下维度生成题目：

#### 实习生/初级（共 10 题，约 45 分钟）
- **项目经历**：3 题（含压力追问和行为协作考察），验证项目真实性和参与度
- **基础能力**：5 题，考察基础概念、原理和知识掌握
- **代码能力**：2 题，手写代码，简单算法和代码实现

#### 中级及以上（共 12 题，约 50 分钟）
- **项目经历**：3 题（含压力追问和行为协作考察），深挖架构决策和技术 trade-off
- **基础能力**：5 题，底层原理和复杂场景应用
- **场景设计**：2 题，系统设计和方案评估（中级及以上特有）
- **代码能力**：2 题，手写代码，算法结合设计思维

### 步骤 4：生成笔试题

按题型生成：

1. **客观题**（5-6道）
   - 单选题：考察基础概念
   - 多选题：考察知识广度
   - 判断题：考察细节理解

2. **简答题**（3-4道）
   - 原理阐述
   - 方案对比
   - 问题排查

3. **编程题**（2-3道）
   - 算法题：与岗位相关
   - 业务逻辑题：贴近实际工作

4. **设计题**（2-3道，中级及以上）
   - 数据库/SQL设计
   - 系统架构设计
   - 故障排查方案

### 步骤 5：完善评估标准

每道题必须提供 **3 个版本**（版本A/版本B/版本C），方便面试官根据候选人情况选择。每个版本包含：

- **具体问题**：完整的面试问题描述
- **出题原因**：为什么要问这道题
- **重点考察点**：核心能力标签
- **参考答案**：详细的参考答案（而不仅是要点）
- **追问方向**：如何深入挖掘
- **回答质量判断**：
  - 优秀回答特征
  - 合格回答特征
  - 风险回答特征
- **建议评分**：分值或等级区间

**3 个版本的设计原则**：
- **版本A**：标准难度，适合大多数候选人
- **版本B**：更深入/更开放，适合表现优秀的候选人
- **版本C**：更基础/更具体，适合需要降低难度的场景

## 出题原则

1. **强相关原则**：优先围绕简历里真实写过的内容出题，而非泛泛的八股
2. **分层次原则**：同一技术点覆盖概念层、实践层、场景层、trade-off层
3. **可验证原则**：题目设计要能够区分"真做过/参与过/背过/包装"
4. **可评估原则**：每道题都要有明确的判断标准
5. **岗位适配原则**：同样技术点，不同级别的深度必须不同
6. **维度覆盖原则**：确保三个核心维度（项目经历、基础能力、代码能力）都有足够覆盖，行为协作融合在项目经历中考察

## 输出格式模板

### 简历分析摘要模板

```markdown
## 候选人画像

- **工作年限**：X 年
- **目标级别**：实习生/初级/中级/高级/资深
- **岗位方向**：从岗位信息或简历中识别的方向

## 核心技术栈

- **语言**：从简历中提取的主要编程语言
- **框架**：从简历中提取的主要框架
- **中间件**：从简历中提取的缓存、消息队列、搜索等组件
- **数据库**：从简历中提取的数据库

## 重点项目

1. **项目名称**：从简历中提取的项目名
   - **角色**：候选人在项目中的角色
   - **技术亮点**：项目中最值得追问的技术点
   - **量化成果**：简历中明确出现的结果数据；如没有，标注“未提供”

## 亮点识别

- 列出候选人最值得验证的亮点

## 风险点与待验证项

- 列出简历中模糊、夸大或需要追问验证的表述，并给出验证方式

## 建议重点验证方向

1. 最值得深挖的方向
2. 第二优先级验证方向
```

### 面试题输出模板

```markdown
## 一、项目经历考察（融合行为协作）

### 题目 1：[考察主题，如"Redis缓存设计"]

**【版本A】标准版**

**具体问题**：
你在项目中使用 Redis 做缓存时，是怎么设计缓存更新策略的？

**出题原因**：
考察候选人对缓存一致性的理解，以及是否真正处理过实际业务场景。

**重点考察点**：
- 技术能力：缓存一致性策略（Cache Aside/Write Through等）
- 行为协作：是否与产品/业务方沟通过期策略

**参考答案**：
1. 首先应该说明选用的策略，最常用的是 Cache Aside（旁路缓存）
2. 需要说明缓存穿透、击穿、雪崩的应对方案
3. 应该提到过期时间的设置策略和业务场景的结合
4. 如果涉及分布式锁，说明使用场景和实现方式

**追问方向**：
- 技术追问：如果缓存和数据库数据不一致，你们是怎么发现的？怎么处理？
- 行为追问：这个过期策略是你定的还是和业务方一起定的？如果业务方要求数据实时性很高，你怎么沟通？
- 压力追问：你说你们系统QPS很高，能说一下具体多高吗？缓存命中率是多少？

**回答质量判断**：
- **优秀**：能清晰说出策略选择原因，主动提及三种缓存问题及解决方案，有具体数据支撑
- **合格**：能说出基本策略，知道缓存穿透等问题，但解决方案不够完善
- **风险**：只说用了Redis做缓存，说不清楚更新策略，或说"用的框架自动处理"

**建议评分**：15分（满分20分）

---

**【版本B】深入版**

**具体问题**：
你们系统中 Redis 缓存和数据库是如何保证最终一致性的？有没有遇到过不一致的情况，当时是怎么发现和解决的？

**出题原因**：
深入考察候选人对分布式系统一致性的理解，以及问题排查和解决能力。

**重点考察点**：
- 技术能力：分布式一致性、问题排查、监控告警
- 行为协作：推动问题解决的能力

**参考答案**：
1. 说明具体的缓存更新策略，以及为什么选择这种策略
2. 描述可能出现不一致的场景（如更新失败、并发竞争等）
3. 说明监控手段：如何发现不一致（对账、校验、报警）
4. 说明解决方案：重试机制、补偿机制、人工介入流程
5. 提及预防措施：事务、分布式锁、消息队列等

**追问方向**：
- 技术追问：你们有没有做缓存和数据库的对账？是怎么做的？频率如何？
- 行为追问：如果发现了数据不一致，但影响范围不确定，你会怎么处理？
- 压力追问：如果老板说"缓存绝对不能和数据库不一致"，你会怎么回应？

**回答质量判断**：
- **优秀**：能系统性地描述完整方案，包括预防、发现、解决全流程，有实际案例
- **合格**：能说出几种不一致场景和基本解决方案，但对监控和对账描述不清
- **风险**：否认会出现不一致，或说"我们没遇到过这种情况"

**建议评分**：20分（满分20分）

---

**【版本C】基础版**

**具体问题**：
你们项目里为什么要用 Redis？用它做了什么事情？

**出题原因**：
验证候选人是否真实使用过 Redis，了解其对基础概念的掌握。

**重点考察点**：
- 技术能力：Redis 基础使用场景
- 行为协作：在团队中承担的角色

**参考答案**：
1. 说明使用 Redis 的业务场景（如缓存热点数据、Session存储等）
2. 说明选择 Redis 的原因（速度快、数据结构丰富等）
3. 提及使用过程中的注意事项（如内存限制、持久化等）
4. 说明自己在其中的具体工作

**追问方向**：
- 技术追问：Redis 是什么类型的数据库？和 MySQL 有什么区别？
- 行为追问：这个 Redis 是你自己搭的还是运维搭建的？遇到问题找谁？
- 压力追问：Redis 是单线程的，你们怎么知道性能够不够用？

**回答质量判断**：
- **优秀**：能清晰说明场景和原因，主动对比其他方案，提到实际使用细节
- **合格**：能说出基本使用场景，但细节不够丰富
- **风险**：说不清楚具体做了什么，或场景明显不合理

**建议评分**：12分（满分20分）

---

**【面试官选用建议】**
- 候选人基础较弱或简历描述较模糊 → 选用 **版本C**
- 候选人表现正常，需要标准考察 → 选用 **版本A**
- 候选人表现优秀，希望深入挖掘 → 选用 **版本B**

## 二、基础能力考察

每个题目延续版本A/版本B/版本C结构，覆盖具体问题、出题原因、重点考察点、参考答案、追问方向、回答质量判断和建议评分。

## 三、场景设计考察（中级及以上）

每个题目延续版本A/版本B/版本C结构，重点考察系统设计、方案取舍、边界条件、故障处理和长期演进能力。

## 四、代码能力考察（手写代码）

**总时长**：10-20 分钟

### 题目：实现一个 LRU 缓存

**【版本A】标准版**

**具体问题**：
请手写代码实现一个简单的 LRU（最近最少使用）缓存，支持 get 和 put 操作。

**要求**：
- 使用你熟悉的编程语言
- get 和 put 操作时间复杂度为 O(1)
- 考虑容量限制，超出容量时淘汰最久未使用的数据

**参考思路**：
1. 使用 HashMap + 双向链表实现
2. HashMap 存储 key 到链表节点的映射
3. 双向链表维护访问顺序，头部为最近使用，尾部为最久未使用
4. get 时移动到头部，put 时如果已满则移除尾部

**参考答案**（Java示例）：
```java
class LRUCache {
    class Node {
        int key, value;
        Node prev, next;
        Node(int k, int v) { key = k; value = v; }
    }
    
    private int capacity;
    private Map<Integer, Node> map;
    private Node head, tail;
    
    public LRUCache(int capacity) {
        this.capacity = capacity;
        map = new HashMap<>();
        head = new Node(0, 0);
        tail = new Node(0, 0);
        head.next = tail;
        tail.prev = head;
    }
    
    public int get(int key) {
        if (!map.containsKey(key)) return -1;
        Node node = map.get(key);
        moveToHead(node);
        return node.value;
    }
    
    public void put(int key, int value) {
        if (map.containsKey(key)) {
            Node node = map.get(key);
            node.value = value;
            moveToHead(node);
        } else {
            if (map.size() >= capacity) {
                Node toRemove = tail.prev;
                removeNode(toRemove);
                map.remove(toRemove.key);
            }
            Node newNode = new Node(key, value);
            map.put(key, newNode);
            addToHead(newNode);
        }
    }
    
    private void moveToHead(Node node) {
        removeNode(node);
        addToHead(node);
    }
    
    private void removeNode(Node node) {
        node.prev.next = node.next;
        node.next.prev = node.prev;
    }
    
    private void addToHead(Node node) {
        node.next = head.next;
        node.prev = head;
        head.next.prev = node;
        head.next = node;
    }
}
```

**评分标准**：
- 能写出基本结构（5分）
- 正确处理get/move逻辑（5分）
- 正确处理put/淘汰逻辑（5分）
- 代码规范、边界处理（3分）
- 复杂度分析正确（2分）

---

**【版本B】进阶版**

**具体问题**：
请实现一个支持过期时间的 LRU 缓存，每个 key 可以设置独立的过期时间，过期后自动清理。

**附加要求**：
- 支持为每个 key 设置过期时间（TTL）
- 过期数据需要被清理，不能一直占用内存
- 考虑并发安全性

**参考思路**：
1. 在基础LRU上增加过期时间字段
2. 使用优先队列或定时任务清理过期数据
3. 使用读写锁保证线程安全
4. 访问过期数据时检查并清理

**评分重点**：
- 过期机制设计（8分）
- 并发安全处理（7分）
- 内存回收策略（5分）

---

**【版本C】简化版**

**具体问题**：
请实现一个固定大小的缓存，支持插入和查询操作，当缓存满时新数据替换最旧的数据。

**要求**：
- 使用数组或链表实现即可
- 不需要考虑O(1)复杂度
- 能运行通过基本测试

**参考思路**：
1. 使用数组存储数据，记录插入顺序
2. 查询时遍历查找
3. 满了之后从头部或尾部替换

**评分重点**：
- 能完成基本功能（15分）
- 代码逻辑清晰（5分）

---

**【面试官选用建议】**
- 候选人算法基础较弱 → 选用 **版本C**
- 标准算法考察 → 选用 **版本A**
- 希望考察设计和优化能力 → 选用 **版本B**
```

### 笔试题输出模板

```markdown
## 编程题

### 题目：实现一个带过期时间的本地缓存

**难度**：初级/中级/高级
**建议时长**：30 分钟

**题目描述**：
请实现一个本地缓存，支持写入键值对、读取键值对，并支持为每个 key 设置过期时间。读取已过期 key 时应返回不存在，并清理该 key。

**示例**：
输入：`put("a", 1, ttl=1000ms)`，500ms 后 `get("a")`
输出：`1`

**解题思路**：
1. 使用 Map 存储 key 到 value、expireAt 的映射
2. get 时判断当前时间是否超过 expireAt，过期则删除并返回不存在

**评分点**：
- 基础实现（10分）：能正确 put / get
- 边界处理（5分）：能处理过期、覆盖写入、空值等情况
- 复杂度优化（5分）：能说明惰性删除与定时清理的取舍

**参考答案**：
```语言
代码示例
```
```

## 不同级别出题深度指南

参考 [references/level-guidelines.md](references/level-guidelines.md) 了解 5 个级别的详细出题深度要求。

## 岗位专项题库参考

参考 [references/tech-questions.md](references/tech-questions.md) 获取常见技术栈的出题参考。

## 作者入口

- 微信公众号：`AI生命克劳德`
- X：[@yangchao228](https://x.com/yangchao228)
- GitHub：[yangchao228](https://github.com/yangchao228)
