1. A computer-implemented method comprising: receiving a job in a job scheduling system; transmitting at least part of the job to a job reader; reading, by the job reader, one or more code portions of the job; determining, by a computer processor associated with the job reader, based on reading the one or more code portions of the job, one or more functions that are found in the one or more code portions of the job and are required to be executed for performing the job, wherein the job reader is configured to output an indicator to a job router as to which version of an operating system is required to handle the job; determining availability of a plurality of functions, comprising at least the one or more functions, in each of a plurality of computing devices; identifying a subset of the plurality of computing devices, wherein each computing device in the subset of the plurality of computing devices supports the one or more functions required for performing the job; and selecting a first computing device from among the subset of the plurality of computing devices based, at least in part, on the first computing device supporting the one or more functions required for performing the job.