So, I've started looking at hsreplay data when constructiong decks. You can find the stats for mulligan keeps and winrate, as well as keep rates and many other things. I think that it would be way better to enable constructing a Mulligan with these rates. For some decks, Mulligan is relative. Take for an example Dragon Priest - generally, the only thing you keep for sure are Duskbreakers against aggro and Northshire Cleric. However, though, having a bad hand is an auto loss, so if you get something like Kabal Talonpriest, it might be good to keep, certainly better than risking Mind Controls in your opening hand.
The idea is to enter the stats for the mulligans of a deck. You can enter some stats by yourself, or you could just copy it from hsreplay. The point is to let the bot calculate whether it is worth keeping something. Also, you could alter it for various classes, based on the data you have. Alternatively, the bot could perhaps learn and create its own numbers that way. However I think that simple numbers and percentages could prove more than very effective for the time being.
The biggest problems with Mulligan I have is I cannot make it accept some worse cards if the hand is really bad. In this kind of meta, you'll just auto lose if you fall really behind.