创业公司求职跟投大厂完全是两套打法。大厂有标准化的简历库、笔试系统、面试流程甚至岗位 JD 都写得比较规范创业公司往往岗位描述含糊招聘节奏随机HR 和创始人经常一个人干好几个人的活。如果你还用“海投 等通知 每份简历手工改”的方式去求职很容易陷入被动投了一百份不知道哪些值得重点跟进也不知道自己和岗位之间到底匹配在哪。这次我们要聊的不是某一个开源工具而是一套“AI 求职工作流”。用大模型 API、轻量脚本和本地看板把求职过程中重复、被动、低价值的信息处理动作交给 AI让人只做决策和沟通。核心思路就一句话用 AI 替代被动执行主动列出优先事项。这套工作流有几个核心特点岗位信息批量采集和解析AI 自动把 JD 拆成结构化字段简历定向改写建议生成初稿后由本人确认岗位匹配度评分与优先级排序每天只处理 Top N面试模拟与追问训练覆盖高频问题跟进提醒和邮件生成避免错过关键节点基于普通电脑 云端大模型 API 运行不需要独立 GPU。本文会从环境准备开始带你把目录、配置、脚本和本地看板搭起来然后测试岗位解析、匹配度评分和批量任务最后给出资源占用估算和常见问题排查。适合读者正在找创业公司岗位的求职者准备跨行或简历方向不清晰的人以及想用 AI 工具提高求职命中率但不知道从哪下手的人。如果你只是想要一个“自动投简历”的脚本这篇文章不是你要的——真正意义上的全自动投递很容易违反平台规则对创业公司求职来说精准度比数量重要得多。1. 核心能力速览能力项说明项目定位面向创业公司求职的 AI 辅助工作流不是单一软件核心价值用 AI 解析 JD、评分匹配、生成跟进内容把被动等待变成主动推进硬件要求普通办公电脑即可无需独立 GPU无本地显存压力运行依赖Python 3 主流大模型 API 接口 SQLite 或本地文件存储启动方式命令行脚本 可选 Flask 本地看板可一键初始化是否支持 API支持核心功能都通过大模型 API 调用是否支持批量任务支持可批量解析 JD、批量生成匹配报告是否自动投递不推荐建议人工确认后投递防止违反平台规则主要功能岗位筛选、简历定向改写、面试模拟、跟进管理、求职数据复盘适合场景创业公司岗位投递、跨行求职、多方向并行求职使用边界不能替代真实经历与人工尽调不生成虚假材料从能力结构看这套工作流真正替代的是“信息搬运”环节把 JD 复制下来、逐条对比简历、靠感觉猜匹配度、手工写跟进邮件。AI 把这些动作批量完成求职者只需要审核结果、决定投不投、去和人沟通。2. 适用场景与使用边界2.1 适合谁第一类海投效率低的求职者。每天刷 App 刷到眼花投出去的简历像扔进黑洞。这类人最需要的是“先筛选、再投递”而不是“投得越多越好”。第二类跨行或方向不清晰的求职者。以前做运营现在想转 AI 产品方向以前做设计想试试创业公司增长岗位。跨行求职最怕的是简历不知道怎么写AI 可以帮你分析目标岗位 JD 和现有经历之间的重叠点给出改写方向。第三类同时管理多个岗位方向的人。既在看“内容运营”也在看“增长负责人”甚至还在看“产品经理”。每个方向都需要一套简历、一版面试话术、一组行业认知用手工维护很容易乱适合用数据表和工作流管理。第四类想进创业公司但不会判断公司质量的人。创业公司信息不透明AI 能帮你整理公开融资信息、创始团队背景、商业模式描述形成一份初步尽调摘要让你在面谈前有一个基本判断框架。2.2 不适合谁只想“全自动投简历、全自动面试”的人。招聘平台通常禁止自动化注册和批量投递轻则封号重则影响个人信誉面试更是真人沟通AI 只能帮你做模拟训练不能替你上场。简历本身没有真实项目、没有可验证成果的人。AI 可以帮你优化表达但无法替你制造经历。创业公司面试往往由创始人直接参与一问细节就穿帮这是最危险的使用方式。2.3 使用边界与合规提醒使用这套工作流时必须把合法性放在第一位。简历和面试中涉及的经历、数据、项目背景必须真实AI 只能做表达优化和重点提炼不采集、不保存非公开的个人隐私数据对目标公司的背景调查只使用公开信息比如官网、融资新闻、公开访谈批量采集岗位信息前先确认目标平台的服务条款很多平台不允许爬虫和自动化操作使用大模型 API 时不要上传包含身份证号、银行卡、家庭住址等敏感信息。创业公司求职本身就带有高风险属性AI 可以帮你提高信息密度但不能帮你跳过识人、尽调和谈薪这些关键步骤。3. 环境准备与前置条件3.1 基础技能准备这套工作流不要求你成为程序员但建议具备三项基础能力能跑 Python 脚本不需要写复杂代码至少要会复制脚本、安装依赖、执行命令有提示词基础能描述“我要解析什么、输出什么格式、有哪些限制”会管理 API Key知道把密钥放在环境变量里而不是直接写在公开仓库。如果你完全不会 Python也不用慌。下面的脚本都是“复制后改配置”就能用的程度关键路径包括 API 地址、模型名、JD 文件目录、输出目录。3.2 工具清单用途推荐工具说明大模型接口任意 OpenAI 兼容的 API 服务按需选择注意数据隐私脚本运行Python 3.9建议独立虚拟环境数据存储SQLite 或 JSON 文件个人求职数据量不大文件存储足够本地看板Flask 简单 HTML 页面可选也可以用表格软件查看结果任务调度cron 或手动执行不建议频繁自动执行避免过度打扰简历管理按岗位方向分目录每个方向单独维护版本3.3 求职信息源整理先把求职信息源整理成清单。对创业公司求职来说比较典型的信息源包括招聘平台主流的招聘 App、垂直行业招聘网站公司官网招聘页很多创业公司只在官网或公众号发布岗位融资与创投信息平台了解公司阶段和融资动态创始人公开分享公众号、即刻、Twitter、播客访谈等招聘社群远程岗位社群、行业垂直社群、校友社群。建议把信息源记录成一个表格包含“信息源类型、链接、更新频率、抓取方式”。注意手动收集、半自动收集都可接受不要为了“全自动化”去写爬虫抓取登录后才可见的数据。3.4 成本预估这套工作流的成本主要由大模型 API 费用构成。按当前主流 API 价格粗算单次 JD 解析可能消耗 2000 到 4000 token单次匹配度评分可能消耗 3000 到 5000 token单份简历改写可能消耗 5000 到 10000 token。实际成本以所选模型的实时报价和你的提示词长度为准通常来说整个求职周期内用于岗位解析和打分的 API 费用可以控制在远低于一次无效投递的时间成本。更稳妥的做法是每天限制调用次数先跑一周看费用再决定要不要扩大范围。4. 部署与启动搭建个人 AI 求职工作台4.1 目录结构规划建议先建一个独立的项目目录把输入、输出、脚本和数据分开管理。job-agent/ ├── config.yaml ├── requirements.txt ├── scripts/ │ ├── save_jd.py │ ├── analyze_jobs.py │ └── followup.py ├── data/ │ ├── raw_jobs/ │ ├── parsed_jobs/ │ └── applications.db ├── outputs/ │ ├── resumes/ │ ├── reports/ │ └── followups/ └── dashboard/ ├── app.py └── templates/目录说明raw_jobs/存放原始 JD 文本建议一个岗位一个 Markdown 文件parsed_jobs/存放 AI 解析后的结构化 JSONapplications.db记录投递状态、跟进日期、反馈结果outputs/resumes/放按岗位方向改好的简历outputs/reports/放每周复盘报告dashboard/是本地可视化看板。4.2 初始化配置文件创建config.yaml把模型参数、岗位关键词、目标城市、排除词、每日任务量写清楚。model: base_url: https://api.llm.example.com/v1 api_key_env: LLM_API_KEY model_name: your-model-name temperature: 0.2 job_search: keywords: - AI 产品经理 - 内容运营 - 增长负责人 target_cities: - 远程 - 北京 - 上海 excluded_keywords: - 外包 - 销售 application: daily_target: 10 followup_days: 3 max_active_threads: 5api_key_env表示 API Key 从环境变量读取不要在配置文件里写明文密钥。base_url和model_name需要按你实际使用的模型服务替换。4.3 保存 JD 文本不推荐直接写爬虫去招聘平台批量抓取很多平台不允许。更稳妥的做法是人工浏览招聘页面看到合适的岗位把 JD 正文复制保存为 Markdown 文件。下面这个脚本可以帮你快速生成规范文件。#!/usr/bin/env python3 保存 JD 文本到 raw_jobs 目录一个文件一个岗位。 import os import re import sys from datetime import date RAW_DIR data/raw_jobs def save_job(title: str, company: str, content: str) - str: os.makedirs(RAW_DIR, exist_okTrue) safe_title re.sub(r[\\/:*?|], _, f{company}_{title}) filename f{date.today().isoformat()}_{safe_title}.md filepath os.path.join(RAW_DIR, filename) with open(filepath, w, encodingutf-8) as f: f.write(f# {title}\n\n) f.write(f公司{company}\n\n) f.write(content.strip() \n) return filepath if __name__ __main__: # 命令行用法 # python scripts/save_jd.py AI 产品经理 某某科技 岗位职责... if len(sys.argv) 4: print(用法: python scripts/save_jd.py 标题 公司 JD内容) sys.exit(1) path save_job(sys.argv[1], sys.argv[2], sys.argv[3]) print(f已保存: {path})如果复制整段 JD 不方便也可以直接手动创建 Markdown 文件重点是让每个岗位文件包含三个部分岗位标题、公司名称、JD 正文。4.4 启动本地看板为了让“优先事项列表”更直观可以启动一个本地 Flask 看板。这里给一个最简版本只读取解析结果并渲染成 HTML 表格。# dashboard/app.py import json import glob from flask import Flask, render_template_string app Flask(__name__) app.route(/) def index(): rows [] for path in sorted(glob.glob(data/parsed_jobs/*.json)): with open(path, encodingutf-8) as f: row json.load(f) rows.append(row) rows.sort(keylambda x: x.get(match_score, 0), reverseTrue) html h2岗位匹配优先队列/h2 table border1 cellpadding6 trth公司/thth岗位/thth匹配度/thth优先级/thth下一步/th/tr {% for r in rows %} tr td{{ r.company }}/td td{{ r.title }}/td td{{ r.match_score }}/td td{{ r.priority }}/td td{{ r.next_action }}/td /tr {% endfor %} /table return render_template_string(html, rowsrows) if __name__ __main__: app.run(host127.0.0.1, port8000)启动看板pip install flask python dashboard/app.py浏览器打开http://127.0.0.1:8000就能看到岗位列表。这个看板只在本机访问不要绑定0.0.0.0暴露到公网。4.5 输出“优先事项列表”当解析和评分完成后AI 会输出一份带优先级的行动列表这是整个工作流里最核心的产物。示例输出结构如下{ company: 某 AI 创业公司, title: 内容运营负责人, match_score: 87, priority: P0, next_action: 本周四前发送定制简历 作品集, deadline: 2025-xx-xx, reason: 内容生产经验高度匹配公司处于 B 轮远程岗位领域熟悉度高 }求职者只需要优先处理 P0 和 P1 的岗位P2 之后暂缓投递。这样就做到了“主动列出优先事项”而不是被动地在各个平台之间反复切换。5. 功能测试与效果验证5.1 岗位信息解析测试测试目的验证 AI 能否把一段非结构化的 JD 转成结构化字段。测试输入一段真实岗位 JD 文本包含岗位职责、任职要求、加分项、公司介绍。操作步骤把 JD 保存到data/raw_jobs/运行解析脚本调用大模型接口检查输出 JSON 是否包含title、company、responsibilities、requirements、bonus、salary_range、location等字段对 10 条不同 JD 分别测试。判断标准字段完整率达到 80% 以上没有把“任职要求”误放到“岗位职责”里。如果字段经常缺失说明提示词需要补充格式说明和示例。5.2 匹配度评分测试测试目的验证 AI 评分是否与你的主观判断一致。操作步骤准备一份当前版本的简历摘要对同一岗位运行 3 次评分观察匹配度分数波动范围把 10 个岗位的 AI 评分和人工评分做对比。判断标准AI 打分和人工判断的排序大体一致。如果同一岗位两次评分差 20 分以上说明提示词里缺少客观评分标准需要把评分维度拆细比如经验匹配、行业匹配、技能匹配、岗位级别匹配、文化匹配。5.3 简历定向改写测试测试目的验证 AI 能否基于目标岗位 JD 给出可执行的简历修改建议。操作步骤提供原始简历文本提供目标岗位 JD让 AI 输出“保留哪些经历、强化哪些描述、补充哪些关键词、删掉哪些无关内容”人工判断建议是否合理。判断标准建议必须基于简历中已有的真实经历不能凭空新增经历或数据。如果 AI 出现“建议补充你不太可能有的经验”要果断丢弃该条建议。5.4 面试模拟测试测试目的验证 AI 扮演面试官进行追问训练的效果。操作步骤设定角色例如“某 AI 创业公司创始人正在招第一个内容运营负责人”让 AI 连续提问 10 个问题从自我介绍到深挖项目细节你回答后让 AI 指出逻辑漏洞和表达问题针对高频问题整理出个人的回答框架。判断标准AI 的提问是否贴近创业公司面试风格。创业公司面试通常很直接做过什么、怎么做的、结果如何、如果再来一次怎么优化。AI 在这类追问上是够用的。5.5 跟进提醒生成测试测试目的验证 AI 能否生成结构化的跟进邮件。操作步骤输入岗位名称、公司名称、上次沟通时间和内容让 AI 生成一封礼貌、简洁、有明确请求的跟进邮件人工修改后发送。判断标准邮件不像模板套话有具体细节引用并且不会让对方觉得你在催促或施压。5.6 数据复盘测试每周运行一次复盘脚本统计投递数量、回复数量、进入面试数量、offer 数量。AI 可以帮忙输出一份复盘摘要但数据录入工作仍要自己完成。综合来看功能测试的核心逻辑是AI 输出必须经过人工复核验证通过之后再进入下一步使用流程。6. 接口 API 与批量任务设计6.1 大模型 API 调用示例下面的 Python 示例采用 OpenAI 兼容接口规范适用于大部分主流模型服务。实际使用时把base_url、model_name替换为你的服务配置即可。import os import requests def call_llm(system_prompt: str, user_prompt: str, temperature: float 0.2) - str: api_key os.environ.get(LLM_API_KEY) if not api_key: raise RuntimeError(请设置 LLM_API_KEY 环境变量) url os.environ.get(LLM_BASE_URL, https://api.llm.example.com/v1) model os.environ.get(LLM_MODEL_NAME, your-model-name) payload { model: model, messages: [ {role: system, content: system_prompt}, {role: user, content: user_prompt}, ], temperature: temperature, } headers { Authorization: fBearer {api_key}, Content-Type: application/json, } resp requests.post(f{url}/chat/completions, jsonpayload, headersheaders, timeout120) resp.raise_for_status() return resp.json()[choices][0][message][content]6.2 批量解析岗位队列批量解析时要控制并发数避免接口限流。下面是一个带节流和重试的批量任务模板。import json import glob from concurrent.futures import ThreadPoolExecutor, as_completed JD_PROMPT 你是一个岗位 JD 解析器。请把下面的 JD 解析为 JSON包含 title, company, responsibilities, requirements, bonus, salary_range, location 只输出 JSON不要输出多余解释。 def parse_one(filepath: str) - dict: with open(filepath, encodingutf-8) as f: text f.read() result call_llm(JD_PROMPT, text) data json.loads(result) data[source_file] filepath return data def batch_parse(input_dir: str, output_dir: str, max_workers: int 3) - None: import os os.makedirs(output_dir, exist_okTrue) files glob.glob(f{input_dir}/*.md) for filepath in files: out os.path.join(output_dir, os.path.basename(filepath).replace(.md, .json)) if os.path.exists(out): continue for attempt in range(3): try: data parse_one(filepath) with open(out, w, encodingutf-8) as f: json.dump(data, f, ensure_asciiFalse, indent2) print(f解析成功: {filepath}) break except Exception as e: print(f第 {attempt 1} 次尝试失败: {filepath}, 错误: {e}) time.sleep(2)使用方式batch_parse(data/raw_jobs, data/parsed_jobs, max_workers3)max_workers不要设置太大推荐 3 到 5 个并发。如果接口出现限流错误就把并发数降为 1并增加重试间隔。6.3 结果落库与统计解析结果存在 JSON 文件已经能满足个人使用。如果需要做更复杂的统计可以把投递状态记录到 SQLite字段说明company公司名称title岗位名称match_scoreAI 匹配度priorityP0/P1/P2status待投递 / 已投递 / 已回复 / 已面试 / 已拒绝followup_date下次跟进日期feedback面试反馈摘要这相当于你的求职 CRM记录每一步动作避免遗忘。7. 资源占用与性能观察时间、Token 与精力预算7.1 Token 成本观察这里的“资源占用”不再是显存或 CPU而是 API Token 和你的时间。建议记录每次调用的 token 数建立简单的成本观察表环节单次调用量级每日频次成本等级JD 解析2000 - 4000 token10 - 30 次低匹配度评分3000 - 5000 token10 - 20 次低简历改写5000 - 10000 token1 - 3 次中面试模拟3000 - 8000 token1 - 2 次中跟进邮件生成1000 - 2000 token3 - 5 次低数据为常见区间估算实际以所选模型和提示词长度为准。核心观察指标是“单份有效投递的 AI 成本”如果你花了大量 token 解析岗位但最后只投递了很少一部分说明筛选策略有问题。7.2 时间预算创业公司求职不建议无限投入时间。更合理的时间预算是每天 2 到 3 小时30 分钟浏览新岗位保存 JD60 分钟运行 AI 解析和评分审核结果30 分钟修改简历和作品集30 分钟发送投递或跟进邮件30 分钟复盘今天的数据调整明天的优先级。7.3 如何降低调用成本控制 JD 文本长度只保留职责、要求、加分项解析和评分一次性完成不要拆成多次调用使用缓存已解析过的 JD 不重复调用简历摘要只保留与目标岗位相关的部分面试模拟控制在 5 到 10 轮不要无限追问。7.4 核心观察指标每周观察 4 个指标投递量有效投递数不是点击量回复率HR 或创始人的主动回复比例面邀率进入面试的比例转化率从面试到下一轮或 offer 的比例。正常创业公司求职的回复周期往往不稳定AI 帮不了你缩短流程但能帮你做到“每个岗位都有记录、每个节点都有跟进”。8. 常见问题与排查方法问题现象可能原因排查方式解决方案AI 解析 JD 字段频繁缺失提示词格式要求不明确抽查输出结果在提示词中补充一个输出示例匹配度分数虚高评分维度太少对比 AI 评分和人工判断增加“经验匹配、行业匹配、级别匹配”分项API 调用报 429并发数过高或额度不足查看接口返回错误码降低并发数、增加重试间隔简历改写出现不实内容提示词未限制真实性检查生成文本明确写入“只能基于原文改写不得新增经历”岗位文件太多导致脚本卡顿文件命名混乱或目录过大检查 raw_jobs 目录按日期和公司重新整理目录本地看板页面打不开端口被占用检查 8000 端口换端口启动python app.py --port 8001批量任务中断网络波动或接口超时查看失败日志加失败重试重跑时跳过已完成文件感觉 AI 建议太泛系统提示词缺少角色设定补充角色和背景给 AI 设定“前创业公司 HR 行业资深从业者”角色投递后没有回复岗位可能已关闭或对方优先处理别的人选检查 JD 发布时间3 到 5 天后用跟进邮件提醒一次仍无回复则标记为关闭创业公司招聘常常“岗位还挂着但预算已经暂停”不要把没有回复全部归因于简历质量问题。AI 能帮你筛选出“值得跟进的岗位”但不能保证每个岗位都有反馈。9. 最佳实践把 AI 当分析助手不当决策替身9.1 先跑通最小闭环不要一开始就追求“全功能自动化”。建议第一个版本只做三件事保存 JD、AI 解析、AI 评分。跑一个星期看输出质量是否稳定再逐步加入简历改写、面试模拟和跟进提醒。9.2 建立人工复核机制AI 每个环节的输出都要有人工复核节点。特别是简历和面试话术必须保证真实、可追溯。可以给自己定一个原则AI 生成的所有对外内容都要经过“引用事实检查”和“语言风格调整”两步。9.3 创业公司尽调清单面试前用 AI 结合公开信息生成一份目标公司尽调摘要重点关注评估维度可观察信号AI 能帮什么融资阶段种子轮、A 轮、B 轮等公开信息整理融资新闻和公开报道创始人背景创始人过往创业经历、行业口碑搜索公开访谈和招聘 JD 中的风格信号商业模式主营业务、目标客户、收费模式总结官网和公开介绍团队规模招聘量、岗位分布从招聘信息推测扩张方向岗位真实性岗位是否长期挂出、职责是否清晰对比同类岗位要求识别异常尽调信息只使用公开合法渠道不要尝试获取非公开数据。9.4 数据分级与隐私保护在本地工作流中数据可以按敏感程度分为三级L1 公开数据岗位 JD、公司官网信息可以随意保存和调用L2 个人求职信息简历、作品集、投递记录建议本地存储并加密L3 敏感隐私身份证号、银行卡、各类账号密码严禁上传到任何 API。不要在大模型对话中粘贴你的身份证号、薪酬流水等敏感信息。创业公司求职需要展示能力但不需要暴露全部个人隐私。9.5 定期复盘与调整每 3 到 5 天做一次数据复盘更新岗位优先级。求职是一个动态过程新的岗位会出现、旧的岗位会关闭、面试反馈会改变对公司的判断。AI 工作流的价值在于让这些变化可见而不是替你做一个永恒不变的规划。10. 总结与下一步这套工作流最值得尝试的点是把“求职”从一个模糊、焦虑、靠感觉推进的过程变成一个数据明确、优先级清晰、可迭代的工作流。AI 负责批量解析、评分、起草和提醒你只负责最重要的判断和沟通。建议第一步先做最小闭环搭好目录结构配置 API保存 10 条真实 JD运行解析和评分脚本观察输出质量。质量稳定后再加入简历改写和面试模拟。最容易踩的坑有两个一是过度自动化总想着连投递都交给脚本结果踩了平台规则还影响了信誉二是过度依赖 AI 评分忽略了创业公司求职中人的判断、主动沟通和尽调。AI 是效率放大器不是信用背书。后续可以继续扩展的方向包括接入更多岗位信息来源并做去重汇总把简历版本管理和岗位方向绑定加一个按优先级推送提醒的定时任务甚至把整个工作流变成一个小型 CLI 工具分享给一起求职的朋友。只要守住真实、授权和合规这三条底线这套方法可以持续用下去。