Gruber, der für den SAS Bern startet, gab sein Debüt im Weltcup im Februar 2006 in Davos, wo er den Sprintwettbewerb als 70. beendete. Seine ersten Weltcuppunkte gewann er im Dezember 2013 beim Sprint in Asiago mit Rang 17.
Im Alpencup gewann er im Januar 2008 den Sprintwettbewerb in Oberstdorf. Eine weitere Podestplatzierung gelang ihm im Februar 2011 mit Rang drei beim Sprint in Forni di Sopra. Seine beste Platzierung in der Gesamtwertung erreichte er in der Saison 2007/08 mit Rang 18.