设置向导 是做什么的?
你正在为某个人构建他的求职系统。此包不附带任何个人信息,因此以下所有内容均来自他们的回答。请以简短分组形式提问,每保存一个分组后继续,且绝不要虚构关于他们的事实。
成本控制(一次性告知用户,用两行话)
此向导主要由提问和文件写入构成。它需要使用最便宜的合适模型。
- 如果当前会话使用的是比 Haiku 或同级小模型更大的模型,请说:“设置主要是提问和文件写入。切换到小模型(例如
/model haiku)将节省 token。您可以在此继续,或者切换模型后重新运行 /setup,它会从上次中断的地方恢复。”除非用户切换,否则继续。 - 在设置后期,你会询问用户每个阶段希望使用的模型。建议:设置和搜索综合使用小模型,写作使用中模型,大型模型则无需使用。
断点续传逻辑
- 在用户指定的工作空间文件夹(或当前文件夹)中查找
jobsearchos.config.md。如果该文件存在,并且profile/文件夹中的文件仍包含文本[Your,则表示设置已完成一半:列出哪些分组已完成,并从第一个未完成的分组继续。 - 如果文件不存在,则从分组 0 开始。
如何提问
- 每次问 3 到 5 个问题,编号,使用通俗语言。如果你的工具有多项选择问题控件,请将其用于封闭式问题。
- 对于开放式问题,提供示例答案。人们面对空白框时会犹豫不前。
- “跳过”和“稍后”都是有效答案。在这些字段中写入
[Your ...: to do],然后继续。 - 绝不要询问你不需要的信息。绝不要询问密码、ID、银行信息或任何敏感信息。薪水和签证问题为可选,且仅保留在
profile/中;它们绝不会出现在信件中。 - 每个分组完成后,写入该分组的文件,然后在一行内说明你保存了什么。
分组 0:工具、文件夹、模块
- 你日常使用哪个 AI 工具?(Claude、ChatGPT、Gemini、其他。)设置
ai_tool。Claude 用户默认获得定时任务自动化功能。ChatGPT 用户获得 ChatGPT 自动化包(Project 加 Tasks)以及本地脚本。 - 你的求职文件夹应该放在哪里?询问一个绝对路径。解释:“这是你的文件结构。所有内容都保存在这里:你的个人资料、每个职位的独立文件、你的信件、追踪表。如果你使用 Obsidian,则将其指向你知识库内的一个文件夹,它可以作为笔记使用。如果你不使用 Obsidian,它只是一个普通文件夹。”将
${CLAUDE_PLUGIN_ROOT}/workspace-template/的全部内容复制到该文件夹中(这包括FILING-STRUCTURE.md和tools/),然后将该绝对路径写入jobsearchos.config.md中的workspace_path。除非夜间扫描功能开启,否则删除logs/。如果某个支柱有一个主张且至少有一个带有方法和局限性的可用数字,则将其status设置为ready,否则设置为draft。如果此工具无法写入该文件夹,则将文件生成到工作目录中,并告知用户将它们移动到何处。 - 你希望启用哪些部分?核心功能始终开启:
/setup、/fast-letter、/log-application。对每个可选模块询问是/否,并将其写入配置中的modules::- 深度研究与草稿信件(针对目标公司的慢速、彻底路径)
- 挑战准备(演练家庭作业、案例或现场挑战)
- 产品受众分析与竞争简报(面试准备模块)
- 暖介绍(查找特定人员并起草便条,绝不发送)
- 针对每个申请的定制简历
- 夜间职位扫描(在你睡觉时发现并起草)
- 周五文件名检查(保持文件前缀与状态同步)
- 模型。显示此表格,并让用户接受默认值或更改它们。写入配置中的
models:。
| 阶段 | 推荐 | 原因 |
|---|---|---|
| 设置和文件生成 | 小模型 (Haiku) | 问题和模板 |
| 搜索综合、职位描述解析 | 小模型 (Haiku) | 总结、成本低 |
| 编写决策卡和信件 | 中模型 (Sonnet) | 语音和判断 |
| 深度研究、挑战准备 | 中模型 (Sonnet),大型可选 | 需要更长推理 |
说:“任何时候都可以打开你的文件夹中的 tools/token-budget-calculator.html 来查看一周的花费。”
分组 1:职业身份
写入 profile/identity.md。
- 姓名、你想在信件上显示的邮箱和电话(可选),以及你的所在地(城市、国家)。
- 当前或最近职位头衔及当前雇主。将
current_employer和experience_line(信件上的一行经验描述,例如“9 年 B2B SaaS 经验,目前在 Acme”)写入profile/identity.md;技能会使用这些信息,且绝不虚构当前工作,以及你正在申请的职位头衔(例如:“高级产品经理,同时也是集团产品经理”)。 - 你目标的高级程度,以及在该领域的工作年限。
- 你的定位语:用一句话描述你做什么以及为谁做。如果他们没有,则根据他们的回答起草三个选项,让他们选择或编辑。示例格式:“[职位],[N]年,[领域]。我为[谁]提升[什么]。”
- 要包含的链接:作品集或网站、LinkedIn、简历文件(路径或 URL)、其他内容。
- 语言及工作语言(可选)。
6b. 打印在信件上的头衔行(
title_on_letter)。如果level_policy为never-name,则提供不带级别的角色系列(例如“产品经理”而非“高级产品经理”)。这是ROLE_TITLE填充的内容。 - 工作授权和后勤,均为可选:你是否需要签证担保或特定地点才能保持资格、通知期、最早入职日期。解释这些信息用于定位标志和“发送前检查”,且绝不出现在信件中。
分组 2:支柱(你的项目证明)
一个支柱是你能够在初筛电话中捍卫的一项工作成果。信件基于支柱构建,因此本分组最为重要。目标是两到三个。开始时一个也可以。
对于每个支柱,先提问,然后使用 ${CLAUDE_PLUGIN_ROOT}/workspace-template/profile/pillars/_pillar-template.md(或工作空间中已存在的副本)写入 profile/pillars/pillar-N-<slug>.md:
- 命名:项目或角色、雇主、时间周期。
- 你拥有什么,用一句话描述?(“我从头到尾负责 X”是一个主张。“我对 X 有贡献”则不是。)
- 这个支柱应该在什么时候使用?(哪种类型的公司或问题能成为最强证明。)
- 数据:每个成果及其衡量方法和局限性。追问方法:“你怎么知道的?”以及“谁会不同意?”任何没有方法的数字都放入
Needs a source列表,而不是可用列表。 - 最艰难的决定:一个付出了代价的决策。你拒绝、放弃或反对了什么,以及为什么?
- 系统洞察:别人能从中获取的可复用想法是什么?
- 这项工作在你离开后是否仍然有用?其他人继续使用了什么?
- 诚实的局限:什么没有交付,你会做哪些不同的事情。
8b. 哪个数字或行为改变能够结束“我为此做了什么”段落,以及它是如何衡量的?(用于填写
Which numbers can close a resolution。如果没有前后数字对比,则命名一个别人可以观察到的行为改变。) - 最佳表达:你已经写过的关于它的、听起来像你的句子。
- 案例研究或页面的链接(可选)。
然后询问“还有其他支柱吗?”直到他们说没有。
最后,根据他们的回答写入 profile/routing.md:哪个支柱用于哪种公司规模或类型,哪个是次要证明。如果他们只有一个支柱,则路由是平凡的:直接说明。
分组 3:目标
从 ${CLAUDE_PLUGIN_ROOT}/workspace-template/profile/targets.md 写入 profile/targets.md。
- 你感兴趣的行业或问题类型,以及你不想接触的行业。
- 公司规模范围(员工人数)和阶段偏好。
- 地理位置:你可以在哪里工作,以及你不会在哪里工作。远程偏好:完全远程、混合、现场办公,以及任何实体或时区限制。
- 位置规则:一起构建表格。每一行代表一个地点或配置,带有一个标志:
none(没问题)、check-entity(询问他们是否能雇佣你所在地)、blocker(绝对的障碍,始终首先显示,绝不悄悄放弃)。 - 你接受的头衔,以及你排除的头衔(例如“代理公司”、“纯执行角色”)。
- 匹配度测试:“如果这些条件中至少三个为真,则公司合格”。提供从你的领域起草四个测试的选项。给出相关领域的示例,然后请他们编辑。(例如对于产品设计师:用户在高压力下做出关键决策;有多个超出原有模式的界面;买家和日常用户不同;受监管或数据密集型领域。)
- 绝对否决项和硬性拒绝项。
- 每周合格的申请数量目标(仅存储在
jobsearchos.config.md中的weekly_target中,绝不存储在 targets.md 中)以及哪些天进行来源搜索、跟进和审查。默认为每周 8 个,周一搜索来源,周四进行暖介绍,周五审查。说明:数量是瓶颈,质量由否决规则保护。 - 职位来源。预加载这些并让用户移除:LinkedIn(保存的搜索和职位提醒,以及如果他们有的 LinkedIn Premium)、startup.jobs、公司招聘页面、Welcome to the Jungle、Wellfound、Otta、Indeed、Hacker News “Who is hiring”,以及他们已经使用的聚合链接。然后问:“你是否想添加其他来源?请提供名称、新闻通讯、Slack 或 Discord 社区,或招聘人员。”为每个来源写入其 URL 模式(如果知道的话;如果不知道则写入
URL unknown, check manually)以及它服务于哪个部分(地理位置部分、远程部分)。任何用户未回答的模板行都被删除,绝不留作括号占位符,除非他们说“稍后”,在这种情况下保留为[Your ...: to do]。 - 观察列表:你希望在每次扫描时直接检查的公司。可选,五到二十个名称。
分组 4:语音
从 ${CLAUDE_PLUGIN_ROOT}/workspace-template/profile/voice.md 写入 profile/voice.md。
- 你会如何用三个词描述你的语调?提供选择:谨慎、直接、温暖、干练、俏皮、正式、直率。
- 默认语气温度:谨慎(陈述观点,然后给出证据)、大胆(直接陈述,不模糊)、或谨慎加一句大胆陈述(推荐)。如果他们询问,解释
voice-method.md中的表格。 - 级别政策:在信件中从不提及自己的高级程度(证据会体现),或在广告要求时提及。默认从不提及。
- 你绝对不想看到的词语。说明这些会添加到
${CLAUDE_PLUGIN_ROOT}/skills/_shared/universal-style.md中的通用列表中。询问他们的惯用禁忌:“充满激情”、“协同效应”等。 - 真正属于你的短语。请他们粘贴一份自己的写作样本(一篇帖子、一封邮件、一个案例研究介绍;200 到 500 字是理想值,即使 60 字也有帮助)。如果他们没有,则跳过提取并将短语库保留为
[Your phrase bank: to do]。从样本中提取:句子长度习惯、一个简短的短语库、诚实表达方式(“值得说的是:”、“我明知如此仍然交付了它”)、结尾的温暖风格。展示提取结果并让他们纠正。如果没有用户确认(测试或计划任务运行),则将提取结果标记为(unconfirmed draft)保存。 - 他们希望如何谈论空缺或限制:始终将局限性附加到数字上,或者仅在被问及时。
- 他们是否希望包含 AI 声明页面(结构化信件的第 2 页:一份关于 AI 使用方式和人工判断所在位置的简短、诚实的说明)?是、否或稍后编写。如果选是,与他们一起起草两句话并存储在
profile/voice.md中的why_this_section,并确认或编辑那里的默认Page 2部分(一个标题、一行引导语、一条声明行,以及最多四个标记为自动、混合或人工的流程卡片)。相同的文本会出现在每封信件的第 2 页。
分组 5:简历、作品集和原始材料
从模板写入 profile/bio-and-portfolio.md。
- 粘贴你的专业简历(任何长度)。如果没有,则从分组 1 和 2 起草一份三句话的简历,并请他们编辑。
- 案例研究和工作样本:每个包括标题、一句话描述、链接或文件路径以及状态(准备就绪、草稿、暂不使用)。
- AI 可能使用的其他材料:演讲、文章、媒体报道、奖项、推荐信。仅列出链接。
- 原始材料文件夹:询问包含笔记、旧求职信、简历的文件夹路径。提议仅索引文件名(除非他们同意,否则绝不读取私人材料)到
profile/bio-and-portfolio.md中的Raw material下。 - “绝不声明”列表:他们不希望被暗示的内容(他们几乎没用过的工具、不能提及的雇主名称)。
- 简历:基本简历文件,或粘贴内容。如果他们跳过简历,则将
modules.tailored_resume设置为 false,并从每张决策卡中省略定制简历问题。简历模板一次性填写静态部分(经验、教育、技能);只有简历标题会根据申请变化。
分组 6:信件格式和品牌
写入 profile/letter-spec.md、profile/brand.md,然后生成 templates/。
- 信件格式。提供两种选择:
- 结构化(默认工艺):影响力卡片、我做什么行、开头、过渡、带来源的挑战部分(含他们与我的对比)、过去时态的解决方案、结尾。最适合可以展示真实产品思考的职位。使用
letter-template.html。 - 经典:开头、两段正文、结尾。使用
letter-template-classic.html。 展示所选格式的字段表和字数预算,并询问是否保留或更改它们。
- 结构化(默认工艺):影响力卡片、我做什么行、开头、过渡、带来源的挑战部分(含他们与我的对比)、过去时态的解决方案、结尾。最适合可以展示真实产品思考的职位。使用
- 设计设置。这是用户选择自己颜色和字体的地方。提供三种途径:
- 预设。Studio blue、Forest、Terracotta、Graphite、Plum 或 Sea(颜色对搭配匹配字体;列表位于
tools/brand-picker.html)。 - 自定义值。要求提供:强调色、纸张和墨水颜色(十六进制,或你转换为十六进制的颜色名称)、显示字体(名称和标题)和正文字体(任何 Google 字体名称),以及纸张大小(A4 或 US Letter)。仅当他们有 logo 时要求提供 logo 文件或 URL。
- 可视化编辑。如果无法通过此工具渲染 HTML,则生成一个包含占位颜色和“编辑品牌”说明的
letter-template.html,以及一个带有色板的内联 CSS 的独立brand.md,用于复制粘贴到可视化编辑器。 解释:这些设置影响每封输出的信件的页眉和页脚,以及名片卡。
- 预设。Studio blue、Forest、Terracotta、Graphite、Plum 或 Sea(颜色对搭配匹配字体;列表位于
- 信件页眉和页脚。询问是否包含:姓名、标题、邮箱、电话、LinkedIn URL。默认包含。
- 签名块。他们是否想要静态签名(姓名、标题)或每封不同的签名?默认静态。
- 生成模板。从
${CLAUDE_PLUGIN_ROOT}/workspace-template/templates/_letter-template.html和_letter-template-classic.html复制,用用户的值填充占位符。如果复制失败,则提示它应该存在,并提供填充后的名称。
分组 7:自动化设置
读取 ${CLAUDE_PLUGIN_ROOT}/workspace-template/tools/ 的内容。显示每个脚本并说明它所做的事情,以及如何安排运行。
overnight-sweep.sh(Unix)或overnight-sweep.bat(Windows):查找新职位,综合,输出到sweeps/。friday-filename-check.sh:验证log/中的文件前缀与tracker.csv状态匹配,并报告异常。- (如果适用)CLAUDE.md 附加内容:实用 Claude Code 的
pre和post钩子及其配置。
询问:“你想安排哪个?如果你在支持的平台上(macOS 或 Linux),我可以写入你的 crontab 或 task scheduler。”如果用户说“是”,则添加 cron 行。如果不是,则告诉用户如何使用你写入 tools/user-schedule.md 的内容手动设置。
切勿写入 cron 配置而不确认;确保用户知道调度器会代表他们操作。
分组 8:最终检查
- 读取
jobsearchos.config.md、profile/identity.md、profile/pillars/pillar-*.md(可用数量)、profile/targets.md、profile/voice.md、profile/bio-and-portfolio.md、profile/letter-spec.md、profile/brand.md。 - 将每个文件与模板并排显示;提示用户检查任何看起来错误的内容。
- 列出写作样本是否存在(如果缺失则标记为
[Your phrase bank: to do])。 - 列出缺失的模板(
templates/letter-template.html、templates/letter-template-classic.html),指明哪一个在<folder>/templates/中。 - 总结此设置中启用的模块。
- 询问:“你想现在进行演练,还是直接开始?”即使他们说“开始”,也建议一个熟悉的端到端测试。