We consider complex scheduling problems that can be captured as optimization under hard and soft constraints. The objective of such an optimization problem is to satisfy as many hard constraints as possible and meanwhile to minimize a penalty function determined by the unsatisfied soft constraints. We present an efficient local search algorithm for these problems which improves upon Wsat(oip), aWalksat-based local search algorithm for overconstrained problems represented in integer programs. We introduce three techniques to the Wsat(oip) algorithm to extend its capability and improve its performance: backbone guided biased moves to drive the search to the regions in search space where high-quality and optimal solutions reside; sampling-based aspiration search to reduce search cost and make anytime solutions available over the course of the search; and dynamic parameter tuning to dynamically adjust the key parameters of the algorithm to make it robust and flexible for various applications. Our experimental results on large-scale crew scheduling, basketball tournament scheduling and progressive party scheduling show that the new improved algorithm can find better solutions with less computation than Wsat(oip).