Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run evidence-disciplined Xiaohongshu social listening for foreign pharma employee pain points. Use when the user asks to collect and analyze notes/comments about pharma companies, aliases, roles, compliance, medical affairs, or AI topics, then produce a cited and scored sampled-insight report. Includes independent-evidence counting, MediaCrawler batch collection, and CAPTCHA/461 fallback to Agent Reach/OpenCLI.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 76% | 0% |
Use this skill to run an end-to-end Xiaohongshu social listening workflow for foreign pharma employee pain points. The main agent owns orchestration, scoring, analysis, and final reporting. Delegate Xiaohongshu collection to a collector subagent when subagent tools are available. Use Agent Reach/OpenCLI for access checks, seed discovery, spot validation, and note-level fill-in. For large runs or when OpenCLI throughput is insufficient, prefer a batch crawler path, with MediaCrawler as the first candidate. See references/batch-collection.md before changing collection strategy.
agent-reach doctor --json.xiaohongshu.status is ok and active backend is OpenCLI or another working backend.multi_agent_v1.spawn_agent or an equivalent subagent tool is available.scripts/collect_xhs_pharma.py.>1000 items, or asks for recurring social listening, read references/batch-collection.md and run a MediaCrawler POC first.市场部, 报销, 背调, 外企, 裁员, 离职, 合规, 薪资, and KPI; these must be paired with a pharma context anchor from references/query-matrix.md.opencli xiaohongshu search "<query>" --limit 5 -f json, then read one note and comments. If OpenCLI succeeds but MediaCrawler fails, switch the collection backend to Agent Reach/OpenCLI and cool down MediaCrawler; do not continue retrying MediaCrawler in the same turn.scripts/analyze_xhs_pharma.py on the collection directory.report.md, topic_scores.csv, evidence_notes.csv, evidence_comments.csv, and dataset_summary.json.Default collection:
bashpython <skill>/scripts/collect_xhs_pharma.py --output-dir ./xhs-pharma-run --target-items 1200 --max-queries 40 --search-limit 20 --max-notes 80 --comment-limit 30 --sleep 2.5
Resume a partial run:
bashpython <skill>/scripts/collect_xhs_pharma.py --output-dir ./xhs-pharma-run --target-items 1200 --resume
Analyze a run:
bashpython <skill>/scripts/analyze_xhs_pharma.py --input-dir ./xhs-pharma-run --output-dir ./xhs-pharma-report
Use a collector subagent for Xiaohongshu collection. The main agent should continue with non-overlapping work such as query-matrix refinement, scoring review, schema mapping, and final report preparation.
Subagent model choice:
Collector subagent prompt template:
textUse the xhs-pharma-social-listening skill. You own only Xiaohongshu data collection for this run. Do not edit skill files or analysis scripts. Write outputs only under <output-dir>. Run the selected collection path, capture command lines, elapsed time, item counts, errors, login/captcha observations, and sample raw links. Return a concise status with: output directory, files produced, search rows, detail rows, comment rows, failures, and unverified assumptions.
For large query matrices, shard by keyword groups only when the user explicitly asks for parallel collection. Give each collector a disjoint output directory and keep per-process crawler concurrency conservative.
Every final report must include:
Score each pain-topic cluster on a 0-100 scale:
textscore = heat 20 + repetition 20 + source_proximity 15 + comment_validation 15 + specificity 15 + negative_intensity 10 + confidence 5
Do not include trend-spike scoring unless the run has comparable historical windows.
OpenCLI is sufficient when it can collect more than 1,000 independent evidence items with acceptable failure rates. If collection stalls, returns frequent login/captcha errors, or cannot meet the independent-evidence target, switch to batch-collection evaluation:
NanmiCoder/MediaCrawler: first candidate for batch runs; supports Xiaohongshu keyword search, note detail, first-level comments, optional second-level comments, CDP/local Chrome mode, and JSONL/SQLite/Excel storage. License is non-commercial learning only.JoeanAmier/XHS-Downloader: use as link extraction or single-work metadata helper, not as the primary comment social-listening collector unless comment support is separately verified.chenningling/Redbook-Search-Comment-MCP2.0: can search/read notes/comments, but includes comment-posting tools; only use read-only functions after code audit.yangsijie666/xiaohongshu-crawler: Playwright stealth crawler with JSON/Excel and comments; lower maturity, use only for sandbox POC.Prefer MediaCrawler for recurring or larger research runs after a small POC verifies login, output schema, and rate-limit behavior. Keep Agent Reach for spot checks against raw links and for filling missing note pages.
When MediaCrawler logs CAPTCHA appeared, Verifytype, or HTTP 461:
opencli xiaohongshu search "<query>" --limit 5 -f jsonopencli xiaohongshu note <url> -f jsonopencli xiaohongshu comments <url> --limit 5 -f jsonThe 2026-07-05 local run established this pattern: MediaCrawler hit 461 on both 辉瑞 and low-frequency RWE 药企, in CDP and standard modes, while Agent Reach/OpenCLI successfully searched RWE 药企 and read note comments. Treat this as evidence to preserve the broad query matrix and adjust backend/execution strategy instead.
When Xiaohongshu or the browser page shows Requests too frequent. Try again later., 访问过于频繁, 请求过于频繁, 操作频繁, or an equivalent frequency block:
xhs_cooldown_until.json in the workspace, with observed_at, cooldown_until, reason, and source evidence. Use at least 3 hours unless the user explicitly sets a longer pause.cooldown_until has passed.For repeated OpenCLI Detached while handling command errors during an XHS batch, treat it as a warning signal. If it appears in a rising cluster together with browser instability or user-observed frequency-block pages, stop collection and apply the same 2-3 hour minimum cooldown. Mark this link as a candidate hypothesis unless the block page is directly observed.
When evidence is insufficient, do not present a definitive cause or solution. Report only:
Clearly label all unverified conclusions.
Other measured skills in the registry, with their headline benchmark lift.