add job listener