Job assignment algorithm