我为开发者构建了 Trend Radar —— 下面是 Scoring Engine 的工作原理
抱歉,我需要您提供要翻译的具体文本内容(文章正文),才能为您完成简体中文翻译。请把需要翻译的文字粘贴在这里,我会保持原有的格式、Markdown 语法以及技术术语不变,只翻译正文部分。
问题
“Trending” 在没有上下文的情况下毫无意义。一个拥有 500 个 GitHub 星标的仓库如果没有人实际使用,就没有意义。一个在 Product Hunt 上获得 200 票的发布如果一周后就消失了,也没有意义。
我想要一个系统来提问:这个信号是否在多个独立来源中出现?
如果某件事在 Hacker News 上趋势 并且 公司正在招聘相关人才 并且 npm 下载量在增长 并且 资金正流入该领域——这就不是噪声,而是信号。
数据管道
每 2 小时,一个 cron 任务会从以下来源抓取数据:
- Hacker News – 热门故事和评论
- GitHub Trending – 获得星标的仓库
- Product Hunt – 新发布的产品
- Reddit – 4 个开发者子版块(阈值:评分 65+)
- RemoteOK – 工作招聘信息
- npm – 包下载趋势(追踪 134 个包)
- GitHub Stars Velocity – 50 个仓库的星标增长速率
- Hiring Index – 632 家公司,884 条活跃招聘信息
- Wikipedia – 技术主题的页面浏览增长
- VC Blogs – 来自投资人博客的 124 篇文章
- Stack Overflow – 按标签划分的未解答问题数量
- DOE Research – 来自研究数据库的 346 条记录
- Funding Context – 行业层面的融资热力图
- Product Intelligence – 776 个产品的参与度和突破得分
- GPT Reports – 对约 240 条信号的 AI 生成分析
原始信号写入快照文件;随后评分引擎对所有数据进行处理。
10 个评分维度
每个信号在 10 个维度上进行评分。原始分数累计最高为 135,随后归一化为 0‑100 规模。
| # | 维度 | 最高分 | 描述 |
|---|---|---|---|
| 1 | Snapshot | 0‑20 | 该信号是否存在于当前数据抓取中? |
| 2 | Compare | 0‑15 | 与之前快照中的信号相比如何? |
| 3 | Replay | 0‑15 | 该信号是否随时间持续出现? |
| 4 | Topics | 0‑15 | 关键词是否呈现周环比增长?检查主题历史 以及 npm 下载趋势。 |
| 5 | Analytics | 0‑15 | 交叉验证:该信号是否出现在多个独立来源中?3 次以上验证 = 15 分。 |
| 6 | Intelligence | 0‑15 | AI 分析:结合 GPT 生成的机会分数与产品情报数据(在 776 个产品中的参与度 + 突破分数)。 |
| 7 | Funding | 0‑10 | 该信号所属行业是否有资金流入?将信号映射到资金热图(例如,DevTools → 技术,AI → AI/ML + 技术)。 |
| 8 | Early Signals | 0‑10 | 研究指标:Wikipedia 页面浏览量增长、风险投资博客提及、Stack Overflow 活动、DOE 研究关键词。对单个关键词进行索引(而非完整短语),以捕获更多匹配。 |
| 9 | Tracking | 0‑10 | 该信号是否在我们 1,646 个已跟踪产品的产品索引中? |
| 10 | Hiring | 0‑10 | 公司是否在积极招聘相关岗位?检查公司名称匹配、关键词与职位标题的重叠,以及该行业是否有 10 家以上公司在招聘。 |
关键洞察:交叉验证
最重要的维度是 Analytics ——交叉验证检查。单一数据源可能被操纵(例如,机器人给 HN 帖子投票、购买 GitHub 星标)。当一个信号在 HN 且 npm 下载量增长 且 公司正在招聘相关岗位 且 GitHub 仓库获得星标时,这种收敛几乎不可能被伪造。
这就是 8of8 与像 Exploding Topics(主要依赖 Google Trends)或原始爬虫数据的区别。
分数分布
在处理约 1,000 条原始信号后,约 120 条通过了资格过滤(≥ 3 个维度通过 且 分数 ≥ 25/100)。
- 最高分: 81/100
- 平均分: 43/100
- 大多数信号聚集区间: 35‑55 范围
得分 70+ 的信号通常在数周内成为真实趋势。
技术栈
Nothing fancy:
- Python 评分引擎 (
ultimate_opportunities.py) - Flask 前端
- Gunicorn + nginx 部署在单个 Vultr VPS(Ubuntu 24)上
- Cron 任务 用于数据收集(每 2 小时)和邮件提醒(每日 UTC 上午 8 点)
- Stripe 用于支付
- 使用 Pillow 自动生成 Signal‑card 图像
- 自动发布到 Twitter、Bluesky、Mastodon(每日 3 次)
总基础设施成本: ~ $12 / 月(VPS)。
我学到的
-
更多的数据源胜过更好的算法。
评分逻辑是简单的加权数学;价值来自广度,而不是巧妙的机器学习。 -
归一化很重要。
原始分数在 40‑80 之间,看起来毫无意义。归一化到 0‑100 让用户立刻能理解。 -
免费层必须展示价值。
我的第一个版本把所有信号都隐藏在付费墙后——没有人转化。现在免费层展示全部 120+ 信号以及分数和检查状态。专业版($29/月)解锁详细拆解、情报报告和邮件提醒。 -
信号类型影响沟通方式。
热门的 HN 文章与热门的 GitHub 仓库并不相同。我必须教会自动发布系统区分它们,避免把博客文章称作“工具”(在公开场合学到的尴尬教训)。
试用
仪表盘已上线,地址为 8of8.xyz。免费套餐展示全部功能。我正在寻找 beta 测试者——以诚实的反馈换取免费 Pro 访问权限。
- 在 X 私信我或在下方评论。
评分引擎仅在单个 Python 文件中运行。没有 Kubernetes。没有微服务。只有定时任务和信念。
由 Jose Marquez Alberti 构建。由 ASOF Intelligence 提供支持。