It also types the names of the items and buys the items super quickly, which is unrealistic.
Also, the prices it types in are fully random, which is also unrealistic. Users who are trying to pay 13k for a 5k value item aren't going to type out 12,392. Most of the time they might type in 12,400, 12,000, or 13,000. If you must type in a random number for the price, it should be a rounded number at least half the time.
Hitting +5% a couple of times for most items is a more human way to buy when you don't mind overpaying. I understand that's not always enough to successfully get an item, so it would require falling back to the old method if the item doesn't buy right away.
Not sure if you do this already, but items bought should be bought in a random order. Make a "shopping list" of items to buy, then randomly sort the list, and then buy the items one at a time from the list. If every time a bot does quest X, it buys 7 things in the exact same order, the odds that a human will buy those 7 exact things from the GE in that exact order is almost zero. Especially if combined with any other type of bot profiling, it would be rather simple to detect that your quest bot is running. Especially if there are other ways to complete the quest by buying 6 or 8 things instead, the odds someone buys the 7 items from the GE, in that order, for totally random typed prices way above the list price. purchased at superhuman speed.... you get the idea.