beijing-signed-price-tracker
Track configured Beijing Housing Commission new-home projects from bjjs.zjw.beijing.gov.cn project-detail URLs, read project signed-unit counts, signed area, and average price, crawl building tables including “查看更多” and paginated lists, treat both “已签约” and “网上联机备案” as signed units, estimate the implied average price per m² of newly signed rooms from changes between the previous and current project summaries, cache unsold room metadata locally, persist rows into a Feishu spreadsheet as the single source of truth, and send Feishu DM notifications after each run. Use when asked to monitor one or more Beijing pre-sale projects, update a project mapping, sync newly signed rooms into a Feishu sheet, infer newly signed average price, verify duplicate insertion behavior, or notify on updates.
Best use case
beijing-signed-price-tracker is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Track configured Beijing Housing Commission new-home projects from bjjs.zjw.beijing.gov.cn project-detail URLs, read project signed-unit counts, signed area, and average price, crawl building tables including “查看更多” and paginated lists, treat both “已签约” and “网上联机备案” as signed units, estimate the implied average price per m² of newly signed rooms from changes between the previous and current project summaries, cache unsold room metadata locally, persist rows into a Feishu spreadsheet as the single source of truth, and send Feishu DM notifications after each run. Use when asked to monitor one or more Beijing pre-sale projects, update a project mapping, sync newly signed rooms into a Feishu sheet, infer newly signed average price, verify duplicate insertion behavior, or notify on updates.
Teams using beijing-signed-price-tracker should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/beijing-signed-price-tracker/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How beijing-signed-price-tracker Compares
| Feature / Agent | beijing-signed-price-tracker | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Track configured Beijing Housing Commission new-home projects from bjjs.zjw.beijing.gov.cn project-detail URLs, read project signed-unit counts, signed area, and average price, crawl building tables including “查看更多” and paginated lists, treat both “已签约” and “网上联机备案” as signed units, estimate the implied average price per m² of newly signed rooms from changes between the previous and current project summaries, cache unsold room metadata locally, persist rows into a Feishu spreadsheet as the single source of truth, and send Feishu DM notifications after each run. Use when asked to monitor one or more Beijing pre-sale projects, update a project mapping, sync newly signed rooms into a Feishu sheet, infer newly signed average price, verify duplicate insertion behavior, or notify on updates.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Beijing Signed Price Tracker
使用 `scripts/tracker.js` 维护多个地块名到北京住建委项目详情链接的映射,并把新发现的“已签约 / 网上联机备案”房屋写入**飞书表格**。
## 核心文件
- `projects.json`:项目映射 + 飞书表格配置
- `scripts/tracker.js`:抓取、解析、估算、写入、排序主脚本
- `room-cache.json`:本地房源缓存(缓存未签约房屋的建筑面积/户型,供后续签约时补齐)
## 满足的规则
1. 允许配置多个地块名到北京住建委项目详情链接的映射;同一地块名也可以绑定多个项目详情链接,并在同步时合并处理。
2. 从项目详情页提取:
- 已签约套数
- 已签约面积(M2)
- 成交均价(¥/M2)
3. 从楼盘表页提取每套房的:
- 销售楼号
- 自然楼层
- 房号
- 销售状态
4. 如果项目详情页有“查看更多”,继续抓取 `pageId=411612` 楼盘表列表页。
5. 如果楼盘表列表页有多页,依次处理全部页。
6. 将 `已签约` 与 `网上联机备案` 统一视为签约房屋。
7. 账本仍以飞书表格为唯一真实历史来源;但会额外维护本地 `room-cache.json`,缓存未签约房屋的 `建筑面积` 与 `户型`。
8. 同步时会先扫描整盘楼盘表;对可访问房屋详情页的未签约房源补缓存;对已签约 / 网上联机备案房号,判断其是否已经存在于飞书表格中。
9. 上次查询基线按**地块名**从飞书表格中反向解析;如果不存在,则 `已签约套数`、`已签约面积(M2)`、`项目成交均价` 都视为 `0`。
10. 新签约均价按面积差公式估算:
`估计新签约均价 = (本次已签约面积 * 本次项目成交均价 - 上次已签约面积 * 上次项目成交均价) / (本次已签约面积 - 上次已签约面积)`
11. 飞书表格列固定为:
`地块名,销售楼号,自然楼层,房号,建筑面积,户型,估计成交价,项目已签约套数,已签约面积(M2),项目成交均价,更新时间`
12. 写入时只在表格底部追加新行;历史行内容不回写、不改单元格值。允许统一排序,也允许从旧版 8 列表头迁移到新版 11 列表头(旧数据新增列会留空)。
13. 追加完成后,对整张表按以下优先级排序:
- 地块名
- 更新时间
- 销售楼号
- 自然楼层
- 房号
14. 更新时间统一使用 `YYYY-MM-DD HH:MM:SS`。
15. 每次执行结束后都发飞书私聊通知:
- 有新增签约:通知内容为本次新增行,按窄屏友好格式分组展示
- 无新增签约:发送“本次无新增签约”摘要
## 飞书表格约束
- 飞书表格是**唯一真实数据源**。
- 首次使用时,如果表格为空,脚本会自动写入表头。
- 如果表格首行是旧版 8 列表头,脚本会自动迁移为新版 11 列表头,并保留历史行。
- 如果表格首行既不是新版也不是旧版表头,脚本会报错停止,避免破坏历史数据。
- 如果飞书应用没有该表格权限,脚本会提示你在文档右上角添加文档应用。
## 本地缓存约束
- 本地缓存文件:`room-cache.json`
- 缓存 key:`地块名 + 销售楼号 + 自然楼层 + 房号`
- 仅用于补充签约后无法再读取的 `建筑面积` 与 `户型`
- 如果房屋在签约前未曾成功缓存,则签约入表时对应列会为空,并在同步报告中给出警告
## 状态颜色
`scripts/tracker.js` 按楼盘表颜色识别状态:
- `#FF0000` → 已签约
- `#d2691e` → 网上联机备案
- `#FFCC99` → 已预订
- `#33CC00` → 可售
- `#CCCCCC` → 不可售
- `#ffff00` → 已办理预售项目抵押
- `#00FFFF` → 资格核验中
只有 `已签约` 和 `网上联机备案` 会写入飞书表格;未签约状态会用于刷新本地缓存。
## 配置文件格式
`projects.json` 示例:
```json
{
"feishu": {
"sheetUrl": "https://my.feishu.cn/sheets/Y944sbj2khtLcNtb7jec7MIrnxd",
"spreadsheetToken": "Y944sbj2khtLcNtb7jec7MIrnxd",
"sheetId": "eee767",
"sheetTitle": "Sheet1",
"appId": "cli_xxx",
"appSecret": "xxx",
"notifyUserOpenId": "ou_xxx"
},
"projects": [
{
"name": "清樾府04地块",
"url": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=320794&projectID=8138177&systemID=2&srcId=1"
}
]
}
```
也可以通过环境变量覆盖:
- `FEISHU_SHEET_URL`
- `FEISHU_APP_ID`
- `FEISHU_APP_SECRET`
- `FEISHU_NOTIFY_USER_OPEN_ID`
## 命令
```bash
node scripts/tracker.js set-feishu --sheet-url "https://my.feishu.cn/sheets/Y944sbj2khtLcNtb7jec7MIrnxd" --app-id "cli_xxx" --app-secret "xxx" --notify-user-open-id "ou_xxx"
node scripts/tracker.js add --name "清樾府04地块" --url "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=320794&projectID=8138177&systemID=2&srcId=1"
# 同一地块名重复 add 新链接时,脚本会把链接追加到该地块配置下
node scripts/tracker.js list
node scripts/tracker.js sync
node scripts/tracker.js sync --name "清樾府04地块"
```
也可以临时同步一个未写入配置的项目:
```bash
node scripts/tracker.js sync --name "临时项目" --url "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=320794&projectID=8138177&systemID=2&srcId=1" --sheet-url "https://my.feishu.cn/sheets/Y944sbj2khtLcNtb7jec7MIrnxd" --app-id "cli_xxx" --app-secret "xxx"
```
## 实施要求
- 先使用项目详情页统计值作为总量基准,再扫描楼盘表找具体房号。
- 必须处理“查看更多”和分页,不能只依赖项目详情页第一页展示的部分楼栋。
- 同步时顺带刷新可访问房屋详情页的未签约房源缓存。
- 如果 `签约套数变化` 与 `本次发现的新房号数` 不一致,输出警告,但仍按当前楼盘表结果判断哪些房号需要新增。
- 如果项目总签约套数或签约面积下降,不回滚历史数据,只报告异常。
- 如果楼盘表出现历史没有的新房号,但项目签约面积没有增加,则跳过这些房号并给出警告,避免估价失真。
- 默认顺序抓取,避免高频并发请求。
- 排序通过脚本在读取全部账本后统一重写已排序区间完成。
## 通知规则
- 每次执行结束都会发飞书私聊通知。
- 有新增时,通知内容就是新增行本身,按地块分组并适配手机窄屏阅读。
- 没有新增时,发送简短摘要,说明“本次无新增签约”。
- 通知目标由 `feishu.notifyUserOpenId`(或环境变量 `FEISHU_NOTIFY_USER_OPEN_ID`)控制。Related Skills
KPI Tracker Skill
Track, analyze, and report on Key Performance Indicators for any business.
Budget & Expense Tracker — AI Agent Financial Command Center
Track every dollar, enforce budgets, spot spending patterns, and build wealth — all through natural conversation with your AI agent.
gold-price-query
This skill retrieves real-time precious metal prices (gold, silver, platinum, palladium, etc.) from https://i.jzj9999.com/quoteh5. It provides bid/ask prices, daily high/low prices, and price trends for 20+ metal types.
game-light-tracker
Track live NFL, NBA, NHL, or MLB games and automatically change Hue light colors based on which team is leading. Use when user wants to sync smart lights with live sports scores for visual game tracking. Supports NFL, NBA, NHL, and MLB games with customizable team colors.
ml-experiment-tracker
Plan reproducible ML experiment runs with explicit parameters, metrics, and artifacts. Use before model training to standardize tracking-ready experiment definitions.
jarvis-stock-price - 股票价格查询
**版本**: 1.0.0
pitch-follow-up-tracker
Track outreach pitches and draft contextual follow-up emails. Monitors a pitch tracker (Google Sheet or local markdown), checks Gmail for replies, flags stale pitches, and drafts tiered follow-ups (Day 3, Day 7, Day 14) that reference the original pitch content. Use when you need to check on pitch follow-ups, draft follow-up emails, review outreach status, find pitches without replies, or manage an outreach pipeline. Triggers on: 'check follow-ups,' 'who hasn't replied,' 'draft follow-ups,' 'outreach status,' 'pitch tracker,' 'stale pitches,' or any request to manage pitch/outreach follow-up.
github-growth-tracker
Track GitHub repo growth (stars, forks, issues, commits) with periodic digests and trend analysis. Compare your repos against a watchlist. Use when checking repo stats, monitoring growth, setting up a github digest, comparing repos, or managing a repo watchlist. Requires GITHUB_TOKEN environment variable or GitHub PAT (see Credentials).
engagement-analytics-tracker
Use this skill whenever the user needs help with behavioral analytics, engagement tracking, or data collection across any digital touchpoint. Trigger for: website behavioral analytics (scroll depth, form abandonment, session tracking, GTM setup, GA4 custom events), email engagement tracking (open/click/attribution via Klaviyo, Mailchimp, or custom platforms), social media engagement monitoring (owned and competitor), mobile app analytics (Firebase, Amplitude, Mixpanel, AppsFlyer), user-level engagement scoring, cohort analysis, conversion tracking, event schema design, data layer setup, attribution modeling, or any request like "track user behavior", "set up analytics", "measure engagement", "build an event schema", "track form abandonment", "email attribution", "app retention analysis", "what events should I track?", or "how do I measure X". Always use this skill — do not guess at tracking implementations from memory; patterns and APIs change.
ad-platform-tracker
Use this skill whenever the user needs to track, analyze, or respond to advertising platform changes across Meta (Facebook/Instagram), Google Ads, or competitor intelligence. Trigger for any of these requests: Meta algorithm updates, Andromeda implications, Google Ads policy changes, Performance Max updates, privacy/compliance tracking (GDPR, CCPA, iOS), competitor ad analysis, campaign impact assessment, ad policy audits, regulatory compliance checks, platform feature rollouts, algorithm behavior changes, creative strategy updates from platform shifts, competitor ad library scraping, or any question like "what changed on Meta/Google?", "how does X update affect my campaigns?", "is my account compliant?", "what are competitors running?". Always use this skill — do not rely on training memory for fast-changing platform details.
alumni-career-tracker
Analyze laboratory alumni career trajectories and outcomes to provide data-driven career guidance for current students and postdocs. Tracks industry vs academia distribution, identifies career pathways, and generates personalized recommendations based on degree level and research interests.
tracker-latest-run-monitor
Monitor the most recent run result of a configured OpenClaw cron job and send a compact Feishu private message with the latest execution time, status, and detail. Use when a user wants a standalone skill for latest-run monitoring, cron status notifications, daily status pings, or Feishu alerts for a tracker/scheduled job regardless of success or failure.