The problem nobody's solving
Most OTA listings have zero photo captions. A 200-property portfolio means 3,000–10,000+ photos, each missing 250 characters of searchable text. That's 50–80 hours of revenue manager time nobody has, so the captions never get written, and the listings get punished by every search algorithm that matters.
It used to be just Airbnb, Vrbo, and Booking.com penalizing you. Now it's also every LLM that travelers use to plan a trip.
Why captions matter more than they did 12 months ago
OTA search ranking still leads with text
Airbnb's algorithm extracts keywords from photo captions. So do Vrbo and Booking.com. A "Living Room" photo with the caption "Stone fireplace anchors the rustic living room with leather sofas and a smart TV" matches searches for fireplace, rustic, smart TV — that the bare photo cannot.
Generative search makes this 10× more important
ChatGPT, Perplexity, Google AI Overviews, Claude — none of them see your photos. They see whatever text the OTA exposes. A property without captions doesn't exist in a generative search result. A property with sharp, amenity-specific captions shows up as the recommendation when a traveler asks "Find me a 3-bedroom near McCall with a grill and a hot tub."
This is GEO — Generative Engine Optimization. The same way SEO made your listings visible to Google a decade ago, GEO makes them visible to ChatGPT, Perplexity, and Google AI Overviews today. Photo captions are the cheapest, most direct lever available. They're the new alt-tags.
Captions convert browsers into bookers
Mattress quality. Wi-Fi speed. Whether the kitchen has a real espresso machine. The things that close the booking but a wide-angle photo can't show.
Competitive edge hiding in plain sight
Most hosts skip captions. So this is one of the cheapest leverage points in the industry.
What Pacer's tool actually does
Pacer's caption tool is built around the assumption that OTAs and LLMs don't see photos — they see strings of text describing photos. Our job is to produce the right strings.
Identifies the dominant amenity in every photo
A balcony photo with a grill in the foreground gets a caption that leads with the grill — not generic "embrace the tranquility" filler. A bedroom photo dominated by a stacked washer/dryer in the doorway gets captioned for the laundry, not the bed in the background. A bathroom anchored by a soaking tub gets the soaking tub by name.
Generic captions don't convert. Specific captions do. The classifier is trained to find the single most prominent feature in each frame and the caption generator is required to lead with it.
Detects four classes of anomaly automatically
Every photo runs through Gemini 2.5 Flash vision and gets flagged when any of the following are present:
Out of focus, dark, overexposed, tilted, lens flare. The exact problems OTAs penalize.
10 flagged · Casago Long ValleyChristmas trees, Halloween decor, anything that dates the photo and breaks year-round bookings.
52 flagged · Casago Long ValleyGuests, owners, staff. Hard reject for most channels.
116 flagged · Casago Long ValleyPhotos that clearly belong to a different listing. It happens more than you think during portfolio imports.
60 flagged · Casago Long ValleyEach flagged photo gets a free-text note from the AI explaining what it saw. Click the photo and you see "image is blurry and grainy" sitting under it. No more guessing why something got flagged.
Enforces the 250-character OTA hard limit
Airbnb and Guesty both cap photo captions at 250 characters. The tool flags any caption over the limit before you ever try to paste, with a live character counter under each caption (156 / 250 chars). Going over turns red.
One-click copy or one-click push to your PMS
Every caption card has a Copy button. Click → caption is on your clipboard, ready to paste anywhere. For Guesty users, we go further: a single CLI command pushes every approved caption directly into Guesty's Property Photos API. No manual paste, no copying 3,000 strings into 3,000 fields. The captions live on the channel within seconds.
For non-Guesty PMSes, the same data exports to JSON, CSV, or Excel.
Reviewer dashboard built for speed
The Pacer Portal gives the property manager (or our team, on Full Service) a per-portfolio dashboard showing:
- Per-anomaly filter pills with live counts — Blur / Low Quality (10), Seasonal (52), People (116), Wrong Property (60) — click any to filter the table to only listings with that issue
- Per-listing badges showing the anomaly mix (6 Blur · 6 People · 3 Wrong Property) so you can spot the worst offenders at a glance
- Click any photo to expand into a full-screen lightbox with the AI's notes
- Approve / reject / edit / bulk approve with keyboard shortcuts
- All decisions persist in Postgres — no lost work between sessions
How the pipeline works
Pull every photo automatically
From Guesty, Hostaway, Track, Eviivo, Streamline, or via Airbnb URL scraping. No manual upload.
Gemini 2.5 Flash vision examines each photo
Returns: room type (one of 18 categories), the dominant amenity, structured features detected, confidence score (0.1–1.0), and any anomalies.
A separate Gemini call writes the caption
15–40 words, under 250 characters, leading with the dominant amenity. Prompt is tuned to skip filler ("embrace the tranquility", "experience comfort") and lead with concrete nouns.
Captions land in the Pacer Portal
Property managers (or our team) approve, edit, or reject. Bulk approve unflagged photos in one click.
Approved captions go live
Directly into Guesty (one click, programmatic) or export to your PMS of choice.
Proof of concept
We've run the pipeline at scale on multiple Pacer-managed portfolios:
~200 Airbnb listings · 9,278 photos processed
~87% auto-approved at >0.8 confidence. 6 photos flagged for blur, processed in under an hour.
108 Guesty listings · 3,479 photos · 218 anomalies flagged
10 blur, 52 seasonal decor, 116 people, 60 wrong property. New captions live in Guesty for the lead pilot listing, written and pushed in under five seconds via the API.
Cost: pennies per photo. A full 10,000-photo portfolio costs roughly $3 in AI inference — less than one bottle of wine per portfolio per regeneration.
How we package it
Standard — Generate & Deliver
Full portfolio captioned. ~87% are ready to push immediately. Your team reviews the rest. Captions delivered to your PMS or as JSON / CSV / Excel.
Full Service — Zero Touch
Pacer's revenue managers review and resolve every flagged photo, push live to Guesty (or your channel of choice), and tune for seasonality across the year. Your team spends zero hours.
What changed
If you want to be visible to the next decade of search — Google's still-growing AI Overviews, ChatGPT's planning workflows, Perplexity's travel queries, the next thing none of us have heard of — your listings need to be readable as text. Photo captions are the cheapest, fastest, highest-leverage way to do that. They're the new alt-tags. They're how AI knows what your property is.
Pacer writes them. Pacer flags the photos that shouldn't be on your listing in the first place. Pacer pushes them live. You stay focused on revenue.
Not sure where your portfolio stands? Understand how AI search surfaces STR listings — and why the text layer matters as much as pricing. Or read the pricing mistakes that cost property managers $50K+/year.
Talk to Jon
Let your revenue managers manage revenue.
No commitment required.
Tell us your portfolio size and PMS. We'll walk you through what the pipeline looks like on your actual listings.
Prefer email? jon@pacerrev.com · No commitment required.