Reading nearly 5,000 customer reviews would take more time than Old Bones Therapy Founder Brandon Fields has in a day. So he built something to read them for him, and the approach is one almost any brand could copy.

Old Bones is a 10-year-old bootstrapped compression brand for people whose knees, feet, and backs have started acting up. Fields started it in his garage and now sells more than 100 products. Reviews of them keep rolling in, on Judge.me, in Instagram replies, in Facebook comments, and most were never read past the star rating. They piled up faster than one person could sort them.

Fields is not short on creative help. He has a creative director, Nicky, who builds the ads and writes the hooks, and two agencies handle execution. What Old Bones never had was anyone whose primary job is digging through a decade of reviews for the handful of lines that other brands commonly build ads around. On a team this lean, that seat never made the budget.

So Fields built a digger he calls the Gem Vault, using Claude Code, Anthropic’s AI tool.

He did not buy an app. He wrote one, and it lives as a tab in the internal dashboard he already runs Old Bones’ marketing from, the same screen where he watches ad spend across Meta, Google, and Reddit.

The Gem Vault runs on a library of every review Old Bones has ever collected. Each review is scored and tagged, so Fields can filter for the strongest reviews for a given campaign and get a creative brief in seconds. A review that scores 9 or 10 is what Fields calls a gem,” or ad-grade.

What lands on Nicky’s desk is the finished creative brief instead of a blank page. 

What the Gem Vault changed

Before the Gem Vault, surfacing one usable gem meant cross-referencing nearly 5,000 items by hand. Now he sets a couple of filters and sees 10 to 20 gems in seconds.

My best testimonials weren’t missing. They were buried,” Fields told me. 96 percent of them were more than 90 days old. The system didn’t write better reviews. It found the ones I already had and couldn’t see.”

Any brand with a few years of reviews sits on the same buried inventory. Almost none of them dig.

Old Bones has more than 100,000 customers and spends tens of thousands a month on Meta and Google ads alone, so the gap between a line that carries an ad and one that falls flat is real money.

The Gem Vault dashboard: 4,945 scored reviews, a score distribution, and the awareness funnel, filtered here to the 650 tagged as athletes. This is the library Fields queries in seconds.

The workflow is now a loop. Fields queries the library and generates creative briefs on a regular cadence, and he was confident enough in it to hire his first content producer, Joey, in mid-July. Joey produced his first ad that week. For Old Bones, AI is adding jobs.

Do the gems” work? 

Four months of mining is one thing. Proof that the mined language moves anybody is another, so on August 5, Fields ran an A/B test.

Same founder video, same budget. Half the traffic went to a standard product page. The other half went to a landing page built out of the mined review language, with customers’ own sentences doing the persuading. Nothing else about the two differed.

Three weeks and about $4,500 in real spend later, the review-built page had pulled 47 percent more adds-to-cart at roughly a third lower cost per ad, and returned about 9 percent more revenue per dollar spent.

But both sides finished with exactly the same number of purchases.

The review-built page wins the argument and then hands the entire advantage back somewhere between the cart and the checkout,” Fields told me. That’s a real finding rather than a hedge. The language did its job, and it exposed a problem downstream that I now get to go fix.”

Better selection fills the cart. It does not fix whatever is going wrong between the cart and the register. Both pages are still live: the review-built landing page at oldbonestherapy.com/pages/knee-feels-unstable, the control at oldbonestherapy.com/products/compression-knee-brace.

An ad Fields’ team built from a review the Gem Vault surfaced and flagged, live this summer. 

The workflow: five steps

Nothing here depends on selling compression sleeves.

Step 1: Get every review into one library

Everything customer-written flows into one library: product reviews from Judge.me, plus comments and replies from Instagram and Facebook. You can start this by hand. Most review platforms let you export to a spreadsheet, and for a first pass, that is all an AI needs to read them.

Fields went a step further. 

He had Claude write small programs, called connectors, that pull each platform’s reviews automatically and refresh the file on a schedule, so the library rebuilds itself without him touching it. Those refreshes run on Railway, an inexpensive cloud service that keeps tasks on a schedule. Under the hood, there is no database, just a JSON file (a plain text file structured so software can read it), with one entry per review and each carrying the full text, the customer’s name, the product, and the date. 

The library has nearly 5,000 entries, and 83 percent of the reviews he pulled were a year old or older.

The real build was iterative inside Claude Code, so there was never one magic paragraph. But here is a clean starter prompt that captures it, and that you could paste into Claude Code or any AI coding assistant to stand up the same feed. 

Copy and paste this:

I want a small service that collects all my customer reviews into one file and refreshes itself automatically. Pull reviews from my review app (for me that’s Judge.me) through its API, plus comments from Instagram and Facebook if available. For each review, save the full text, customer name, product, date, and source into a single JSON file, one entry per review, skipping duplicates. 

Then walk me through scheduling it to run once a day on Railway (or any always-on host) with a cron job so the file refreshes without me running it by hand. Assume I’m not a professional developer and explain each step.

Step 2: Score every review with AI

Every review runs through a scoring pass powered by Claude. The useful trick here is that Fields does not use one model for everything. Cheaper models handle bulk work and pricier ones handle judgment. A fast, inexpensive model (Claude Haiku) handles the high-volume grunt work, tagging each review’s customer type and sentiment. A mid-tier model (Claude Sonnet) does the actual 1‑to-10 scoring. The most powerful model (Claude Opus) is reserved for the heavier strategic reads he runs far less often. Matching the model to the job is what keeps scoring thousands of reviews cheap enough to run on a schedule. 

The scoring model

The scoring model rates each review 1 to 10 (using the prompt below) on emotional punch and ad-creative potential, tags the sentiment, names a suggested use, and assigns an awareness level and a buyer persona. A 9 or 10 represents ad-grade,” meaning the line could carry an ad on its own. That single pass flagged nearly 1,200 ad-grade lines out of the whole library, the shortlist Fields would otherwise have to find by reading all night. 

Here’s the prompt.

Tweak it for your own business. The instruction that does the real work is the one about the before-state.

You are a UGC analyst for a consumer brand. Score each customer review for its

value as a marketing asset and classify it for ad targeting. Return one JSON

object per review:

{

testimonialValue”: <1–10, where 10 = exceptional testimonial>,

sentiment”: positive” | neutral” | negative”,

emotionalResonance”: high” | medium” | low”,

adCreativePotential”: high” | medium” | low”,

suggestedUse”: “<ad testimonial, social proof, PDP…>”,

awarenessLevel”: “<one of Eugene Schwartz’s five stages: unaware,

problem-aware, solution-aware, product-aware, most-aware>”,

persona”: “<which of your core customer segments this speaks to>”

}

Score on specificity and emotion: a 9–10 tells a concrete, emotional before/​after

story; a 5–6 is a generic compliment; a 1–2 is spam or unusable.

For awarenessLevel, classify by the BEFORE state the story describes, not the happy

ending (every review has a happy ending). Ask: Which stage would this resonate with

if you ran it as an ad? Tune each stage’s definition, and your persona list, to your

own category and customers.

Return ONLY the JSON array.

Feed it real reviews, and the signal comes back clean:

Three real verified-buyer reviews and exactly what the scoring pass returned for each, scored by Claude Sonnet 4.6. The comment it rejects, a genuine Congrats, ruling as usual” from Instagram, scores a 7 and never reaches the ad-grade shortlist: real warmth, no story behind it.

Step 3: Sort by where the buyer’s head is

The same pass tags every review with one of five classic awareness levels, from Eugene Schwartz’s 60-year-old ladder: Unaware, Problem-Aware, Solution-Aware, Product-Aware, and Most-Aware. 

It also assigns one of six buyer personas Fields defined for his category: 

  • Skater
  • Active-50
  • Worker
  • Athlete
  • Recovery
  • Everyday

Now every review sits on three axes: a quality score, an awareness level, and a buyer persona. None of this requires new code for each request. The three axes are filters, the same idea as sorting a spreadsheet or narrowing an online store by size and color. 

Fields sets the values he wants, say a minimum score of 8, a problem-aware level, and the Worker persona, and the library hands back only the reviews that match. He is querying one library in different ways, not building anything new. 

Why sort by awareness at all? A five-star rave can come from a skeptic who almost gave up or from a loyal repeat buyer, and those are two very different ads. Sorting by the moment of pain the customer describes, which is what the awareness level captures, is what makes the library usable instead of a wall of five-star praise. 

You can hear the levels in the customers’ own words.

The unaware buyer who had given up: Dr. basically says, welp that’s just your knee now” (Brian McDonald, 48). 

The problem-aware buyer still in the fight: At 53 I have plantar fasciitis and significant damage in my feet. I skate 4 days a week. These are a miracle” (Andrew Grabowski, verified buyer). 

The solution-aware buyer who had tried everything: I put these on and I started crying, I got my knees back, I could skate again” (Marcel Martin, verified buyer). 

Same product, three different stories, three different ads. 

The five awareness levels, sorted from real customer language. The buckets cover the reviews tagged so far; the newest are still queued.

Step 4: Generate the brief a designer can build from

Fields picks an awareness level and a persona, and the library pulls the matching gems from Step 3. Those real quotes go to Claude with a standing set of instructions, and Claude writes the creative brief: five or more hook variations, the verbatim customer quote behind each hook, notes on format and tone for that audience, and a short do NOT” list so nobody breaks brand voice or makes a claim the company cannot back. 

Nicky opens the brief and starts building. No blank page, no guessing, every angle grounded in something a real customer said.

A finished brief for the Unaware buyer, That’s Just Your Knee Now.” Five hooks, the verbatim quote behind each, format notes, and a do-NOT list.

Step 5: Keep it fresh on its own

The trap with a library like this is recycling the same three gems until they wear out. So every gem used in a brief goes on a 90-day cooldown. Its ID and the date get written to a small log file, and the next batch automatically skips anything used in the last three months. After that, the gem returns to the pool. Nothing is retired for good; it’s just rested. The library does the remembering so Fields does not have to, and it gets more useful as the pile grows.

The part you can’t copy in an afternoon

So what is the hard part, if the prompt is a paragraph you could lift over lunch?

Not the code. Fields is a former software engineer who quit his day job three years ago at 50 to run Old Bones full time, so he is at home in Claude Code and VS Code, and the build came fast. He is also the first to say the engineering is the least transferable part of this, and the least important.

What does not copy that fast is the judgment baked into the scoring, telling an ad-grade line from a warm-but-empty one. Look at the comment the scoring pass throws out, the Congrats, ruling as usual” that scored a 7: real fan, real warmth, no story, so it never reaches the shortlist. Anyone can make that call once. Something that does it the same way thousands of times, against a decade of your own customers’ words, is the part worth having.

Everyone says use testimonials,” Fields said. The system scores all of them so you can tell the line that will carry an ad from the line that won’t. The win is in the selection, not the idea.”

And the asset compounds. A competitor can copy the paragraph in an afternoon and still not have a decade of real customer language, scored and tuned to one brand’s voice. That part took years to accumulate, and it refills every week.

What to steal from this

Your best ad copy is already written by your customers and sits in your review history. You just have to find the few lines that can carry an ad and know which buyer each one is for.

You can start without any AI.

Pull your last 50 reviews into one document and read them with a single question in mind: Could this line alone stop a scroll? By the tenth one you’ll feel the gap between a 9 and a forgettable 5. That feeling is the judgment you’re trying to scale.

Add AI when you’re ready. Use the setup prompt to gather the reviews automatically, then the scoring prompt to grade them, so that same judgment runs across thousands of lines instead of fifty.

Then point it at your next pile. Once it works on reviews, aim the same method at whatever else you can’t sort by hand. Fields pointed it at his creative asset library, 10,000-plus images and videos scored for how usable each one is. For you, it might be support tickets, survey responses, or sales call notes.

One habit worth copying: Fields never treats the first answer as the final one. He ends his prompts with Let’s discuss” and works the follow-ups. It’s the second or third question that gets you the best material,” he says.

The Gem Vault runs its schedule whether or not Fields is watching. The week we talked, he was at a skate camp in the Sierras, 53 years old and dropping in beside a pack of 10-year-olds. Old bones, still moving. The research keeps running while he skates.

Related

More data from the AI Lab.