King George, VAgaryleeblevinsjr.com
Home/Work/AI Projects/Polo Finder

AI Project · Work in progress

Polo Finder

Hunting thrift racks for golf polos from courses all over the United States, plus the AI-built pipeline behind it: route planning, buy-or-pass pricing, photo cleanup, listing drafts, and SKU tracking.

Polo Pipeline home screen: Today counters, the three-step everyday pipeline (Intake and Photos, List on eBay, Sold and Done), and on-demand tools for Route Planning, Pricing, and Receipt Tracker

The app's home screen, shown with demo data.

AI assistants
4 bots
Thrift runs
8 stops
Every shirt
1 SKU
Status
Building

The story

Why I love it.

I started selling used golf polos just for fun, really. Now I love it.

What I love most is finding polos from golf courses all across the United States, and the process around the whole thing: standing up the inventory tagging process, and figuring out how to store listed shirts so I can pull them quickly when they sell.

It's also a pretty cheap hobby. A lot of it is just driving around to different thrift stores, searching for those needles in a haystack.

I got started through a friend, Shane Canup, who does something similar, mostly with professional and collegiate sports gear. The different pages in the app came straight out of conversations we had while driving around. I built it all with AI. It's still a work in progress, but there's some really interesting stuff being worked on, so feel free to go deep.

The hunt

Needles in a haystack.

A real find, straight off the rack: a striped performance polo with a course logo stitched on the chest.

Striped golf polo hanging on a crowded thrift store rack
01Spotted on the rack
Inside collar showing the Fairway & Greene label
02Check the tag
Close-up of a small red golf club logo embroidered on the chest
03Find the club logo

How it works

From thrift rack to listing.

Six steps, each one backed by a dedicated AI assistant or a script it helped me write.

  1. 01 · Thrift Router

    Plan the route

    Builds an 8-stop driving route from King George, VA around my time window and minutes per stop, with arrive and leave times. Gas and food stops slot in with the least detour.

  2. 02 · Polo Pricing

    Should I buy it?

    Snap the front and the tag, then answer a few quick questions. Offline OCR reads the brand and size off the tag, and I get a buy-or-pass call backed by sold and active comps.

  3. 03 · Intake

    Tag every shirt

    Each shirt gets a SKU sticker, and the sticker is the first photo. That lets the bot tell which photos in a bulk dump belong to which shirt.

  4. 04 · Listing Bot

    Clean the photos

    Groups the photo dump by SKU and cleans up the background, lighting, and crop. It never edits the shirt or hides a defect, and flaws get their own close-up.

  5. 05 · Listing Bot

    Draft the listing

    Writes the title, item specifics, description, condition notes, measurements, and a comps-based price. Nothing goes live until I approve it.

  6. 06 · Inventory

    Store, track, re-price

    Listed photo sets are filed by SKU. Price checks against sold comps, staggered release groups, and relist audits keep the store honest.

The app

Polo Pipeline.

My control panel for the whole workflow. Every page came out of a conversation on the road. Screens are shown with demo data.

Route Planning screen: starting location, end point, start time, time available, minutes per stop, stop count and focus on the left, and a map of a numbered demo route on the right

Route Planning

Pick a start, an end, and how much time I have. Thrift Router sends back an ordered route, and the app draws it on a map.

  • A time-fit check warns me when the stops won't fit the window.
  • Skip recent leaves out stores I hit in the last two weeks.
  • Choose clothing-heavy stores only, or add church thrifts and local shops.
  • Drag-and-drop pit stops, then open the route in Apple or Google Maps.
Pricing screen: a photo drop zone, quick questions for marketplace, brand, size, condition and defects, a 'Should I buy it?' button, and an empty comps table

Pricing: “Should I buy it?”

Standing in the aisle, I drop in photos and answer a few questions about brand, size, condition, and defects like stains, pilling, or collar curl.

  • Polo Pricing returns buy or pass, a max price to pay, a list price, and a confidence level.
  • It always shows the comps behind the call, so I can see why.
  • A Receipt Tracker page reads thrift receipts and tracks days since my last visit and my own store ratings.

Photo cleanup

Clean photos, honest shirts.

A segmentation model masks the shirt, removes the hanger, and swaps the background. The garment pixels stay untouched. Drag to compare.

After: the same polo on a clean, light studio background
Before: the back of a blue polo photographed on a gray carpet
BeforeAfter
Listing photo template: the cleaned polo with numbered chest and length guides and a card comparing the brand size chart to actual measurements
The listing template adds numbered measurement guides and puts the brand's size chart next to the shirt's actual measurements, which I still take by hand.

Under the hood

Four bots, one bridge.

When I tap a live action in the app (plan a route, get a price, process photos, create listings), it drops a job file into a handoff folder. App Builder watches that folder, passes the job to the right assistant, and writes the result back to the app's inbox.

AppPolo Pipeline
RelayApp Builder
  • Thrift Routerplan_route
  • Polo Pricingget_price
  • Polo Listing Botprocess_photos · create_listings

Rules the bots follow

  • Never publish a listing without my approval.
  • Never alter a garment's defects, and never invent SKUs or prices.
  • Never write to the original photo folder. Cleaned sets go to their own SKU folder.
  • No price call without photos and comps. Route times are estimates without live traffic.

Work in progress

What's next.

  • Live handoffs run only when the bridge server is up. Otherwise the app runs on demo data.
  • Measurements are still taken flat by hand. Brand size charts fill in until I measure.
  • Storage and retrieval: still figuring out the best way to store listed shirts so I can pull any one quickly.
  • Relist audits keep catching wrong sizes, colors, and brands in older titles, so that loop keeps getting tighter.
AI assistantsPythonOCR · RapidOCRrembg · U²-NetOpenCVLeaflet + OpenStreetMapOSRM routingVanilla JS app

Talk shop

Into thrifting, golf, or automation?

← All AI projects