我在一家电商公司做 IT,平时接触最多的不是特别“高大上”的系统,而是很具体、很碎的业务工具:旺店通、金蝶 ERP、Excel 表格、影刀/xbot 自动化,还有各种需求文档、活动材料、接口说明和临时统计。
做久了以后会发现,很多工作本质上不是“写一段很复杂的代码”,而是把一堆散落的信息整理成可以执行的清单。比如业务同事发来一个 Excel,要看哪些订单异常;运营同事丢来一堆活动链接,要判断哪个值得参加;自己想写技术文章,又要整理平台规则、截图、Demo、投稿链接。东西一多,浏览器收藏夹和微信文件传输助手很快就变成信息垃圾堆。
最近我准备系统整理一些合规的开发者活动,比如技术征文、AI 工具体验、教程分享、社区问答奖励等。刚开始我还是老办法:看到一个活动就收藏,看到一个奖励就截图。结果没过几天就乱了:有的活动已经过期,有的只适合算法选手,有的要求原创首发,有的可以发多个平台但必须带指定标签,还有的明确禁止异常流量操作、机器发布和重复投稿。
所以我干脆让 Codex 帮我把这件事拆开做:先把活动字段整理成统一格式,比如平台、链接、截止时间、奖励、原创要求、是否需要 Demo;再设计 Obsidian 目录,把活动库、投稿计划、素材库和复盘记录分开;接着生成对应的 Markdown 文件;最后补一段 Python 评分脚本,用来按参与价值、截止紧迫度、适合度、难度和合规风险给活动排序。目标不是追求短期奖励,而是把开发者活动参与流程变得更清晰:今天我应该先做哪个活动?需要准备哪些截图?有没有平台规则风险?做完以后怎么复盘?
我希望这个工具能帮我做四件事。
第一,把活动信息统一存起来。每个活动至少要有名称、平台、链接、截止日期、奖励类型、参与方式、是否需要原创、是否需要代码 Demo、是否需要视频。
第二,帮我判断优先级。有些竞赛奖金很高,但需要图像分割、模型训练、提交算法结果,不适合我当天完成;有些教程分享奖励没那么夸张,但规则清楚、截图容易补、今天就能发,这种反而更值得先做。
第三,把投稿素材放到固定位置。我平时做 Excel 自动化、旺店通/金蝶数据整理、影刀/xbot 流程自动化,这些都可以变成文章素材。如果不建库,每次投稿都要从头想。
第四,保留证据和复盘。截图、活动规则、投稿链接、发布时间、是否获奖、没获奖原因,都应该留下来。这样下次不是凭感觉重来,而是基于记录改进。
我把 Obsidian vault 放在:
D:\AI\开发者投稿助手目前真实目录结构是这样:
D:\AI\开发者投稿助手
├─ 首页.md
├─ 01_活动库
│ ├─ 开发者征文.md
│ ├─ AI工具活动.md
│ ├─ 社区问答奖励.md
│ ├─ 云厂商推广.md
│ └─ 低优先级长期活动.md
├─ 02_投稿计划
│ ├─ 本周投稿计划.md
│ ├─ 今日执行清单.md
│ ├─ 投稿排期表.md
│ ├─ 投稿前检查清单.md
│ └─ 第一篇投稿_开发者活动筛选助手.md
├─ 03_素材库
│ ├─ 我的个人介绍.md
│ ├─ Codex使用案例.md
│ ├─ Excel自动化案例.md
│ ├─ SRM需求整理案例.md
│ └─ 截图清单.md
├─ 04_复盘记录
│ ├─ 已投稿记录.md
│ ├─ 获奖记录.md
│ ├─ 未获奖原因.md
│ └─ 平台规则变化.md
└─ 99_模板
├─ 活动详情模板.md
├─ 投稿文章模板.md
├─ 投稿检查清单.md
└─ 复盘模板.md这个结构对我来说比较顺手。
01_活动库 只管机会本身:哪些活动还在进行,规则是什么,适不适合我。
02_投稿计划 管执行:今天做什么,本周排什么,哪篇文章准备发。
03_素材库 管素材:个人介绍、Codex 案例、Excel 自动化案例、SRM 或需求整理案例、截图清单。
04_复盘记录 管结果:发了没有、有没有获奖、为什么没中、平台规则有没有变化。
99_模板 管复用:以后新增活动和文章,不再从空白文档开始。
我没有做特别复杂的模型,只用了一个能看懂、能手动调整的公式:
优先级 = 奖励价值评分 × 2 + 截止紧迫度 × 2 + 适合度 × 2 - 难度评分 - 合规风险评分每个分值都按 1 到 5 分来打。
举个例子,腾讯云 WorkBuddy × CodeBuddy 开发者分享季对我来说优先级比较高。它截止时间明确,奖励也明确,图文和视频都可以,主题又和 AI Coding、CodeBuddy、开发效率相关。我这篇“Codex + Obsidian 活动筛选助手”稍微补几张截图,就能改成一篇比较完整的投稿。
DataFountain 上有些 AI 竞赛奖金池很大,但需要算法提交、数据集处理和较长调参周期。它们不是不能做,而是不适合排在“今天先做”的位置。
下面这段代码是一个最小可运行版本。先说明一下:这只是演示版,不负责自动抓取网页,只处理人工确认过的活动信息,避免误抓过期活动或不合规活动。它的作用是把已经核验过的活动做评分,然后输出成 Markdown。这样做更稳,因为活动页面经常是动态加载,规则也可能变,关键字段我更愿意先人工看一遍。
from dataclasses import dataclass
from pathlib import Path
@dataclass
class Activity:
name: str
platform: str
link: str
deadline: str
reward: str
reward_score: int
urgency_score: int
fit_score: int
difficulty_score: int
risk_score: int
can_finish_today: str
topic: str
next_action: str
def priority(self) -> int:
return (
self.reward_score * 2
+ self.urgency_score * 2
+ self.fit_score * 2
- self.difficulty_score
- self.risk_score
)
def render_markdown(activities: list[Activity]) -> str:
activities = sorted(activities, key=lambda item: item.priority(), reverse=True)
lines = [
"# 活动优先级排序",
"",
"| 排名 | 活动 | 平台 | 截止 | 优先级 | 今天能否完成 | 下一步 |",
"|---:|---|---|---|---:|---|---|",
]
for index, item in enumerate(activities, start=1):
lines.append(
f"| {index} | [{item.name}]({item.link}) | {item.platform} | "
f"{item.deadline} | {item.priority()} | "
f"{item.can_finish_today} | {item.next_action} |"
)
lines.append("")
lines.append("## 活动详情")
for item in activities:
lines.extend([
"",
f"### {item.name}",
"",
f"- 平台:{item.platform}",
f"- 链接:{item.link}",
f"- 截止:{item.deadline}",
f"- 奖励:{item.reward}",
f"- 适合选题:{item.topic}",
f"- 下一步:{item.next_action}",
])
return "\n".join(lines)
activities = [
Activity(
name="WorkBuddy × CodeBuddy 开发者分享季",
platform="腾讯云开发者社区",
link="https://cloud.tencent.com/developer/article/2695673",
deadline="2026-07-26 23:59",
reward="代金券、产品积分、腾讯周边、特邀会员",
reward_score=4,
urgency_score=4,
fit_score=5,
difficulty_score=2,
risk_score=2,
can_finish_today="能",
topic="用 Codex 做一个开发者活动筛选助手",
next_action="补齐 3-5 张截图,发布图文稿,提交登记问卷",
),
Activity(
name="EdgeOne Makers Agent 案例 Showcase",
platform="腾讯云开发者社区",
link="https://cloud.tencent.com/developer/article/2690483",
deadline="需二次确认",
reward="专属奖品、社区曝光",
reward_score=3,
urgency_score=2,
fit_score=4,
difficulty_score=3,
risk_score=2,
can_finish_today="可写草稿",
topic="把活动筛选助手升级成 Agent 服务",
next_action="先确认活动截止和奖品,再决定是否投稿",
),
]
output = Path("活动优先级排序.md")
output.write_text(render_markdown(activities), encoding="utf-8")
print(f"已生成:{output.resolve()}")普通人看这段代码也不难理解:
Activity 用来描述一个活动。priority() 用来算优先级。render_markdown() 把活动变成 Markdown。活动优先级排序.md。以后如果我想新增一个活动,只要复制一段 Activity(...),改字段就行。
这次 Codex 不是只帮我写一篇文章,而是直接参与了整个 Obsidian 系统搭建。
第一,它帮我按目录创建了活动库、投稿计划、素材库、复盘记录和模板。
第二,它帮我把活动信息按字段整理,区分“明确截止的活动”和“长期/滚动活动”。长期活动没有丢掉,但单独放到低优先级里,避免干扰今天的执行判断。
第三,它帮我生成了投稿计划:今日 Top 3、本周 Top 5、不建议做的活动及原因。
第四,它帮我生成了第一篇投稿草稿和投稿前检查清单。检查项包括是否原创、是否有真实截图、是否有代码 Demo、是否首发冲突、是否存在违规承诺等。
第五,它帮我把这些内容都落到 Obsidian 的 Markdown 文件里。这样我不是在聊天窗口里临时看一眼,而是有一套能继续维护的本地笔记。
这次搭建过程里也踩了几个坑,挺真实的。
一开始我没有确认清楚 Obsidian 当前打开的 vault,导致文件写到了不该写的位置,Obsidian 左侧自然看不到。后来重新确认项目根目录是:
D:\AI\开发者投稿助手所有活动库、投稿计划、素材库和复盘记录都统一写到这个目录下,Obsidian 才能正常显示。
这个坑给我的提醒是:用 AI 或脚本写文件前,先确认 Obsidian 当前打开的 vault 根目录。路径差一个文件夹,体验就完全不一样。
第一版活动清单我用了一个很宽的 Markdown 表格,一行里塞了活动名称、平台、截止时间、参与方式、奖励、难度、参与价值、风险、适合原因、下一步动作等十几列。
在 Obsidian 阅读模式里,这种表格会被硬塞进页面宽度,中文内容被挤成很窄的竖条,看起来像被限制了一样。
后来我改成了:
这样阅读体验好多了,也更适合后续补充截图和复盘。
CSDN、阿里云开发者社区、SegmentFault 这类平台都有长期创作或问答入口,但它们不一定有明确截止和明确奖励。如果和限时活动放在一起排序,很容易让人误以为“都差不多”。
所以我把长期/滚动活动单独放进:
01_活动库\低优先级长期活动.md它们适合长期建设账号,但不抢占今天的主线任务。
目前这个系统已经生成了四类核心内容。
活动库里记录了开发者征文、AI 工具活动、社区问答奖励、云厂商推广和低优先级长期活动。每个活动都尽量写清楚截止日期、奖励类型、参与方式、是否需要 Demo、是否需要视频、难度评分、奖励价值评分和合规风险。
投稿计划里有本周投稿计划、今日执行清单、投稿排期表和投稿前检查清单。对我来说最有用的是“今日执行清单”,它把今天要做的事拆成了截图、改稿、发布、记录几个动作。
素材库里先放了几个方向:个人介绍、Codex 使用案例、Excel 自动化案例、SRM 需求整理案例、截图清单。后面我可以继续把旺店通、金蝶 ERP、Excel、影刀/xbot 自动化相关经验补进去。
复盘记录里有已投稿记录、获奖记录、未获奖原因、平台规则变化。投稿不是发出去就结束,后面还要看阅读量、收藏、评论、是否入选、哪里没做好。
这个工具后面可以继续往几个方向扩展。
第一,把活动数据改成 CSV 或 YAML。这样字段更规整,Python 生成 Markdown 也更方便。
第二,增加首发冲突提醒。如果某个平台要求首发,就在投稿计划里标红,避免同一篇文章乱发。
第三,增加截图证据管理。每次投稿前自动生成需要截图的清单,发完以后把截图路径和投稿链接一起记录。
第四,把 Excel 自动化和影刀/xbot 案例纳入素材库。比如“用 Python 把 Excel 活动清单变成 Obsidian 笔记”“用影刀自动整理投稿链接”等,都可以变成后续文章。
第五,增加复盘评分。比如阅读量、点赞、收藏、是否获奖、失败原因,积累几次之后就能看出哪些选题更适合自己。
真正投稿前,仍然需要人工核验活动截止时间、标签要求、首发规则和提交方式。AI 只负责提高整理效率,最终判断不能完全交给它。
这次最大的收获不是发现了某个奖励很高的活动,而是把“找活动、判断活动、准备投稿、保留证据、复盘结果”变成了一个可以重复执行的流程。
作为公司 IT,我平时做的很多工作都离不开整理:整理订单、整理表格、整理需求、整理流程、整理文档。这次只是把同样的方法用到了开发者活动和投稿上。Codex 负责帮我搭框架、写脚本、生成 Markdown,我负责判断规则、补真实截图、确认内容是否符合平台要求。
这套方法不承诺一定获奖,也不适合拿来做违规操作。它更像一个个人工作台:把能做的活动看清楚,把今天要做的事排出来,把做过的事情留下记录。对我来说,这已经比单纯收藏一堆链接靠谱多了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。