This paper proposes a GRASP approach for solving the Bus Crew Scheduling Problem (BCSP) to find high-quality solutions within short computing times. The BCSP described the process related to the assignment of drivers and conductors to a bus company's regular daily operation of a mass transit system, seeking to minimize the cost of operation and, at the same time, the improvement of the working environment by considering the satisfaction of the drivers with the assigned shifts. The BCSP has drivers in charge of covering the demand for shifts, with an assignment that contains several constraints, such as minimum and maximum work blocks, minimum rest days, and shift sequences that must not be assigned. The former GRASP algorithm is proposed with a constructive procedure, a solution repair procedure, and two local search operators. Classical instances from the literature have been adapted for the shift assignment problem by adding a satisfaction variable. Besides, the proposed approach has been tested for a real company operating articulated and feeder vehicles. The results show that the satisfaction function adds value to the assignments, substantially improving the work environment and generating favorable results in terms of time and quality of the solution.