job loop