This paper describes a system which provides feasible schedules for industrial production and which is computationally efficient for large scale problems. The system uses job oriented heuristics in which all the operations of one job are scheduled before the next job is considered. The system allows for many complex practical features and in particular it allows individual jobs to have different objectives within the same scheduling run. A particular feature is the creation of minimum-in-process-time schedules which relate closely to the Just In Time concept. Industrial experience indicates that the satisfaction of needs of individual jobs in a schedule is of more concern than some single measure of performance of the schedule as a whole. Thus the scheduling system presented here has advantages over scheduling systems with uniform objectives.