Photograph the item front, back and label against the same plain background, send the photos to an AI with a fixed intake prompt, and ask for a draft title, description and price range. Then a person checks the brand, size, condition and price against the photos and recent sold listings before anything goes live. The AI drafts; staff verify.
A thrift store's problem isn't a reseller's. One person lists their own stock at leisure, while a donation bench has a back room of items nobody knows the story of, volunteers with very different experience, and a rule that nothing risky goes out. The routine below is built for that bench. For a single seller's version, see the reseller's photo-to-listing routine.
The numbers below belong to an invented charity thrift store with one intake bench, a rota of volunteers and two part-time staff. It sorts about 300 donated items a week, puts most on the shop floor, and lists the 30 to 40 most promising online.
Decide what is worth listing before anyone picks up a phone
The biggest time saving comes from not listing things. A photo, a prompt, a check and a parcel cost more than a paperback is worth. Write a one-page triage rule that volunteers can apply in seconds, with a threshold you set (an invented one is that an item goes online only when its likely sale price is at least twice what the shop floor would take for it). The rest is a short table:
| Item type | Online? | Reason |
|---|---|---|
| Branded clothing in good condition | Yes, if the label can be read | Brand and size drive the price |
| Ordinary paperbacks and mugs | Shop floor | The price doesn't repay the listing time |
| Small electricals | Only after staff power them on and test them | The AI can't know whether they work |
| Child car seats, helmets, cots, mattresses, cosmetics | Never, unless your own policy says otherwise | Safety history or hygiene can't be checked from a photo. Set your policy and check the rules where you trade |
| Phones, tablets and laptops | Only when wiped and signed out | Personal data and account locks |
| Items bearing luxury brand names | Hold for a second check | Counterfeits exist, and the AI can't authenticate |
| Records, coins, medals and similar collectables | Hold for a specialist | Value depends on details a photo may not show |
Put the never-list in the AI's instructions as well as on the wall. A tired volunteer on a Saturday afternoon will photograph the helmet if nothing stops them, and the prompt below stops them.
A five-photo routine at the intake bench
Consistency beats quality. A phone on a stand, a plain board or wall, window light and the same spot every time produce photos the AI reads accurately and buyers trust. Take five shots, and name each file with the item's ID so nothing gets separated:
- Front, the whole item in frame.
- Back, the whole item in frame.
- Labels, sharp enough that you can read the brand, size, fibre content and care text. If the AI can't read them, a buyer can't either.
- Flaws, every mark, tear, scuff or missing part, close up.
- Scale, the item next to a tape measure or ruler.
Before photographing anything, check pockets and compartments, remove personal items, wipe any device, and keep donors' names, addresses and faces out of the frame. Edit nothing except crop and brightness. Retouching the item itself, or generating a nicer picture of it, misleads the buyer and can breach a marketplace's picture rules, as what the eBay picture policy says about AI photos explains.
Measurements deserve a line of their own, because buyers of second-hand clothing rarely trust a printed size. A volunteer measures flat and says the numbers aloud, or dictates them into the staff-notes field: chest from armpit to armpit for tops and coats, length from the collar seam or waistband, and for shoes the inside length of the sole. Bags need height, width and depth. The AI can turn the numbers into a sentence, but do any doubling or unit conversion in the sheet. A pit-to-pit figure of 58 cm becomes 116 cm around only if someone multiplies it, and you don't want that to be a guess.
The intake prompt: fixed fields, quoted labels, flagged doubts
A free-form request such as "write me a listing" invites flattery. A fixed set of fields forces the AI to quote what it can see and say so when it can't. Keep it as the standing prompt in a single ChatGPT or Claude project, so everyone who runs it uses the same version:
You are helping a charity thrift store draft online listings. A member of staff checks everything before posting.
I will send photos of the front, back, labels, flaws and scale, then staff notes. Return exactly these fields:
BRAND: the text exactly as printed on the label, or UNREADABLE. Never infer a brand from a logo or style.
ITEM: what it is, in plain words.
SIZE: as printed on the label, or NOT SHOWN. Give measurements only if staff supplied them.
COLOUR:
MATERIAL: as printed on the label, or NOT SHOWN.
CONDITION: only flaws visible in the photos or listed in staff notes. Never write "excellent" or "like new".
TITLES: three options, 80 characters or fewer.
DESCRIPTION: under 120 words, facts only. Never write authentic, genuine, rare, vintage, designer, waterproof or working unless the label or staff notes say so.
PRICE RANGE: low, likely and high in USD, labelled "unverified guess".
FLAGS: anything staff should check. Write NEVER LIST for child car seats, helmets, cots, mattresses, cosmetics, or electricals not marked "tested".
Staff notes: [paste]
The AI's own character counts are unreliable, so don't trust the count it reports beside a title. Put the titles in the sheet and check them with =LEN(), flagging anything over 80. eBay's title limit is 80 characters, and other marketplaces set their own, so check the limit for the one you use.
What to do when the label is unreadable
UNREADABLE is a good answer, and it deserves a routine instead of a shrug. First, retake the label photo with the garment flat, the label under a window or a lamp, and the phone close enough to fill the frame. If the print has worn away, look for a second label: a care label, a hangtag, a stamp inside a pocket, a sewn-in tag at the collar. A style number printed on any of them can be typed into the marketplace's search to find matching sold listings. If every route fails, list the item as unbranded and describe it by what you can see, or send it to the shop floor. An unbranded item priced honestly beats a branded one that turns out to be something else.
One donated jacket from photos to listing
The jacket arrives in a bag of outdoor clothing. Five photos are taken, and a volunteer adds staff notes: "flat chest 58 cm pit to pit, length 74 cm, zips run smoothly, no odour, faint mark on left cuff". Here is the AI's first pass, with the brand names swapped for placeholders:
BRAND: [Brand A] (logo on chest)
ITEM: Men's waterproof hooded jacket
SIZE: L
COLOUR: Green
MATERIAL: Gore-Tex shell, 100% nylon
CONDITION: Excellent used condition
TITLES: 1) [Brand A] Men's Gore-Tex Waterproof Hooded Jacket Size L Green
DESCRIPTION: A premium waterproof jacket from [Brand A], ideal for hiking and everyday wear.
PRICE RANGE: low $90, likely $115, high $140 (unverified guess)
FLAGS: none
It looks professional, and five things in it are wrong or unsupported. The check is a walk through the photos with the draft beside them:
| Field | The draft said | What the check found | Fix |
|---|---|---|---|
| Brand | [Brand A], from the chest logo | The sewn-in label reads [Brand B]. The logo is a similar mark | Quote the label: [Brand B] |
| Material | Gore-Tex shell, 100% nylon | The label says shell: 100% polyester, and names no membrane | Shell: 100% polyester |
| Waterproof | "waterproof" | The care label says water-repellent finish | "Water-repellent finish, as labelled" |
| Condition | Excellent | Faint mark on the left cuff, light wear at the hem | "Good used condition", with the cuff mark described |
| Price | $90 to $140 | See the sold-listings check below | $30 to $55, likely $43 |
The brand error matters most, because it moves the price by a factor of two or three. A volunteer who recognises the logo reads no further. A rule on the wall helps: "Read the sewn-in label and the hangtag, never the logo." The final listing, checked by a second person:
[Brand B] Men's Hooded Water-Repellent Jacket, Size L, Green
Men's hooded jacket by [Brand B], size L as labelled. Flat measurements: chest 58 cm pit to pit (116 cm around), length 74 cm. Shell: 100% polyester with a water-repellent finish, as labelled. Zip front and drawstring hood. Good used condition: a faint mark on the left cuff (photo 4) and light wear at the hem. Our staff noted no odour and smooth zips. Donated to [store name]; sold as seen.
The title lost three words on the way. An earlier version ended with "Good Used Condition" and, with a nine-letter brand name in place, ran to 81 characters, one over eBay's limit. The =LEN() column caught it, and the condition moved to the description, where it is spelt out in full anyway.
If your listing says where the money goes, the wording must match your finance policy. "All proceeds support [cause]" and "proceeds after costs support [cause]" are different promises, and the AI will pick the more generous one unless you give it the exact sentence.
Eight donated items: what the checks caught
A morning's batch shows the pattern. Every one of the eight needed a person to decide something, and none of the drafts reached a buyer unchecked:
| Item | The draft said | The check found | Outcome |
|---|---|---|---|
| Men's jacket | Wrong brand, material and price (above) | Label read; sold listings checked | Listed, after edits |
| Set of mugs | "Set of 6" | The photos and a count by hand show 5 | Listed as a set of 5 |
| Vinyl record | "Rare first pressing" | Nothing in the photos supports it | Held for a specialist volunteer |
| Handbag with a luxury logo | "Authentic" | The AI can't authenticate, and the stitching can't be judged from a photo | Held for a second check |
| Child's cycling helmet | NEVER LIST flag from the prompt | Rule working as intended | Not listed |
| Dress with no size label | Size 12, "guessed from the photo" | No label. Staff measured it flat | Listed with measurements instead of a size |
| Table lamp | "In working condition" | Untested. A volunteer powered it on and it works | Listed as "tested working by staff" |
| Electric kettle | NEVER LIST flag (untested electrical) | The shop has no safe way to test kettles | Not listed |
Four listed, two held and two not listed. The tally is worth keeping each week, because the held pile tells you whether you need a specialist volunteer, and the not-listed pile tells you whether the triage rule on the wall is clear. A second tool exists for sellers on eBay: its own Magical Listing feature drafts a listing from a photo inside the app. Trade-press coverage and seller reviews report that it can misidentify items and leaves many clothing details, such as fabric and fit, for the seller to fill in, and the seller still answers for what the listing says. The same checks apply, and the tutorial on testing its item specifics against sold data shows how.
When a lot beats single listings: twelve hardbacks
Not every donation should be listed one piece at a time. A donor leaves twelve matching hardbacks from one series, each worth about $4 on its own. Listed singly, each takes about 5 minutes to photograph, draft, check and post, which is an hour of bench time for $48 of potential sales, or $0.80 a minute. Listed as one lot with a single set of photos and a single check, say eight minutes of work for a $30 sale, it earns $3.75 a minute. The lot takes less money for the same stock but uses far less of the bench's time, and the stock leaves the building.
The AI helps with the lot's description: ask it to list the titles it can read from the spines, then count them yourself, because a lot described as twelve that holds eleven brings the same dispute as the mug set. The same sum, value per bench minute rather than value per item, is a handy test for every borderline donation. Both sets of figures are invented, so use your own average time per listing, which the intake sheet will give you after a fortnight.
Price ranges: treat the AI's number as a question
The AI's price range comes from patterns in text it has seen, not from what sold last week. In the jacket's case it was out by a factor of two or more. Check it in five steps:
- Search your marketplace for the exact brand, item type and size, and filter to sold items. eBay's Seller Hub also has Product Research, which is free to all sellers.
- Record the ten most recent sold prices for items in the same condition.
- Take the median, the middle value, with =MEDIAN() in the sheet.
- Price at or just below it. If you find fewer than five comparable sales, write "price unknown" and hold the item for a second opinion.
- Write the source and date in the sheet, so a later check can see where the number came from.
For the jacket, ten invented sold prices were $32, $35, $38, $40, $42, $44, $45, $48, $50 and $55. The median is $43, the average of the middle two (42 and 44). The AI's likely price of $115 was about 2.7 times that, and a listing at that figure would have sat. Listing at $42, just under the median, follows step 4. After fees and postage, that sale still has to beat the shop-floor price by your threshold, so check your marketplace's current fee page before you decide an item belongs online. For a faster way to price donated items on the shop floor, charity shop pricing with AI covers that side.
Condition notes only a person can write
The AI sees a photo. It can't smell the coat, feel a fastener stick, or hear the speaker crackle. So a good intake sheet splits the condition note into fields that say who is responsible for each:
| Field | Who fills it | Examples of what goes in it |
|---|---|---|
| Odour | Staff, by nose | None, smoke, mould, perfume |
| Marks and stains | Photo, then staff confirm | Location and size: "faint mark, left cuff, about 1 cm" |
| Wear | Staff | Cuffs, hems, soles, corners, hinges |
| Function | Staff, tested | Zips run, buttons present, lamp powers on |
| Missing parts | Staff | Odd lid, no charger, one earring |
| Cleaned? | Staff, only if true | Laundered, wiped, or sold as received |
Two phrases are banned from every draft: "smoke-free home" and "pet-free home". A thrift store doesn't know the donor's home, and the claim would be invented. For a ready-made layout, the eBay description template for flaws and measurements goes into more detail.
The intake sheet that keeps volunteers honest
One row per item, with the ID stuck on the item and in every photo's file name. The columns that matter are who checked, what the price rested on, and what happened. This is the invented sheet for four of the morning's items:
| ID | Item | Brand (as on label) | Checked by | Status | Price rests on |
|---|---|---|---|---|---|
| T-0412 | Men's hooded jacket, L | [Brand B] | AK | List at $42 | 10 sold listings, median $43 |
| T-0413 | Mugs, set of 5 | Unbranded | AK | List at $14 | 6 sold listings, median $14 |
| T-0414 | Vinyl record | Label as printed | Pending | Hold | Needs a specialist |
| T-0415 | Child's cycling helmet | n/a | JM | Not listed | Never-list |
The initials make the check real. A listing with a name next to it gets read twice, and when a buyer disputes a description, you can see who verified it and from what. One rule keeps it honest: the checker is never the person who photographed and drafted the item. Fresh eyes catch the cuff mark that the photographer stopped seeing.
Photo limits and costs on each AI app
This workflow sends a lot of images, so file limits matter more here than in a text-only job. As of late October 2026, OpenAI's file-upload help lists 3 uploads a day on the free plan and up to 80 files every 3 hours on paid plans. Whether photos count the same way as other files isn't clear from that page, so test your own plan before you rely on it. Claude accepts up to 20 files per chat, and Gemini's app takes 10 files per prompt. Five photos per item fits all three, but it argues for one chat per item, which also stops details leaking from one donation to the next.
If one staff member runs the prompt, the $20-a-month individual plans (ChatGPT Plus, Claude Pro) cope with a bench doing 40 listings a week, though vendors change prices. If several people will run it, a business tier gives each of them a seat under the shop's control. ChatGPT Business and Claude Team cost $25 a seat when billed monthly, with two seats as the floor, and business content stays out of model training by default. Individual plans are generally meant for one person, so read the terms before a rota of volunteers shares one login. Either way, delete photos from personal phones once they are in the shared folder.
A bench card volunteers can follow without asking
Everything above compresses into a card that sits by the phone stand. Keep it to one side of paper, and change it whenever the checks catch something new:
- Triage first. If it's on the never-list or the shop-floor list, stop here.
- Check pockets, remove personal items, wipe any device.
- Take the five photos, and name each file with the item ID.
- Measure flat, and say the numbers aloud for the notes.
- Run the intake prompt, one chat per item.
- Read the sewn-in label and the hangtag, never the logo.
- Check the price against ten sold listings. Fewer than five comparable sales means hold.
- Pass the sheet to a second person to check. They sign, then it posts.
New volunteers will break a rule or two in the first week. That is a signal to reword the card, not a reason to loosen the checks, and the held pile tells you which rule needs rewording. The wider job of getting volunteers settled is covered in volunteer onboarding for charities.
Is the bench getting faster without getting sloppier?
Five tallies answer that, and all of them come from the intake sheet and the marketplace's order history:
- Items listed per volunteer hour: listings published divided by bench hours. You want it rising while corrections stay flat.
- Corrections after posting: listings you had to edit because a claim was wrong. It should fall towards zero.
- Buyer disputes: returns or complaints that say the item wasn't as the listing described. Zero, or close to it.
- Price accuracy: the sold price against the price you listed at. Set your own tolerance and watch for drift in one direction.
- The held pile: items waiting for a second check. It should clear within the week.
The time sum is simple. If a volunteer lists 6 items an hour by hand and 10 with drafts and checks, a 40-item week takes 6.7 hours instead of 4, which frees about 2.7 hours. Those rates are invented, so time your own bench for a fortnight before and after. If corrections rise as speed does, slow down: the checks are what the process is for.
Questions thrift store managers ask about this
Can AI authenticate designer items from photos?
No. It can read what is printed on a tag, but it can't tell a genuine item from a convincing copy, and a confident 'authentic' in a listing is a claim you would have to defend. Hold luxury-brand items for a second check by someone who handles them regularly, or by a specialist authenticator, and decline to list anything you can't stand behind.
Should the listing mention that the item was donated?
If you want to, say it plainly and say what the sale supports, using wording your finance lead has approved. 'All proceeds' and 'proceeds after costs' mean different things. Don't let the AI write that claim, because it will round up. Many shoppers like the story, but the item facts matter more.
How many photos does each item need?
Five covers most items: front, back, the labels, a close-up of any flaw, and one with a tape measure for scale. Marketplaces allow more, and eBay accepts up to 24, but extra photos help only when each answers a question a buyer would ask.
Can volunteers use their own phones?
They can, if your policy says how. Photos should go straight into a shared folder rather than a personal camera roll, any AI account should sit under the shop's control rather than a volunteer's personal login, and the photos should be deleted from the phone after upload. Keep donors' personal items out of the frame.
Further reads
- Charity Appeals and Social Posts With AI That Keep Your Voice — Posts that tell supporters where sale money goes, in your own voice.
- How to Write an AI Policy for a Small Charity — The short AI policy a charity can hand to staff and volunteers.
- AI for Marketing Content: A Vintage Clothing Seller's Weekly Drop — Weekly drops and posts for a second-hand clothing seller.
- Charity AI Risks: Data Protection, Deepfakes, and Donor Trust — Data protection and donor trust risks to know about.
- Game Store Software: Trade-Ins, Tournaments and AI Product Listings — Game store software compared on trade-ins, event sign-ups and listings, with price-sheet and event-fee sums and the AI jobs worth doing.
- Record Store Software: Catalogue Used Vinyl and Track Stock With AI — A one-row-per-copy sheet, a shared grading standard, AI-drafted listings and a pricing check you do yourself, worked through on a 40-record box.
- AI for Antique Shops: Can It Date or Value Stock? What Is Safe — AI cannot authenticate, date or value stock, but it can draft listings, organise research and sold prices, and word provenance honestly. Here is the line.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: trade-press coverage and seller reviews of eBay's Magical Listing tool (seen in search results, October 2026); eBay's title, photo and Product Research help; OpenAI, Anthropic and Google help pages on file limits (late October 2026). Items, prices and sold-listing figures in the examples are illustrative.