def METHOD_NAME(self, job_name):
    """ Traverse the JobGraph for a specific job to construct an ActionGraph for it """
    job_action_map = {}
    required_actions, required_triggers = defaultdict(set), defaultdict(set)
    for action_name in self._actions_for_job[job_name]:
        # Any actions that belong to _this job_ are not prefixed by the job name
        short_action_name = action_name.split(".")[-1]
        job_action_map[short_action_name] = self.action_map[action_name]
        required_actions[short_action_name] = {
            entry.action_name.split(".")[-1] for entry in self._rev_adj_list[action_name] if not entry.is_trigger
        }
        # We call this twice to build the complete DAG for the job; the first time
        # we search the forward adjacency list and the second time we search the
        # reverse adjancency list.  This ensures we don't miss any triggers
        required_triggers = self._get_required_triggers(action_name, required_triggers)
        required_triggers = self._get_required_triggers(action_name, required_triggers, search_up=False)
    return ActionGraph(job_action_map, required_actions, required_triggers)