定制化招标信息采集
Automated government procurement bid discovery engine. Scans multiple Chinese procurement platforms, matches configurable keywords, tracks bid statuses, and delivers deadline-aware reports. Users configure their own keywords and monitoring targets; built-in adapters cover 5 major platforms with an extensible plugin model for adding more. Skill: 定制化招标信息采集 Owner: huagavin Summary: Automated government procurement bid discovery engine. Scans multiple Chinese procurement platforms, matches configurable keywords, tracks bid statuses, and delivers deadline-aware reports. Users configure their own keywords and monitoring targets; built-in adapters cover 5 major platforms with an extensible plugin model for adding more. Tags: latest:0.1.0 Version history: v0
Rank
62
Safety
84
Downloads
2.2k
Updated
Oct 9, 2026
Version
0.1.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2.2K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2.2K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.1.0release · observed Aug 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s179vrt2zv80p4y7g1hnkzrj1d8779gn:bidding-hunter- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-huagavin-bidding-hunter/snapshot"
Documentation
CLAWHUB
105,154 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: bidding-hunter description: >- Automated government procurement bid discovery engine. Scans multiple Chinese procurement platforms, matches configurable keywords, tracks bid statuses, and delivers deadline-aware reports. Users configure their own keywords and monitoring targets; built-in adapters cover 5 major platforms with an extensible plugin model for adding more. version: "1.0.1" tags: - bidding - procurement - government - china - automation - scanner - playwright - bid-discovery --- # Bidding Hunter — 投标发掘引擎 A config-driven, reusable bid discovery engine that automates the tedious process of monitoring Chinese government procurement platforms. **Compatible with any AI assistant that can execute CLI tools:** OpenClaw, Claude Code, Codex CLI, Cursor Agent, and similar platforms. The skill is platform-agnostic — all operations are exposed through the `bidding-hunter` CLI and standard shell commands. ## 🚨 MANDATORY TOOL DISCIPLINE — READ FIRST **ANY bidding-hunter task MUST use the existing tools below. You are FORBIDDEN from writing ad-hoc scripts, inline Node.js, curl, web_fetch, or any other approach.** ### Existing Tools (the ONLY allowed tools for bidding-hunter work) | Tool | Purpose | Command | |------|---------|---------| | `bidding-hunter` CLI | All operations: scan, report, list, status, stats, export, remind, init, create-adapter, test-platform, config-validate | `bidding-hunter <command>` | | `scripts/explore-platform.js` | Explore a new platform's structure before writing an adapter | `node scripts/explore-platform.js --url <url> [--recon]` | | `templates/platform-adapter.js` | Template for creating new platform adapters | Used by `bidding-hunter create-adapter` | | Platform adapters | `src/platforms/*.js` — scan() methods executed by the scanner | Called internally by `bidding-hunter scan` | | Core modules | scanner, matcher, database, reporter, detail-fetcher, reminder, notifier | Called internally by the CLI | ### Rules (ZERO EXCEPTIONS) 1. **Use tools, don't replace them.** A bidding-hunter task is a tool-execution task, NOT a coding task. 2. **No ad-hoc scripts.** Do NOT write `scrape_*.js`, `fetch_*.js`, `test_*.js`, inline `node -e "..."`, `curl`, `web_fetch`, or any one-off scraping code. 3. **No browser shortcuts.** Do NOT use Playwright/Selenium directly unless you are inside a platform adapter's `scan()` method. All browser orchestration is handled by the scanner. 4. **No manual dedup/matching.** Do NOT copy-paste from the matcher or database modules. Use `bidding-hunter scan` → `bidding-hunter report`. ### Escalation Path (when something breaks) ``` Existing tool fails → Read the tool's source code → Fix the bug in the tool itself (edit src/*.js, bin/*.js, scripts/*.js, templates/*.js) → Run tests: node --test tests/*.test.js → Re-run the tool → If the tool is fundamentally broken beyond repair: refactor the tool, record in memory/YYYY-MM-DD.md ``` **Key princi
README.md
# 投标猎手 🎯
> 每天自动帮你盯着各大政府采购平台,发现匹配的招标机会就通知你。
> 不用一个个网站去翻,不用怕错过截止日期——它帮你干这些重复活儿。
[](LICENSE)
[](https://nodejs.org)
---
## 这是什么?
如果你或者你的公司需要经常找政府采购项目去投标,你一定经历过这些事:
- 每天打开好几个政府采购网站,一个一个搜关键词
- 搜出来的结果里混杂着中标公告、更正公告、废标公告,得人工过滤
- 记下项目名称、截止日期、预算金额,生怕漏了哪一个
- 不同省份的网站格式还不一样,换个省份又要重新适应
**投标猎手就是帮你干这些事的。** 它自动访问你关心的政府采购平台,按照你设置的关键词筛选招标公告,过滤掉无关信息,把结果整理好汇报给你。
### 它具体能做什么
1. **自动扫描** —— 定时访问北京、河北、辽宁、大连、全国等政府采购平台,不用你手动打开浏览器
2. **关键词匹配** —— 你告诉它关心什么业务(比如"建筑工程""信息系统"),它按重要程度分三级筛选
3. **过滤噪音** —— 自动跳过中标公告、废标公告、更正公告等跟你没关系的内容
4. **提取关键信息** —— 自动从公告详情页提取投标截止时间、开标时间、预算金额
5. **跟踪进度** —— 记录每个项目的状态(关注中 → 已投标 → 中标/未中标),全程可追溯
6. **到期提醒** —— 快截止的项目主动提醒你,不会因为忙忘了投
7. **通知推送** —— 扫描结果可以发到飞书、钉钉、企微,或者导出文件
---
## 谁适合用?
- 📋 **每天需要找投标机会的商务、销售、市场人员** —— 不用再手动翻网页
- 🏢 **投标团队的办公室文员** —— 一个人盯几个省份的标,效率翻倍
- 🤖 **有 AI 助手的人**(OpenClaw、Claude Code 等)—— 可以让 AI 帮你管理和分析投标数据
---
## 怎么装?
### 第一步:装 Node.js
投标猎手需要 Node.js 运行环境。如果你的电脑上已经有 Node.js(版本 ≥ 18),跳过这一步。
**没装过的话**,去 [nodejs.org](https://nodejs.org) 下载安装包,选 LTS 版本(左边的按钮),像装普通软件一样双击安装就行。
装好后打开终端(Windows 上是 PowerShell 或 CMD,Mac 上是终端),输入下面命令确认装好了:
```bash
node --version
# 应该显示类似 v18.x.x 或 v20.x.x
```
### 第二步:装投标猎手
在终端里输入:
```bash
npm install -g bidding-hunter
```
> 💡 `npm install -g` 的意思是"全局安装",装一次就行,之后在任何目录都能用。
### 第三步:装浏览器驱动
投标猎手需要一个自动化浏览器来访问网页,运行下面命令:
```bash
npx playwright install chromium
```
> 💡 这个命令会下载一个 Chromium 浏览器(Chrome 的开源版本),大约 150MB。只需要运行一次。
### 第四步:创建配置文件
```bash
bidding-hunter init
```
这个命令会在你的电脑上创建 `~/.bidding-hunter/config.yaml` 配置文件。接下来你需要编辑它,告诉投标猎手你关心什么关键词。
---
## 配置你的关键词
配置文件是最重要的——你告诉投标猎手你要找什么,它就帮你找什么。
用任意文本编辑器打开 `~/.bidding-hunter/config.yaml`(Windows 上路径是 `C:\Users\你的用户名\.bidding-hunter\config.yaml`):
```yaml
matching:
# 搜索词:在每个平台搜索框里输入什么
# 一个搜索词就是一次搜索,建议 2-4 个,太多反而慢
search_queries:
- "建筑工程"
- "信息化"
# 关键词分级:匹配标题时按优先级筛选
tiers:
high: # 第一优先级:核心业务
label: "重点项目"
keywords: ["建筑工程", "土建施工", "信息系统"]
medium: # 第二优先级:相关业务
label: "一般项目"
keywords: ["系统集成", "运维服务", "弱电工程"]
low: # 第三优先级:拓展业务
label: "关注项目"
keywords: ["市政工程", "园林绿化", "物业管理"]
# 黑名单:标题里包含这些词的就跳过
# 这些都是"已经结束/不相关"的信号
blacklist:
- "中标"
- "成交"
- "废标"
- "更正"
- "流标"
- "终止"
- "澄清"
# 要扫描哪些平台
platforms:
enabled:
- beijing # 北京公共资源交易平台
- hebei # 河北省招标投标公共服务平台
- liaoning # 辽宁省公共资源交易平台
- dalian # 大连市公共资源交易平台
- national # 全国公共资源交易平台(覆盖最广)
```
> ⚠️ **关键词怎么选?** 建议用你的核心业务词汇,2-4 个字一组,不要太长。比如你是做弱电工程的,用"弱电""安防""智能化"就比"弱电系统工程设计与施工"效果好——搜索词越短,命中率越高。
---
## 日常使用
### 每天扫一次
```bash
bidding-hunter scan
```
运行后它会逐个打开你配置的平台,搜索关键词,筛选匹配的公告。扫描完会自动保存结果。
整个过程大概 2-5 分钟(取决于开了几个平台),你可以在终端看到实时进度。
### 看今天的报告
```bash
bidding-hunter report --today
```
输出类似这样:
```
📊 投标猎手日报 — 2026-07-23
───────────────_meta.json
{
"ownerId": "kn727b0hk04906tj8vp8kzrb3x8763rk",
"slug": "bidding-hunter",
"version": "0.1.0",
"publishedAt": 1786283866145
}CHANGELOG.md
# Changelog
All notable changes to Bidding Hunter will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.1] - 2026-07-22
### Fixed
- Critical: Added missing `database.ingest()` function to both SQLite and JSON backends
- Critical: YAML `wait_until` silently ignored by `gotoWithRetry` (snake_case ↔ camelCase mismatch) — added normalization in config.js
- Critical: `/home/$USER` literal string bug in 3 files (database.js, lock.js, notifier.js) — replaced with `path.join('/home', process.env.USER)`
- Warning: `updates.note` vs `updates.notes` inconsistency in SQLite history recording
- Warning: `package.json` repository URL was placeholder (`user/bidding-hunter`)
- Warning: Example keywords in README.md exposed business domain — replaced with generic construction procurement terms
- Warning: Platform-specific URL transformation in detail-fetcher.js extracted to adapter `transformDetailUrl()` hook
- Warning: national.js DATA_SOURCES reordered 1→6 to sequential 1→2→3→4→5→6
- Warning: hebei.js and liaoning.js had hardcoded default query `['视频']` — removed, errors instead
- Info: SKILL.md example keywords synced with README (generic construction/IT terms)
- Info: `fetchDetails` builds URL transform closure once (was O(n×m) adapter loading)
- Info: CLI `fetchDetail` falls back to registry for URL transform when no options passed
- Info: database.js `new Database()` wrapped in try/catch for graceful fallback when native binding missing
- Info: `notifier.js` uses centralized `resolvePath()` instead of inline regex
- Info: `DATE_RE` global regex state protected with try-finally
- Reporter: Skip empty scan stats line when no stats available
### Changed
- SKILL.md: Added mandatory tool-discipline section (agents must use existing tools, not write ad-hoc scripts)
- SKILL.md: Added platform compatibility note (works with any AI assistant that can execute CLI tools)
- BasePlatformAdapter: Added `transformDetailUrl(url)` hook for platform-specific URL transformations
- Registry: Added `findTransformDetailUrl()` for adapter URL transform lookup
- Scanner: Null element tracking and filtering during item collection
- Scanner: `politeDelay` from config passed to adapterContext (was hardcoded per-adapter)
- All platform adapters: use `ctx.politeDelay` instead of hardcoded `waitForTimeout` values
## [1.0.0] - 2026-07-22
### Added
- Core scanning engine with pluggable platform adapter system
- 5 built-in platform adapters: Beijing, Hebei, Liaoning, Dalian, National
- Configurable multi-tier keyword matching engine
- SQLite database with JSON fallback for storage
- Detail page fetcher with automatic date/budget/method extraction
- Deadline tracking and reminder engine (urgent/open-results/missing-dates)
- Multi-channel notification system (stdout, file, webhook, Feishu, DingTalk, Slack)
- Markdown and JSON reporCONTRIBUTING.md
# Contributing to Bidding Hunter
Thanks for your interest in contributing! This project automates government procurement bid discovery — every new platform adapter helps more people find relevant opportunities.
## Ways to Contribute
### 🔌 Add a New Platform Adapter
This is the most valuable contribution! Adding support for a new regional procurement platform.
1. **Check existing platforms**: See `src/platforms/` for examples
2. **Use the exploration tool**: `node scripts/explore-platform.js --url <url> --recon`
3. **Create from template**: `bidding-hunter create-adapter --name <id>`
4. **Implement the adapter**:
- `meta` — Platform metadata
- `scan(context, config)` — Main scanning logic
- `extractItems(page, { today, fromDate })` — DOM extraction
5. **Test**: `bidding-hunter test-platform --name <id>`
6. **Submit PR** with:
- The adapter file in `src/platforms/`
- Updated README platform list
- Brief description of the platform
### 🐛 Bug Reports
- Check existing issues first
- Include: platform name, error message, steps to reproduce
- If possible, include browser console output or page structure changes
### 💡 Feature Requests
Open an issue with:
- What you want to achieve
- Why the current system doesn't support it
- How you envision it working
### 🧪 Testing
```bash
# Run unit tests
npm test
# Test a specific platform
bidding-hunter test-platform --name <id>
# Run a dry-run scan
bidding-hunter scan --dry-run
```
## Development Setup
```bash
git clone https://github.com/user/bidding-hunter.git
cd bidding-hunter
npm install
npx playwright install chromium
# Create test config
bidding-hunter init
```
## Platform Adapter Guidelines
A good platform adapter:
1. **Is defensive**: Handles network timeouts, changed selectors, no-data states
2. **Uses retry stairs**: 30s → 45s → 60s with `gotoWithRetry`
3. **Respects rate limits**: Uses delays between actions
4. **Extracts clean data**: Returns `{ site, region, title, date, url }`
5. **Is self-contained**: One file, no external dependencies beyond Playwright
6. **Has clear logging**: Console messages in `site [query]` format
7. **Handles pagination**: Button-based or URL-based with max page limit
8. **Filters by date window**: Only returns items within `fromDate ~ today`
### Adapter Checklist
- [ ] `meta.id` is lowercase, no spaces, unique
- [ ] `meta.url` points to the listing page (not detail page)
- [ ] `scan()` creates its own browser context + page
- [ ] Uses `this.gotoWithRetry()` for navigation
- [ ] `extractItems()` uses `page.$$eval()` with serialized options
- [ ] Date extraction handles multiple formats (YYYY-MM-DD, YYYY/MM/DD, etc.)
- [ ] Returns items with all required fields
- [ ] Closes browser context in `finally` block
- [ ] Tested with `bidding-hunter test-platform`
## Code Style
- ES6+ with `'use strict'`
- 2-space indentation
- Single quotes for strings (except template literals)
- `async/await` for all async operations
- Descriptive variabAionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/huagavin/skills/bidding-hunter",
"sourceUrl": "https://clawhub.ai/huagavin/skills/bidding-hunter",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T17:57:25.890Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-huagavin-bidding-hunter/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-huagavin-bidding-hunter/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T17:57:25.890Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2.2K downloads",
"href": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceUrl": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T17:57:25.890Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.1.0",
"href": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceUrl": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-09T13:57:46.145Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-huagavin-bidding-hunter/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-huagavin-bidding-hunter/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.1.0",
"description": "Initial release of bidding-hunter — an automated government procurement bid discovery engine. - Scans Chinese procurement platforms for bids matching user-configured keywords. - Tracks bid statuses, deadlines, and sends reminders through deadline-aware reports. - Users can add or customize target platforms using built-in adapters and an extensible plugin model. - All operations performed via the `bidding-hunter` CLI and standard tools; strict tool-discipline enforced. - Platform-agnostic; no ad-hoc scripts or browser automation outside defined adapters. - Detailed documentation and workflow for adding new platforms and tracking opportunities.",
"href": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceUrl": "https://clawhub.ai/huagavin/bidding-hunter",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-09T13:57:46.145Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
