2026-09-04 · 原文发布日
自动给职位打分并起草定制求职信
付费模板,针对海投求职的重复劳动:每天早晨读取职位板的RSS,按关键词和资历规则过滤后,把存活的职位连同你的主简历(Google Doc)发给OpenAI,产出匹配分、三个契合优势和一个坦诚的差距说明,过线的职位生成定制摘要与求职信草稿(仅存为Gmail草稿不自动发送),所有职位都在Google Sheets里留一行状态记录。
原文要点
这是付费模板:购买走作者自运营的Stripe结账,付款后邮件发下载链接,zip内含工作流、搭建指南和README,本站示例并非原工作流文件。流程为:每天早晨定时读取职位板RSS;Code节点按“已见过记录、排除关键词、资历词、每日上限”过滤(超限的留到明天);存活的职位连同Google Doc主简历发给OpenAI,返回匹配分、三个契合优势、一条坦诚差距说明;过线职位把定制摘要存到Google Drive并生成Gmail求职信草稿(只存草稿,绝不自动发送);所有职位(含被过滤与AI失败的)都在Google Sheets留一行状态记录。追踪表八列标题须严格为date company title link fit_score gap doc_link status。作者在普通RSS职位板上测试过,JSON API职位板需把RSS节点换成HTTP Request。
这次做成什么
不购买也能先理解并自搭同思路流程:用一页自写练习简历和两条虚构职位,跑通“RSS过滤→OpenAI打分→分支出草稿→全量留痕”的最小闭环;若购买原模板,本页字段映射可直接用于核对。
准备什么
- 一个Google账号,需同时覆盖Sheets、Docs、Drive、Gmail四个服务的OAuth2凭据
- 一个OpenAI API密钥,调用模型会产生费用
- 一个发布RSS订阅源的职位板(JSON API需自行换HTTP Request节点)
- 一份放在Google Docs里的主简历,以及一个建好八列标题的Google Sheet
- n8n实例;若要原工作流文件需单独购买该付费模板
具体怎么做
建追踪表并写入Search Settings
新建Google Sheet,第一行严格按此顺序写八列:date company title link fit_score gap doc_link status,两个Sheets节点都指向它。工作流里放一个Search Settings(Set)节点,写入board_rss_url、master_cv_doc_url、draft_recipient、must_have_keywords、exclude_keywords、seniority_words、fit_threshold(如7)、daily_cap(如5),所有调整只在这一个节点改。
定时拉RSS并写过滤逻辑
Schedule Trigger每天早触发,先读追踪表拿到已处理过的link列表,再拉一次主简历(每次运行只取一次)。RSS节点读职位后进入Code节点:丢弃link已存在的;标题或描述命中exclude_keywords(如“intern”“無給”)或seniority_words(如“Senior”“リード”,对初中级求职者反向排除)的丢弃;超过daily_cap的保留到明天,不丢失。
OpenAI打分与分支
每个存活职位连同简历全文发给OpenAI,用材料中的提示词要求返回JSON:fit_score(0-10)、strengths(3条)、gap(1条)、tailored_summary、cover_letter。用IF节点按fit_score >= fit_threshold分支:过线的把summary存Google Drive、用Gmail节点创建草稿(收件人为draft_recipient,注意选Draft而非Send);未过线的跳过草稿但仍写记录。
全量写入追踪表
无论过线、被过滤还是OpenAI调用失败,都Append一行:date=今天、company/title/link来自RSS、fit_score与gap来自AI(失败则填ERROR)、doc_link=Drive文件链接(无则空)、status取值如DRAFT_CREATED / BELOW_THRESHOLD / FILTERED / ERROR。明天运行时Code节点据此识别已见过职位。
可直接复制的材料
职位匹配打分与求职信提示词
本站独立编写的提示词,按原文“匹配分、三个优势、一条坦诚差距、摘要与求职信、只取自简历”的描述补写;原模板为付费文件,提示词全文未公开。
你是求职策略顾问。下面是候选人的主简历和一条招聘信息。\n\n【简历】\n{{cv_text}}\n\n【招聘信息】\n公司:{{company}}\n职位:{{title}}\n描述:{{description}}\n\n严格只依据简历中真实存在的内容,返回一个JSON对象,不要输出其他文字:\n{"fit_score": 0到10的整数, "strengths": [恰好3条与职位要求对应的候选人优势], "gap": "1条坦诚的差距说明,指出简历缺哪项职位要求", "tailored_summary": "80字以内说明该职位为何匹配", "cover_letter": "200字左右的求职信草稿,只引用简历里的事实,不编造经历"}\n\n评分标准:核心技能全满足且资历匹配给8-10分;缺一两项核心技能给5-7分;多数要求不满足给0-4分。Search Settings配置示例
本站设计的练习配置;关键词按你自己的求职方向替换,收件人先用自己的测试邮箱。
board_rss_url: https://example-jobboard.jp/feed.xml\nmaster_cv_doc_url: https://docs.google.com/document/d/你的简历文档ID/edit\ndraft_recipient: me+jobdrafts@example.com\nmust_have_keywords: ["バックエンド", "Python"]\nexclude_keywords: ["intern", "無給", "契約社員"]\nseniority_words: ["Senior", "シニア", "リード", "マネージャー"]\nfit_threshold: 7\ndaily_cap: 5追踪表一行测试数据
本站虚构的两行示例:一行过线已建草稿,一行因seniority词被过滤(score与gap留空、status为FILTERED)。
date,company,title,link,fit_score,gap,doc_link,status\n2026-09-04,架空テック株式会社,バックエンドエンジニア,https://example-jobboard.jp/jobs/1024,8,"AWS実務経験が1年弱で要件の3年に未達",https://drive.google.com/file/d/架空ファイルID/view,DRAFT_CREATED\n2026-09-04,サンプルメディア合同会社,シニアSRE,https://example-jobboard.jp/jobs/1025,,,,FILTERED输入与输出示例
本站虚构演示,求职信正文做了截断示意(标注“略”),输入与输出的分数、差距理由互相对应;非原作者运行结果。
输入
主简历摘要:3年后端经验,Python/Django,GCP为主,AWS约1年。当日RSS两条:①架空テック「バックエンドエンジニア」要求Python 3年以上、AWS 3年;②サンプルメディア「シニアSRE」。fit_threshold=7,daily_cap=5。对应输出
职位①AI返回:{"fit_score":8,"strengths":["Python実務3年で要件の3年以上を満たす","DjangoでのAPI開発経験が職務内容と一致","GCPでのインフラ運用経験がありクラウド基礎は十分"],"gap":"AWS実務が約1年で要件の3年に届かない","tailored_summary":"Python3年とDjango経験が中核要件に合致。AWSは経験浅めだがGCP経験で補える。","cover_letter":"貴社のバックエンドエンジニア職に応募いたします。私はPythonとDjangoで3年間API開発に携わり…(略)…AWS経験は1年ですがGCPでの同等業務経験があり、早期にキャッチアップできます。"} → 存Drive、建Gmail草稿,行状态DRAFT_CREATED。职位②因标题含「シニア」被过滤,行状态FILTERED。做完检查这些
- 追踪表第一行八列标题与date company title link fit_score gap doc_link status逐字一致,错一个字母Sheets追加会错位
- 跑两次同一RSS,第二次运行不产生重复行,Code节点正确识别已见link
- 过线职位在Gmail里只出现草稿、收件箱无任何自动发出邮件
- 被过滤职位和AI调用失败的职位也有行,status分别为FILTERED和ERROR
- 把fit_threshold从7调到9后,原8分职位不再生成草稿但仍留下BELOW_THRESHOLD记录
容易卡住的地方
- 原模板需付费购买(作者自运营的Stripe结账),zip内才有工作流文件;本页是本站按公开描述设计的独立练习,界面与参数细节需拿到原模板后核对
- OpenAI调用按量计费,daily_cap不光控制节奏也控制每日费用
- 作者只在普通RSS职位板上测试过,JSON API职位板要把RSS节点换成HTTP Request并自行调整字段解析
- Google一个OAuth凭据要同时授权Sheets/Docs/Drive/Gmail四个范围,漏一个会在对应节点报权限错
- seniority_words对求职者方向敏感:找资深岗位的人应反向用它排除Junior词,别照抄本站示例
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Score job postings and draft tailored CV summaries and cover letters with OpenAI and Google
- 原作者
- Jessy Mariau
- 原始发布日期
- 2026-09-04T02:57:54.510Z
- 来源
- https://n8n.io/workflows/19172