1. A method for allocating jobs to an agent, comprising: defining using a computer, for each job of the jobs, a job type associated with at least one job and at least one sub-step associated with the at least one job; determining by the computer eligibility of agents to perform the at least one sub-step; dynamically determining by the computer, based on the eligibility determination, a number of sub-steps of each job type to be performed by each agent, wherein the number of sub-steps determination comprises: calculating, for each agent of the agents, a supply side factor, comprising: calculating the supply side factor for each agent of the agents using the formula; 
 η=α×β, where, η is the supply side factor, α is a direct work efficiency, β is an indirect work efficiency/productivity, and where, α = W - Wr W , where, W is number of hours worked by an agent, Wr is number of hours spent in rework activities, and where, β = J a J d , where, J a is number of jobs done by a particular agent in a day, and J d is average number of jobs done by all agents; calculating, for each sub-step associated with a job, a demand side factor, comprising: calculating the demand side factor for each sub-step associated with the job using the formula: ds f = S ⁢ ⁢ H ⁢ ⁢ T T ⁢ ⁢ A ⁢ ⁢ T × 1 y n , where, ds f is the demand side factor, SHT is a standard handling time of performing a particular sub-step job, TAT is a turn around time to complete the sub-step job, including handling times and waiting times, and y n is number of agents suitable to handle the sub-step job; and automatically allocating each of the sub-steps associated with each job to the agents by generating and solving, using the supply side factor and the demand side factor, a transportation matrix; and automatically generating by the computer, based on the number of sub-steps, agent-specific job queues.