IMO, user Nobody should not be used. All scheduled searches should be owned by a real user, even if it's a service account. That means the user running the search would have a role that specifies what accesses and resources the search has. When a search runs manually, it takes on the role of the person running it (unless set to "run as owner").
Make sure the search in question has read access to all of the knowledge objects it needs. IOW, each KO should be set to "Everyone" in the Read column (if using Nobody, that is; otherwise, set the permissions for the roles that need access).