AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Quote Evidence Collector

skill-daizedong-buy-me-a-car-quote-evidence-collector · by DaizeDong

Use when the buyer wants to FIND online dealer quote screenshots (XHS / Reddit / Facebook / Carfax) to use as cross-bid anchors for negotiation, without engaging the full 9-phase pipeline. Triggers include "find quote screenshots", "find dealer evidence", "scrape XHS for quotes", "Reddit OTD reports", "搜集报价截图", "找证据图", "找别人 dealer 给的报价", and Spanish phrases "buscar capturas de cotizaciones de otr…

No reviews yet
0 installs
22 views
0.0% view→install

Install

$ agentstack add skill-daizedong-buy-me-a-car-quote-evidence-collector

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access Used
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-daizedong-buy-me-a-car-quote-evidence-collector)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Quote Evidence Collector? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Quote Evidence Collector

> Caveat: this skill is one author's playbook + 5-scenario stress test. Verify state fees / CPO terms / EV credits / dealer practices against current sources before quoting numbers to a dealer or making financial decisions. Not tax, legal, or financial advice.

last_verified: 2026-05-18

Narrow-trigger skill: surface REAL dealer quote screenshots from public sources (XHS / Reddit / Facebook / aggregators) for use as cross-bid negotiation anchors. Defers heavy method content to ../orchestrator/references/deal_data_sources.md and hands off finished image sets to ../dealer-reply-drafter/SKILL.md.

When to invoke

User says any of: "find quote screenshots", "find dealer evidence", "scrape XHS for quotes", "Reddit OTD reports", "find what other people paid", or the CN triggers in the frontmatter. Skip this skill if the buyer is still at Phase 1 (criteria not locked) -- the broader orchestrator should run instead.

State-aware search decision tree

Per orchestrator gotcha S5: the buyer's state dictates which source has the densest same-model quote evidence. Run the FIRST matching branch; do not blast every source.

| Buyer state | Primary source | Secondary | Why | |---|---|---|---| | NJ / NY / CA | XHS (search_result + state keyword) | Reddit r/{Make}{Model} | Chinese-American buyer community concentrated in tri-state + CA; they routinely post dealer worksheets. | | TX / FL / IL / GA / WA | Reddit r/{Make}{Model} + r/{State}Cars | XHS (generic only) | English-language buyer forums dominate; XHS has thin regional coverage. | | Boomer-heavy makes (Ford F-150, RAM 1500, classic Mustang) | Facebook owner groups | Reddit | Owner FB groups are where pickup buyers post window stickers. | | Spanish-dominant buyer (US Hispanic/Latino) | ES-community: US-Latino FB buy/sell groups (VA / Houston / LA / CA — verified IDs in deal_data_sources.md §ES) + Reddit ES (comprar carro queries) | Reddit r/{Make}{Model} (English) + aggregators | ES tier is a THIN supplement only: FB groups are FSBO marketplaces (regional private-party floor, not dealer worksheets) and large ES subs (r/mexico, r/espanol) carry MX-domestic prices that DON'T map to US OTD. Always cross-check against the English + aggregator tiers; never let an ES datapoint stand alone. Re-verify each FB group's latest-post date in Playwright before citing (FB hides member counts). | | Other states | Reddit r/{Make}{Model} + r/{State}Cars | Aggregator screenshots (CarGurus, Edmunds) | Default fallback. |

Always run TWO parallel XHS searches when buyer's state is known: generic keyword for national anchor + state-specific keyword (English state abbrev OR Chinese state name, e.g. NJ / xin-ze-xi / niu-yue) for regional anchor. The state-specific search surfaces same-dealer same-trim quotes that dwarf generic posts in anchoring power (gotcha S5).

5-step XHS Playwright workflow

Verbatim from ../orchestrator/references/deal_data_sources.md (XHS Post Image Extraction). Run after the buyer has logged into XHS in the Playwright MCP window (one-time QR / SMS, cookies persist).

Step 1 -- browser_navigate to the post

Use the /search_result/{id}?xsec_token=... form, NOT the plain /explore/{id} form. Per gotcha S3, the /explore/ form 404s without an access token. Token comes from a fresh search-page anchor's href -- do browser_evaluate on https://www.xiaohongshu.com/search_result?keyword= first, harvest a[href*="/search_result/"] href values, then navigate. Tokens may expire after ~24h; re-search if 404.

Step 2 -- browser_evaluate to extract images + body in one call

() => ({
  imgs: Array.from(document.querySelectorAll('img'))
              .map(i => i.src)
              .filter(s => s.includes('xhscdn')),
  body: document.body.innerText.slice(0, 4000)
})

One MCP call returns both image URLs and post text -- saves round trips.

Step 3 -- Python urllib download with Referer header bypass

XHS image hosts (sns-webpic-qc.xhscdn.com) return 403 to anonymous requests. The Referer header pointing at xiaohongshu.com is the bypass.

req = urllib.request.Request(url, headers={
    "Referer": "https://www.xiaohongshu.com/",
    "User-Agent": "Mozilla/5.0",
})
with urllib.request.urlopen(req) as r, open(fn + ".webp", "wb") as f:
    f.write(r.read())

Step 4 -- PIL webp -> PNG conversion

from PIL import Image
img = Image.open(fn + ".webp")
img.save(fn + ".png", "PNG")

The Read tool can view PNG; webp is unreliable across versions.

Step 5 -- Read each downloaded image, rm non-evidence files

Per gotcha S4, ~80% of XHS post images are NOT useful quote evidence. Open every PNG with Read, classify, delete rejects immediately so subsequent passes have a clean working set.

Image triage rules

| Verdict | Image type | |---|---| | KEEP | dealer worksheet / sales-rep email or SMS screenshot / Costco quote sheet / iMessage with $ amounts / window sticker / OTD breakdown PDF page | | DISCARD | manufacturer stock photo / delivery selfie / Apple Notes title card / decorative emoji cover / pure marketing creative |

When unsure, KEEP and let the buyer adjudicate. Discarding a real worksheet is worse than carrying one extra file.

Image compression for manual paperclip

Per orchestrator E5 (manual-paperclip is the only legible path; MCP inline forces 16-20 KB tiny unreadable images):

from PIL import Image
img = Image.open("xhs-nj-quote-a.png")
img = img.resize((1300, int(img.height * 1300 / img.width)), Image.LANCZOS)
img.save("_FINAL_libertysubaru-premium-otd.jpg", "JPEG",
         quality=88, optimize=True)

Target: 100-300 KB JPGs, 1080-1300 px width, fully legible. Filename: _FINAL_--.jpg. The _FINAL_ prefix makes the curated set obvious in the working directory.

REAL vs SYNTHESIZED tagging

Per Critical Rule #7: every collected datapoint MUST be tagged at capture time.

| Tag | Definition | Citable to dealer? | |---|---|---| | REAL | Actually scraped with source URL + pulled-at timestamp + image on disk. | YES -- paste the number, attach the image. | | SYNTHESIZED | Internal-reasoning estimate from heuristics, training data, or "buyers report X". | NEVER -- for thinking only. |

Pasting a SYNTHESIZED number into a dealer email converts internal reasoning into a fabricated citation -- unrecoverable if challenged. Per-image metadata should record: source_url, pulled_at, tag=REAL, dealer_or_anonymized, trim, state.

Per-dealer attachment etiquette (E5)

| Sending to dealer X | Can attach | Cannot attach | |---|---|---| | Any dealer | 3rd-party aggregator (CarGurus, Cars.com, Edmunds) / Reddit / XHS / Competitor Dealer Y's quote | Dealer X's own ad or Internet Pricing screenshot |

Attaching X's own ad back to X reveals you shop their public listing -- kills negotiation. Same attachment set across all parallel-bid dealers is fine.

Handoff to dealer-reply-drafter

After triage + compression, emit a per-draft attachment recipe table:

| Dealer | Draft id | Files (in order) | Why | |---|---|---|---| | an in-state Subaru dealer | draft-LS-01 | _FINAL_emerson-premium-otd.jpg, _FINAL_xhs-nj-touring-32k.jpg | Two locked benchmarks for the OTD ask | | | draft-OR-01 | _FINAL_emerson-premium-otd.jpg, _FINAL_xhs-nj-touring-32k.jpg | Same set (parallel cross-bid; gotcha D11 confirmed independent) |

Then hand off to ../dealer-reply-drafter/SKILL.md for compose.

Worked example

Buyer state NJ, target 2024 Subaru Outback Premium. Decision tree -> XHS primary. Ran TWO parallel XHS searches: generic Mandarin quote keyword ("bao-jia") + state-prefixed Mandarin quote keyword (NJ + Mandarin state name + "bao-jia").

  • ~15 posts surface, ~50 images downloaded.
  • After triage: ~10 keepers (dealer worksheets + email screenshots from

in-state dealer brands).

  • Compress to _FINAL_*.jpg at 1300 px / quality 88, all under 300 KB.
  • All tagged REAL with source URLs + pulled_at timestamp.
  • First-touch emails cite the in-state dealer anchors by city, attach

2 files each via manual paperclip.

Cycle time: ~50 minutes from "find me quotes" to "emails ready to send".

Cross-references

  • ../orchestrator/references/deal_data_sources.md (XHS Post Image Extraction
  • Browser Session Workflow).
  • ../orchestrator/SKILL.md Critical Rule #7 -- REAL vs SYNTHESIZED tagging.
  • ../orchestrator/SKILL.md gotchas S3 (404 without xsec_token), S4 (80% noise),

S5 (state keyword for regional density).

  • E5 attachment etiquette in ../orchestrator/SKILL.md Outbound Email SOP.

Output contract

Quote evidence pass -- 
  Sources searched: [XHS:, Reddit:, FB:]
  Raw images downloaded: N
  After triage (KEEP): N  [list filenames]
  After triage (DISCARD): N
  REAL-tagged + compressed: N  [list _FINAL_*.jpg names]
  Per-dealer attachment recipe: [table above]

Then hand off to ../dealer-reply-drafter/SKILL.md with the recipe table.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.