寻找政府RFP意味着每天要检查十几个不同的网站。我构建了RFP Search来解决这个问题。它每晚从11个来源收集数据,包括SAM.gov、Grants.gov和各州采购门户,然后使用Llama 3.1提取结构化数据、对机会进行分类并生成摘要。使用React Router、Hono和D1构建为Cloudflare Workers单仓库。
问题
无论是寻找政府合同、非营利组织资助还是大学 RFP,都得检查七个或更多互不连通的门户。每个都有自己的搜索、自己的格式、自己的盲区。结果就是数小时的人工工作和错过的机会。
方案
夜间 scraper 将七个来源汇总到一个可搜索的索引中。Workers AI(Llama 3.1 8B)在一次 prompt 中完成解析、分类和摘要,以保持神经元用量精简。Cloudflare D1 配合 FTS5 全文检索为 API 提供动力。Web 界面运行在 Cloudflare Workers 上的 React Router v7,通过 Service Bindings 与私有 Hono API 通信。
关键决策
- Web 与 API 之间使用 Service Bindings。无需 CORS,无公开 API 表面,跳转耗时低于一毫秒。
- 带自动同步触发器的 FTS5。每次抓取后搜索结果立即可用。
- 每个 RFP 一次 AI prompt,同时完成解析、分类和摘要,保持 Workers AI 的神经元用量平稳。
- 错峰 cron(9:00、9:15、9:30 UTC),保持在每个 Worker 的 CPU 限额之内。
- 状态(开放、即将到期、关闭)在查询时计算,不作为存储状态保留。
状态
已上线并持续开发。部署在 rfp.davidloor.com。Scraper 每晚跨七个来源运行。
Want similar work for your team?
AI-native senior engineering for AI, cloud, and web. Open to consulting engagements and full-time roles.