‹ all projects
Confidential client

Real-time recommender for Amazon sales

My main project: a system that merged our marketplace data with public sources and told each salesperson when and where to act, delivered entirely over email: briefings out, commands back in the replies. It found money in the noise the reps had no time to mine.

mlrecommenderetlweb scrapingsales
Real-time recommender for Amazon sales

There was no pain

Nobody was in pain, which is the honest place to start. The data science team wanted to prove it could add value; the sales team wanted to invest in innovation; nobody had written down a goal. What I saw were salespeople doing the same dull checks over and over. Usually one rep covered one brand in one country, and every morning that rep spent up to two hours pulling numbers from a dozen places just to know what had shifted on the marketplace overnight: their rank, a rival’s price, a stock-out, a promotion. The signal was sitting there. Nobody had the hours to mine it.

The Data Science Director asked for the project and managed it; the Ecommerce Sales VP put his name behind it as sponsor. I ran it as product owner for the people who would use it day to day, the marketplace sales team, with a team of five under me: a scrum master, a senior architect, a developer, a junior, and a data analyst. Sixteen months ran from the first proposal to a live rollout across several brands and countries.

Under the hood the system merged our own marketplace data with public, scraped sources and did four things with it: it pulled the numbers reps used to gather by hand, surfaced the products the market was already searching for, flagged competitors’ stock-outs as windows to push our own visibility, and matched us against rivals by search rank, price and keywords.

Scrape the storefront Ingest sales & margin Map us ↔ rivals Flag events Brief the reps

The interface was email

I built it to move fast, so I put the interface where the reps already lived: their inbox. A proper internal web service would have meant queueing for sign-off, and sign-off would have killed the pace. Email needed no approvals. Every morning the system sent a briefing, and it read the replies that came back. Each suggested action carried a command code, so answering a mail was how a rep pushed a command into the pipeline. No user-facing app to get signed off, no UI to host; the inbox everyone already had was the app.

Running the team taught me a separate lesson. My five included an external “senior” consultant, and at one point I had to face that he had placed the web server for our MVP inside a serverless Azure function. That was a funny situation to manage.

How it grew

Automation was earned one stage at a time, and each stage shadowed what the reps already did before it took anything over. First the lookup: collect the data they searched for by hand every week and have it assemble itself overnight. Then the noticing: catalogue the situations a rep would catch in that data, a quiet price cut, a listing that vanished, and detect them automatically. Then the playbook: record how reps reacted to each situation and attach those reactions to every insight as a ready-made suggestion. The last stage, learning from the replies to see which reactions could safely become automatic, was only just beginning when I handed the project on.

What the reps did with it

The insight they thanked me for most was the sudden price cut, the kind nobody on our side controlled. The system caught it overnight, and the next morning a rep could call the marketplace and ask for the proper promotional label to pull in more shoppers. A small move, real money.

A reply was the whole command: a code in the subject line, and "ask the marketplace for a promotional label" confirmed straight back to the pipeline

According to the survey, everyone read the briefing avidly. Not everyone was comfortable saying what they did next: some reps feared the tool was there to replace them. It had its own name and a one-page brief inside the company, and it shipped with a pilot feedback form. One response survives, scoring it near the top on most of nine questions. One response is not a chorus, so I will not call it one.

Open the inbox

The production version sits behind a corporate wall, so the demo is a working stand-in: a mail client I call Trade Desk. It opens on the 7 a.m. briefing, an inbox of overnight signals: price-matching cuts, competitor promotions, a lost buy-box, a vanished listing, a drop in share of search. Each is ranked by the weekly sales it puts at stake. Open a keyword and it shows what the scraper saw that morning, every listing’s rank, price and promo badge against yesterday.

Open a keyword and Trade Desk shows the morning's page one: each listing's rank, price and promo badge, compared with yesterday

Launch the interactive demo

Trade Desk opens on the 7 a.m. briefing: an inbox of overnight signals, each ranked by the sales it puts at stake. Scrub the fourteen simulated days and the inbox recomputes; open any signal for its price-and-rank history and the reply a rep would fire back, command code in the subject line. Every brand, product and figure is invented.

What it saved, and what came after

The reps were losing something like ten hours a week each to that manual gathering, across roughly twenty people. Take out holidays and overlapping responsibilities and it adds up to about four thousand hours a year the automation gave back. That is my estimate, not a stopwatch. The guidance also made market knowledge portable: a new rep could start from a map that had not existed before, skipping a year of accumulated feel. It ran across several brands in six countries.

Then the team reshuffled, hard. Two of the people driving it left within months of each other: the VP behind the project, and my dotted-line manager, who had total control of the marketplace data. The insights themselves survived, folded into our internal BI tool. Whether the email channel kept running once I was gone, I could not tell you. By then I had married, and we chose to move to another region, which meant leaving the company.

What I’d do differently

Two things. I would have centred the MVP on the products with known issues instead of trying to prove value across the board; the hard cases were the interesting ones, and starting there would have delivered faster and shown more. And I would have pushed for a real web app. Email got us moving, but it made collecting feedback from users a chore, and I never got the clean read on adoption that a proper interface would have handed me.

next project: ML lead-scoring & sales-strategy recommender →