You end up going from a first customer tweaking what they want, to fulfilling feature requests from a group of customers, to evolving an entangled behemoth of heuristics that no one can entangle again unless their process goes through similar time commitments.
It's customer oriented and eventually the heuristics get good enough and selling is the main deal.
Heuristic optimization is antifragile by nature (you tweak the solution, vary the inputs to the heuristic to find something better), just like the business model of the optimization service is, in times of crisis people reach for a tool that saves money, unlike other products that lose sales because there's no money to spend recklessly.
So, the problem is building a good tool for other businesses.
I agree with the OR approach, I have some secret sauce which I add on top.
You have a fleet of N vehicles, a list of M locations. You have to visit all in the shortest amount of time. Now add time windows for the locations, now add the constraint that out of these M locations you have pickups which need to be delivered (one location needs to be visited before the other on the same vehicle ride). Add another constraint - several drivers need to meet at the same time at one of the locations. Let's say drivers do weekly shifts, not daily, so they drive around the country, finding hotels on the go.
Here's another one. https://en.wikipedia.org/wiki/Nurse_scheduling_problem
There's plenty of similar problems with small and big customers.
Don't see why the startup cost is high. Most of the big players have solutions that suck and most of the big players want yearly contracts or are too expensive for small or middle sized businesses. Big businesses that make a deal realize after a year or two that the feature spec was a lie and that the system just does not work.