simple events for hooks
unified job access in api layer