A behind-the-scenes look at how we’re using APIs, AI agents, and webhooks to help humans (awkwardly) sell their cars — and what it means for building in the age of robots.
🧵 Introduction
In the Age of Robots, a lot of people are focused on building large, complex systems. But sometimes, the magic is in building something very small — a tool that does one thing well, over and over, with the help of automation and AI.

That’s what we’re doing with Shy Car — a project that helps people sell their used cars without sleaze, dealerships, or awkward classified ads.
At first glance, it looks like a car-selling tool. But under the hood, it’s a real-time, AI-powered publishing system — dynamically generating car listings tailored for Craigslist, Facebook, and private sale groups using a combination of:
- VIN decoders
- webhook triggers
- prompt chaining
- dynamic persona shaping
- and some spicy middleware glue
Here’s how we built it.
🏗️ Step 1: The Core Idea – Human + AI Matchmaking
Most people don’t know how to write a good car listing.
We do. Or, more accurately — the AI does.
The idea behind Shy Car is to create a “dating profile for your car”, based on real-world inputs:
- VIN (for base data)
- Images (optional, for human review)
- Seller goals (speed, price, low hassle)
- Marketplace targets (Craigslist, Facebook, OfferUp, etc.)
🔌 Step 2: VIN Decoding via API
We use a third-party VIN Decoder API (currently NHTSA for base proof of concept, or commercial providers like VinAudit) to gather:
- Make, model, year
- Body type, trim, fuel type
- Engine spec
- Manufacturer info
Once a user inputs a VIN, we call the decoder API via GET, and parse the response to a normalized internal vehicle schema, so our AI agent can handle edge cases (like partial data, missing trims, etc.).
Example VIN call:
GET https://vpic.nhtsa.dot.gov/api/vehicles/decodevinvaluesextended/<VIN>?format=json
We use this to populate a simple object like:
{
"year": 2013,
"make": "Toyota",
"model": "Highlander",
"trim": "XLE",
"fuelType": "Gasoline",
"driveType": "AWD"
}
🔁 Step 3: Webhook-Triggered AI Flow
Once VIN data is collected, we trigger a webhook that kicks off the AI writing process.
Our stack:
- Frontend: JavaScript widget or form inside Brilliant Directories (or standalone React component)
- Middleware: Pipedream / UChat / Pabbly / custom Flask endpoint
- AI model: GPT-4o-mini (for fast + cost-efficient generation)
We send a structured payload to the AI agent:
{
"vehicle": {
"year": 2013,
"make": "Toyota",
"model": "Highlander",
"trim": "XLE",
"mileage": "123,000",
"driveType": "AWD"
},
"platform": "Facebook Marketplace",
"voice": "quirky, honest, lightly awkward"
}
This is routed via webhook to the OpenAI API, with a custom prompt designed like so:
🧠 Prompt Engineering Example:
You are a helpful assistant writing car listings for private sellers.
Write a listing for this vehicle: {{vehicle.make}} {{vehicle.model}} ({{vehicle.year}}).
Platform: {{platform}}
The tone should be honest, human, and a little quirky. Mention highlights (AWD, mileage, etc.) and gently suggest why this car is a great next chapter for someone.
Include a title, description, and 3 hashtags. Do not add contact info.
The result is a context-aware, voice-driven listing, optimized for the platform. We tweak the prompt slightly based on the target channel:
- Craigslist = more structured + serious
- Facebook = casual + emoji-friendly
- Dealers = formal + feature-forward
📬 Step 4: Delivery & Post Options
Once the listing is generated, the system either:
- Displays it directly in the browser (preview + copy to clipboard)
- Emails it to the user
- Saves it to their account in Brilliant Directories
- Sends it to a Pabbly flow to auto-post (optional)
🧱 Bonus Tools in the Stack
- Paperform: Front-end lead intake / embedded form styling
- UChat: AI-based user interactions (coming soon)
- Pabbly Connect: API orchestration, connecting Brilliant Directories → AI → user response
- Cloudflare Pages: For hosting edge functions + experimental features
🤖 Why This Matters in the Age of Robots
This is the new indie builder stack.
Instead of:
- Writing code from scratch
- Building databases
- Designing custom UIs
We’re building with APIs, prompts, and agents.
The “product” isn’t just a car listing generator. It’s a tiny AI toolchain:
- Input → Enrichment → Generation → Delivery
That’s the new loop.
If you’re a builder, this is the model:
- Think smaller.
- Build smarter.
- Let the robots do the boring parts.
🧪 What’s Next?
We’re expanding Shy Car with:
- Photo analysis + alt text generation
- Instant dealership outreach packages (PDFs)
- VIN-based car ranking tools (e.g. “best years to sell”)
All powered by chained AI actions + pre-trained prompt modules.
We’ll document that as it happens — right here at Age of Robots.
🎉 Final Thoughts
If you’re a builder, remember this:
In the age of robots, it’s not about doing more — it’s about doing the right thing faster, using the tools we have.
Shy Car isn’t a startup. It’s an experiment in automated empathy.
And we’re just getting started.
Want to build something similar?
Drop your questions in the comments, or subscribe for more build logs.