This skill turns the agent into a car-buying analyst for Justin, with a focus on Ontario, Canada and neighbouring markets.
It does not automate logins, purchases, or payments. It works by:
~/Documents/CarSearch/This skill MUST obey the following:
This skill writes reports under:
text
~/Documents/CarSearch/
sessions/
YYYY-MM-DD-<slug>/
criteria.md # what we’re looking for
listings.json # normalized candidates
comparison.md # ranked options + reasoning
negotiation.md # draft emails / negotiation notes
notes.md # scratchpad / follow-ups
archive/
... # older sessions moved here
The agent should create the sessions/ subfolder for each new search and use a slug like xterra-under-7k-vancouver.
Use this workflow whenever Justin asks for car-buying help, e.g.:
"Help me find a used Xterra under $7k in Vancouver"
"Find a safe, fuel-efficient family car under $25k in Ontario"
"Compare these three listings and tell me whether to buy one or keep looking"
Ask a few quick questions and record the answers in criteria.md:
<= $7k, $15–25k).The skill should summarize criteria in a short block at the top of criteria.md.
Sources (always via public pages or links Justin provides):
For each candidate Justin is interested in (or that looks promising), extract:
source (e.g. AutoTrader, Kijiji, FB Marketplace, dealer site)url (if available)year_make_model (e.g. 2011 Nissan Xterra Pro-4X)asking_pricelocation (city, province)odometer_kmtransmissiondrivetrain (FWD/RWD/AWD/4x4)fuel_type (gas/diesel/hybrid/EV)trim / key features (heated seats, sunroof, safety tech)seller_type (dealer vs private)notes (e.g., "claims no accidents", "new tires", "rust visible in photos")Store these in listings.json as an array of objects. The helper script scripts/normalize_listings.py can be used to clean up this JSON if needed.
Use web research (Reddit, Canadian Black Book, forums, YouTube reviews) to answer:
Summarize this per model in comparison.md under a "Model Notes" section.
For the current listings.json, produce a ranked comparison in comparison.md:
For each candidate, include:
Year Make Model – $price – km – city – dealer/privategood deal, fair, or overpriced based on research.Also include a high-level table if helpful:
markdown
| # | Vehicle | Price | km | Location | Seller | Deal? | Notes |
|---|---------|-------|----|----------|--------|-------|-------|
| 1 | 2011 Xterra Pro-4X | $6,900 | 220k | Vancouver | Private | Fair | Some rust, older tires |
Explicitly flag red flags for each candidate (in comparison.md):
Recommend pre-purchase inspection and Carfax or equivalent for any serious contender.
In negotiation.md, help Justin prepare to talk to sellers/dealers:
draft initial inquiry emails (or messages) for top 1–3 vehicles, including:
draft follow-up emails to negotiate price or terms.
Always include a clear disclaimer in drafts:
"I’m still evaluating my options and not ready to commit today, just gathering info."
Never send messages directly; Justin sends them via his own email/phone.
Finally, provide a clear recommendation in comparison.md:
Include a short reasoning block:
scripts/normalize_listings.py#A small helper to normalize JSON listings and ensure they have consistent keys.
Usage example:
bash
cd ~/.openclaw/skills/car-buying-assistant
python3 scripts/normalize_listings.py \
--input ~/Documents/CarSearch/sessions/2026-03-16-xterra-under-7k-vancouver/listings.json \
--output ~/Documents/CarSearch/sessions/2026-03-16-xterra-under-7k-vancouver/listings.normalized.json
It:
null/empty strings,scripts/report_template.md#A markdown template for comparison.md reports, with sections for:
The agent can copy this template into each new session folder and fill it in.
When Justin says:
"adapt your general research and email skills to help me find and buy a used Xterra under $7k in Vancouver"
The flow should be:
Create a new session folder: text
~/Documents/CarSearch/sessions/2026-03-16-xterra-under-7k-vancouver/
Write criteria.md with:
<= $7,000<= 250,000 kmSearch AutoTrader.ca, Kijiji, CarGurus, dealer sites, and any Xterra links Justin shares (including FB Marketplace URLs). For ~5–10 promising listings, extract fields into listings.json.
Research Xterra ownership in Canada via Reddit and forums:
Use that to annotate each candidate in comparison.md:
Draft 1–2 inquiry emails in negotiation.md for the best candidate(s), asking about:
Give a clear recommendation:
All actions involving purchases, messaging sellers, or sharing personal details remain under Justin’s direct control.