Skip to content

lznauy/interviewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 ██╗███╗   ██╗████████╗███████╗██████╗ ██╗   ██╗██╗███████╗██╗    ██╗███████╗██████╗
 ██║████╗  ██║╚══██╔══╝██╔════╝██╔══██╗██║   ██║██║██╔════╝██║    ██║██╔════╝██╔══██╗
 ██║██╔██╗ ██║   ██║   █████╗  ██████╔╝██║   ██║██║█████╗  ██║ █╗ ██║█████╗  ██████╔╝
 ██║██║╚██╗██║   ██║   ██╔══╝  ██╔══██╗╚██╗ ██╔╝██║██╔══╝  ██║███╗██║██╔══╝  ██╔══██╗
 ██║██║ ╚████║   ██║   ███████╗██║  ██║ ╚████╔╝ ██║███████╗╚███╔███╔╝███████╗██║  ██║
 ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚═╝╚══════╝ ╚══╝╚══╝ ╚══════╝╚═╝  ╚═╝

🥷 基于简历的 AI 模拟面试 Claude Code Skill

根据你的简历自动生成技术面试题,逐题问答、实时评估、按主题归档,支持多轮练习和薄弱知识点分析。

✨ 特性

  • 简历驱动 — 读取你的简历,针对技术栈和项目经验出题
  • 逐题模拟 — 一题一答,实时评估(✅ 正确 / ⚠️ 部分 / ❌ 未答出)
  • 讲解模式 — 答错后可追问,不限轮次,确认理解后再进入下一题
  • 动态权重 — 高权重题目出多了自动衰减,防止低权重题目被饿死
  • 难度自适应 — 根据正确率动态调整:低于 30% 出基础题,30-70% 出原理题,高于 70% 出深度题
  • 智能查重 — 基于 Jaccard + LCS 双重相似度检测,避免重复出题
  • 按主题归档 — 题目自动分类到 topics/,精简格式存储
  • Guide 渐进积累 — 薄弱 topic 先生成基础原理文档,讲解追问增量追加,逐步完善
  • 复习模式 — 从答错/跳过的题目中随机抽取,巩固薄弱点,不另出新题
  • 多轮续练 — 支持断点续练,进度持久化在 bank.json

🚀 安装

一键安装(推荐)

curl -fsSL https://raw.githubusercontent.com/lznauy/interviewer/main/install.sh | bash

自动下载预编译二进制,无需 Go 环境。支持 Linux / macOS(amd64 / arm64)。

安装内容:

  • ~/.claude/skills/interview/scripts/interviewer — CLI 工具
  • ~/.claude/skills/interview/SKILL.md — Claude Code Skill 定义

可通过 SKILL_DIR 环境变量自定义安装路径。

从源码安装

需要 Go 1.21+。

git clone https://github.com/lznauy/interviewer.git
cd interviewer
./install.sh

如果本地有 Go 环境,install.sh 会自动从源码编译。

📖 使用

在 Claude Code 中直接说:

帮我准备面试

或:

面试            # 开始/继续面试
复习            # 复习错题
mock interview

流程

  1. 检测会话interviewer detect 扫描已有题库,选择继续或新建
  2. 简历解析 — LLM 解析简历生成 resume.json,CLI 校验格式
  3. 出题计划interviewer plan 计算权重和分配,LLM 构造题目,dedup 查重
  4. 逐题作答 — 回答后即时评估,答错进入讲解模式
  5. 讲解模式 — 展示标准答案要点,用户可追问,理解后进入下一题
  6. 归档落盘interviewer commit 更新题库,LLM 写入 topic 详情
  7. 循环练习 — 继续下一轮 / 复习错题 / 结束

复习模式

已有会话后,说「复习」或在继续菜单中选择「复习错题」:

  1. interviewer review 从全量错题中随机抽取 5 道
  2. 展示上次作答记录,对比本次回答
  3. 答错进入讲解模式,复习结果通过 commit 覆盖更新

算法说明

权重计算:

  • resume.skills 中的技能基础权重 = 10
  • resume.projects[].techStack 中的技术基础权重 = 5
  • 衰减公式:effective = baseW / (1 + 0.1 * asked * baseW),防止高频题目饿死低频题目
  • 每轮固定出 10 题,按权重比例分配

难度调整:(基于单技能正确率)

  • < 30% → 难度 1-2(基础概念)
  • 30% ~ 70% → 难度 3-4(原理与设计)
  • > 70% → 难度 4-5(深度 / 开放题)

查重阈值:

  • 相似度 ≥ 0.8 → 判定为重复,直接过滤
  • 相似度 ≥ 0.5 → 标记为可疑,提示审查
  • 相似度计算:max(Jaccard(bigram), LCS_ratio)

薄弱话题判定: 正确率 < 40% 且题目数 ≥ 2

CLI 命令

所有命令输出 JSON 到 stdout,错误输出到 stderr。

命令 输入 用途
interviewer detect [dir] 扫描子目录,查找已有面试记录
interviewer check <dir> 校验 resume.json 格式
interviewer plan <dir> 计算出题指导(权重、分配、难度、去重索引)
interviewer weights <dir> 查看所有 skill 的权重计算详情(调试用)
interviewer review <dir> 从全量错题中随机取 5 道复习
interviewer dedup <dir> stdin: ["title1",...] 批量查重
interviewer commit <dir> stdin: round result JSON 落盘(更新 bank.json + index.md)

目录结构

your-interview-dir/
├── resume.json        # 简历解析结果(LLM 生成,CLI 校验,只读)
├── bank.json          # 题库状态(CLI 读写,LLM 只读)
├── index.md           # 题目总览表(CLI 自动生成)
├── topics/            # 按主题分类的题目详情(LLM 写入)
│   ├── sync.md
│   └── ...
└── guides/            # 薄弱知识点文档(LLM 写入)
    └── ...

📁 示例

example/ 包含一个 Go 后端面试题库示例:

  • 10 道题目,覆盖 6 个技术方向(Go、MySQL、Redis、K8s、gRPC、Kafka)
  • resume.json 简历文件(6 年 Go 后端工程师)
  • bank.json 进度文件
  • guides/ 薄弱知识点解析(Kafka、MySQL、Redis)

🧪 测试

go test ./...

📁 项目结构

interviewer/
├── cmd/interviewer/       # CLI 入口
│   └── main.go
├── internal/
│   ├── bank/              # 题库数据模型
│   ├── check/             # 简历校验
│   ├── commit/            # 落盘逻辑
│   ├── dedup/             # 题目查重(Jaccard + LCS)
│   ├── detect/            # 会话检测
│   ├── plan/              # 权重计算与出题分配
│   ├── resume/            # 简历模型
│   └── review/            # 错题复习选取
├── example/               # 示例题库
├── install.sh             # 一键安装脚本
├── SKILL.md               # Claude Code Skill 定义
└── go.mod                 # 零外部依赖

License

MIT

About

这是一个面试官的skill,帮助你提升面试技巧

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors