All case studies
Case study

A promotional-products franchise ditched a costly rented pricing tool for one it owns

A company that runs a promotional-products franchise network used to pay for a pricing tool it could never actually own. Rian rebuilt it from scratch, handed over every line of source code, and made it four times faster in the process.

What changed

  • The company never had the code behind its own pricing tool. Now it does, fully in-house.
  • A shipping-rule change that used to mean a call to the old vendor, plus added fees, now happens in-house, the same day.
  • Checking prices against rivals used to take about 80 minutes for a batch of 100 products. Now it takes 20.
  • Matching the same product across three different listings used to mean a person eyeballing photos and names. Now it happens automatically.

Problem

For years, the company ran its price checks through a tool an outside developer had built for them. The tool worked. It pulled listings from a rival's site and a big marketplace, matched them against the company's own catalog, and dropped the results into a spreadsheet. It tried to match the same product across sites automatically, but the matches were unreliable enough that someone still had to eyeball the results before the report went anywhere.

The bigger issue was that the developer had built it to be hard to touch. It shipped as a compiled program with no source code included, so any new rule, any new site to watch, meant a call to the vendor and a wait.

It was slow, too. A batch of 100 products took 82 minutes on average, because the tool worked through everything one item at a time instead of running things in parallel. And for the big marketplace listings, it hit pages directly instead of going through any official channel, which made it both slower and more likely to trip a block.

When the vendor raised its maintenance fee again for a change that should have taken an afternoon, the company started looking for someone who'd build them something they could actually own.

"We couldn't even see how the thing worked behind the scenes," said Melissa, E-commerce Operations Manager. "If we wanted anything changed, we called them and waited."

Solution

The tool the company had wasn't really broken. It just wasn't built for them to touch. The visible problem was speed. The real one was that the company didn't have the code behind a piece of software that ran a part of their business.

A crawler that acts human. The rival's site and the company's own catalog use completely different page structures, so the crawler needed separate logic for each one just to find a price. Search terms had to be broken into keywords and searched the way a person would, since the same item often carries a different name on every site. For the big marketplace, that also meant switching from scraping pages directly to using its official search interface, which was faster and far less likely to get flagged.

Matching products that don't share a name or a photo. A semantic text comparison model, tuned for the kind of short, cluttered product titles this industry uses, gets a first read on whether two listings are the same item. A second, blended check compares the product photos: a deep-learning visual match carries most of the weight, with a geometric feature check and a basic color comparison filling in the rest.

Designing around bot management tools. A few weeks in, right before the tool was supposed to go live, the rival's site and the wholesale catalog it pulled from both started blocking the crawler outright. Rian rebuilt the crawling logic from the ground up: randomized timing between requests, rotating browser identities, a real browser engine instead of a bare script, and a rotating pool of proxies. Rian looked at using a general-purpose AI model to handle the human-like searching and decided against it, on the theory that hand-built logic would hold up better over time.

Full source code, this time. Unlike the old tool, everything shipped with the source included. Rian trained the team directly, recorded a walkthrough video, and put together a written guide before handing it over.

Result

The company owns the tool now, not just a login to someone else's software. Every rule change or new site to track starts with the team's own staff, not a phone call to a vendor.

Price checks that used to take about 82 minutes now take 20 minutes. Rebuilding the crawler to run in parallel, tuned differently depending on how many products are in a batch, is what did it.

Matching the same item across listings is no longer a judgment call. The combined text-and-image check gets it right about 93 times out of 100, even when a product's name and photo look nothing alike from one site to the next.

Anything the matching model isn't confident about still gets flagged for a quick human look before it lands in the report, rather than being approved automatically. The company's next ask is to fold a third competitor's site into the same tool.

"I ran the first real batch and just watched the numbers fill in, row by row," Melissa said. "That's when I believed it."

More reading

Case study

How Ocean's Halo stopped losing track of its own packaging

Ocean's Halo ran its packaging supply chain across spreadsheets owned by three companies, retyped by hand at every handoff. One dashboard now shows what needs attention, and the plants and the supplier enter their own numbers.

Research

Where the drawings stopped matching the plant

Every operation has documentation that stopped being true at some point. This is a method for finding that point: extracting entities from records, building a graph of what should be, and reading the divergences against what is.