ShiftKit: the post-mortem

Karim Elsahy 5 min read Post-mortem ShiftKit

ShiftKit launched in May 2026 and closed on September 8. $68.58 spent, 939 merchants reached, one real reply, zero revenue. What was built, what the numbers say, why it failed, and what the machine proved anyway.

ShiftKit launched in May 2026. I closed it on September 8. $68.58 spent, 939 merchants reached, one reply, zero revenue.

I have never written a post-mortem before, in sixteen years of starting things, and that is a finding in itself. This is the first.

How it was found

ExAutomatica, my venture factory, runs a job every night: research the MENA market, score the ideas, send me the top three with my coffee. Nine sprints, ninety ideas. One pattern: the best opportunities in the region were platform and regulatory shifts, where someone else’s deadline does the selling for you.

Two Meta changes stood out. WhatsApp marketing messages in Saudi went up three to four times in price on April 1, while utility messages stayed cheap, so every merchant running campaigns was suddenly overpaying and most did not know it. And WhatsApp usernames were rolling out, which quietly breaks any merchant system keyed on phone numbers. The second idea scored 86, the highest the pipeline has produced to date. I picked it, folded the first one in, and ShiftKit became six fixes for what Meta had broken, with a free audit as the door.

The signal was real. That is not why it failed.

What got built

  • A crawler over Salla, the main Saudi e-commerce platform, plus Crunchbase pulls for the Gulf and Egypt: 6,974 merchants in a database, every address run through a verifier before anything was sent.
  • A research and writing loop. For the top tier, the agent read the store, formed an opinion about it, and wrote one email about that store, in Arabic where the store was Arabic. Not a template with a name swapped in.
  • A dispatcher with a dry run before every real send: no unresolved placeholders, opt-out header present, booking link working. A ledger so no merchant was contacted twice and daily caps held. A kill switch.
  • Reply classification every fifteen minutes, with an automatic stop on any opt-out. LinkedIn follows. Monitoring. A daily report to my phone.

All of it was run by Mercury, our marketing agent. I approved; he found, wrote and sent. Deliverability stayed clean the whole way: bounce rate never above 0.4%, open rates between 48% and 60%.

The numbers

Merchants in the database6,974
Verified deliverable addresses3,828
Merchants actually reached939
Genuine human replies1, negative
Consultations booked1, did not close
Revenue$0
Total spend, all time$68.58
Open rate48-60%

The one reply, June 21, a Saudi merchant, in Arabic: “I didn’t understand what you need or even who you are.”

Why it failed

Start with the real one. It is one thing to run a boring business when you don’t find it boring. It is another to run a boring business that you think is boring. I have done the first before and loved it. This one I just couldn’t connect with and couldn’t focus on. Everything below follows from that.

1. We ran outbound before the product existed. That was my call. Nine hundred merchants opened an email, some clicked, and landed on a promise. The build dependency sat unresolved for weeks. Mercury flagged it in his reports. I let the campaign run anyway. A 50% open rate with zero revenue is not a copy problem or a targeting problem. It is a product-that-is-not-there problem.

2. We ignored the most important sentence in the campaign. “I didn’t understand what you need or who you are” arrived in week one. The right move was to stop and rebuild the offer around that sentence. Instead the copy got sharper for two more months. When a stranger takes the time to reply to a cold email with confusion, that is data, not noise.

3. I froze the campaign on August 1, and the one deadline we owned walked past. The Meta billing change gave merchants a real date and a bill they could calculate themselves. By mid-August thirty-odd outlets had published explainers about it. The first-mover edge was gone while we were paused.

4. I let research become a place to hide. Every week of it made the emails sharper and me more comfortable. Sends stayed near zero. Better copy that never sends is worth exactly the same as bad copy that never sends, and the question I was avoiding was never in the copy: why isn’t anyone buying?

5. I let a dead tactic run for six weeks. Passive LinkedIn follows for a cold audience: twenty-seven follows, zero accepts. I saw the number every week and didn’t stop it.

What the machine proved

ShiftKit was the first venture to run end to end on the factory, and that part came back yes. Discovery, crawler, verifier, researcher and writer, dispatcher, ledger, gates, reply handling, booking: every component ran, every one is venture-agnostic, and every one is still live and pointed at the next thing. The machine worked. The venture did not.

Four months of an agent emailing strangers produced no incident I had to apologise for, because the gates could refuse a send no matter what the agent wanted. Those gates are the most reusable thing ShiftKit left behind. They became Regent, the governed layer between an AI and the channels it acts on.

What I would do differently

Pick something I actually want to run. Then ship the thing before you market the thing: not a landing page, one fix, working, sold to the ten merchants already bleeding, before a single sequence goes out. Treat the first human reply as the loudest signal you will get. And if the product is blocked, marketing is blocked too, even when the dashboard says otherwise.

The rule

Every venture in the factory gets six months to reach $1M in annual revenue, or it closes. I closed ShiftKit at four, because the curve was readable and waiting out the clock is just waiting. The rule exists so that the decision does not depend on how I feel about the thing that week. It did its job. ShiftKit is the first venture it has applied to. It will not be the last.

The pages are still up at exautomatica.com/shiftkit, as they were. That is the record, and I do not see the point in hiding it.

More from the factory → All writing Karim Elsahy · CEO, ExAutomatica

One email when something ships.