feat: add external job runner (#1194)