Yeah, I agree. You could do a sortable list of services so the user could rank their importance and then pick the best result from the first X(10?) iterations given their preferences.
Obviously, that adds a lot of complexity, you just got me excited.