<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>简历优化 on KnightLi的博客</title>
        <link>https://knightli.com/tags/%E7%AE%80%E5%8E%86%E4%BC%98%E5%8C%96/</link>
        <description>Recent content in 简历优化 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 08 Jul 2026 08:13:04 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/%E7%AE%80%E5%8E%86%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>ai-job-search：用 Claude Code 管理求职、筛岗位、改简历和写求职信</title>
        <link>https://knightli.com/2026/07/08/ai-job-search-claude-code-job-application-workflow/</link>
        <pubDate>Wed, 08 Jul 2026 08:13:04 +0800</pubDate>
        
        <guid>https://knightli.com/2026/07/08/ai-job-search-claude-code-job-application-workflow/</guid>
        <description>&lt;p&gt;找工作最麻烦的地方，往往不是“不会投简历”，而是流程太碎：岗位散在不同网站，简历要按岗位改，求职信要重新写，投完还要记录结果。时间一长，很容易变成一堆浏览器标签、几个版本的 PDF 和一个没人维护的表格。&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/MadsLorentzen/ai-job-search&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MadsLorentzen/ai-job-search&lt;/a&gt; 的思路是把这些动作放进 Claude Code：先建立个人求职档案，再搜索岗位、打分排序、生成定制 CV 和 Cover Letter，最后把申请结果记录回系统。它更像一套求职工作流模板，不是一个点一下就自动海投的工具。&lt;/p&gt;
&lt;h2 id=&#34;它解决什么问题&#34;&gt;它解决什么问题
&lt;/h2&gt;&lt;p&gt;ai-job-search 主要想解决四件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把你的经历、技能、教育背景和写作风格整理成结构化资料；&lt;/li&gt;
&lt;li&gt;批量查找岗位，并按匹配度筛出值得投的机会；&lt;/li&gt;
&lt;li&gt;针对单个岗位生成更贴合的 CV 和求职信；&lt;/li&gt;
&lt;li&gt;投递后记录结果，用真实反馈反过来校准下一轮申请。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个设计比较务实。它没有承诺“自动帮你拿 offer”，而是把求职中重复、容易漏、容易乱的部分交给 AI 辅助处理。&lt;/p&gt;
&lt;h2 id=&#34;核心流程&#34;&gt;核心流程
&lt;/h2&gt;&lt;p&gt;项目的核心命令是 &lt;code&gt;/setup&lt;/code&gt;、&lt;code&gt;/scrape&lt;/code&gt; 和 &lt;code&gt;/apply&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;1-setup先建立你的求职档案&#34;&gt;1. &lt;code&gt;/setup&lt;/code&gt;：先建立你的求职档案
&lt;/h3&gt;&lt;p&gt;第一次使用时，需要先在 Claude Code 里运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;项目提供三种初始化方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读取 &lt;code&gt;documents/&lt;/code&gt; 文件夹里的资料，例如 CV、LinkedIn 导出、学历证明、推荐信和过往申请；&lt;/li&gt;
&lt;li&gt;直接在对话里粘贴一份 CV；&lt;/li&gt;
&lt;li&gt;通过问答方式逐步建立个人档案。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这一步很关键。后面所有岗位打分、简历改写和求职信生成，都依赖这里整理出来的真实经历。如果个人资料很空，AI 后面就只能泛泛而谈。&lt;/p&gt;
&lt;h3 id=&#34;2-scrape搜索岗位并筛选&#34;&gt;2. &lt;code&gt;/scrape&lt;/code&gt;：搜索岗位并筛选
&lt;/h3&gt;&lt;p&gt;准备好档案后，可以运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/scrape
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它会调用项目里的岗位搜索工具，抓取和个人资料匹配的岗位，并对结果做去重和初步排序。项目自带的求职门户工具偏向丹麦市场，例如 Jobindex、Jobnet、Akademikernes Jobbank 等；LinkedIn public job listings 相对更通用。&lt;/p&gt;
&lt;p&gt;如果你不在丹麦，也不是完全不能用。更现实的做法是参考它的结构，替换成本地常用招聘网站，或者直接把岗位描述粘贴给 &lt;code&gt;/apply&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;3-rank岗位太多时先排序&#34;&gt;3. &lt;code&gt;/rank&lt;/code&gt;：岗位太多时先排序
&lt;/h3&gt;&lt;p&gt;当搜索结果很多时，可以先运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/rank
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个命令会批量读取新抓到的岗位，并按项目的匹配框架给它们打分。它关注的不只是关键词，还包括技能、经验、文化、地点和职业方向等维度。&lt;/p&gt;
&lt;p&gt;实际使用里，这一步的价值很大。很多人投简历失败，不是简历写得太差，而是把精力花在了明显不匹配的岗位上。先排序，可以少浪费一点力气。&lt;/p&gt;
&lt;h3 id=&#34;4-apply生成定制-cv-和求职信&#34;&gt;4. &lt;code&gt;/apply&lt;/code&gt;：生成定制 CV 和求职信
&lt;/h3&gt;&lt;p&gt;确定某个岗位后，可以运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/apply https://example.com/job/123
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果岗位网页抓不到，也可以直接粘贴完整岗位描述：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/apply &amp;lt;paste the full job description here&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;/apply&lt;/code&gt; 会做一整套流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;解析岗位描述；&lt;/li&gt;
&lt;li&gt;根据你的档案评估匹配度；&lt;/li&gt;
&lt;li&gt;生成定制版 CV 和 Cover Letter；&lt;/li&gt;
&lt;li&gt;让第二个 reviewer agent 审查内容；&lt;/li&gt;
&lt;li&gt;根据审查意见修改；&lt;/li&gt;
&lt;li&gt;编译 LaTeX PDF；&lt;/li&gt;
&lt;li&gt;检查 CV 的 ATS 可读性；&lt;/li&gt;
&lt;li&gt;输出最终材料和检查清单。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这里最有意思的是 PDF 验证。项目不是只生成 Markdown 或纯文本，而是会用 LaTeX 编译简历和求职信，并检查页面是否溢出、标题是否孤立到下一页、字体是否一致、Cover Letter 是否控制在一页。&lt;/p&gt;
&lt;h2 id=&#34;ats-检查为什么重要&#34;&gt;ATS 检查为什么重要
&lt;/h2&gt;&lt;p&gt;很多简历 PDF 看起来很漂亮，但 ATS 解析时可能读不到正确文本。尤其是 LaTeX 模板、多栏布局、图标字体和特殊符号，有时会让邮箱、电话、技能关键词变成乱码或顺序错乱。&lt;/p&gt;
&lt;p&gt;ai-job-search 的 &lt;code&gt;/apply&lt;/code&gt; 会尝试用 &lt;code&gt;pdftotext&lt;/code&gt; 读取 PDF 文本层，检查联系方式、阅读顺序和岗位关键词覆盖情况。项目 README 里也明确说，关键词必须来自真实经历，不支持为了过筛而硬塞不存在的技能。&lt;/p&gt;
&lt;p&gt;这一点很加分。求职 AI 工具最容易滑向“包装过度”，而这个项目至少在流程上保留了真实性约束。&lt;/p&gt;
&lt;h2 id=&#34;其他实用命令&#34;&gt;其他实用命令
&lt;/h2&gt;&lt;p&gt;除了核心流程，项目还提供了几个扩展命令：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/outcome&lt;/code&gt;：记录投递后的结果，例如面试、offer、拒信或无回复；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/expand&lt;/code&gt;：根据 GitHub、作品集、Kaggle、Google Scholar 等公开资料补充能力画像；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/upskill&lt;/code&gt;：分析岗位和个人能力之间的差距，生成学习计划；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/add-template&lt;/code&gt;：注册自己的 LaTeX CV 或求职信模板；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/add-portal&lt;/code&gt;：为本地招聘网站生成新的搜索工具；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/reset&lt;/code&gt;：清理资料，重新开始。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些命令让它不像一次性简历生成器，更像一个能持续维护的求职系统。你投得越多、记录越完整，它越能帮你发现哪些岗位更值得追。&lt;/p&gt;
&lt;h2 id=&#34;安装和依赖&#34;&gt;安装和依赖
&lt;/h2&gt;&lt;p&gt;项目依赖比较明确：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code CLI；&lt;/li&gt;
&lt;li&gt;Python 3.10+；&lt;/li&gt;
&lt;li&gt;Bun，用于岗位搜索 CLI 工具；&lt;/li&gt;
&lt;li&gt;LaTeX 发行版，例如 TeX Live 或 MiKTeX；&lt;/li&gt;
&lt;li&gt;可选的 &lt;code&gt;pdftotext&lt;/code&gt;，用于 ATS 文本层检查。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;快速开始大致是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh repo fork MadsLorentzen/ai-job-search --clone
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-job-search
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后安装各个岗位搜索工具的依赖，再进入 Claude Code 运行 &lt;code&gt;/setup&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这套依赖对普通非技术用户不算轻。它更适合已经会用命令行、愿意配置 Claude Code 和 LaTeX 的人。如果只是想简单改一份简历，用在线工具可能更省事。&lt;/p&gt;
&lt;h2 id=&#34;适合谁&#34;&gt;适合谁
&lt;/h2&gt;&lt;p&gt;ai-job-search 比较适合这几类人：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正在密集求职，需要管理很多岗位；&lt;/li&gt;
&lt;li&gt;想给不同岗位定制简历和求职信；&lt;/li&gt;
&lt;li&gt;已经在用 Claude Code，愿意把求职流程放进仓库管理；&lt;/li&gt;
&lt;li&gt;对 LaTeX 简历和 PDF 质量有要求；&lt;/li&gt;
&lt;li&gt;希望记录投递结果，并反过来优化求职策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不太适合这几类情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只投一两个岗位，不需要复杂流程；&lt;/li&gt;
&lt;li&gt;不想碰命令行、Bun、LaTeX；&lt;/li&gt;
&lt;li&gt;希望一键自动海投；&lt;/li&gt;
&lt;li&gt;不愿意整理真实经历和资料；&lt;/li&gt;
&lt;li&gt;所在地区招聘网站需要大量登录、验证码或反爬处理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;使用时要注意什么&#34;&gt;使用时要注意什么
&lt;/h2&gt;&lt;p&gt;第一，不要让 AI 编造经历。项目本身强调简历和求职信里的声明要来自真实档案，但最终检查责任还是在你自己。&lt;/p&gt;
&lt;p&gt;第二，不要把隐私资料随便放进公开仓库。CV、学历证明、推荐信、过往申请记录都可能包含敏感信息。最好用私有仓库，并认真检查 &lt;code&gt;.gitignore&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;第三，本地招聘网站适配需要成本。项目自带的岗位搜索工具有明显地区特征，换到其他国家和平台时，很可能要自己写或调整搜索技能。&lt;/p&gt;
&lt;p&gt;第四，PDF 好看不等于能过筛。即使项目做了 ATS 检查，正式投递前也建议自己用文本提取工具再看一遍，确认联系方式、技能和经历没有乱码。&lt;/p&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;ai-job-search 的价值不在于“让 AI 替你找工作”，而在于把求职流程拆成可复用的步骤：建档、找岗位、排优先级、定制材料、检查 PDF、记录结果、复盘反馈。&lt;/p&gt;
&lt;p&gt;如果你已经会用 Claude Code，并且正在进行一轮认真求职，它会是一个很有参考价值的开源框架。它需要配置成本，但换来的是更清楚的流程和更少的重复劳动。&lt;/p&gt;
&lt;p&gt;参考来源：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/MadsLorentzen/ai-job-search&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub：MadsLorentzen/ai-job-search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://raw.githubusercontent.com/MadsLorentzen/ai-job-search/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README：AI Job Search&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
