Have you tried simply a
grant ctxapp to yon;
This doesn't work, because as Yon mentions, dbms_jobs do not inherit privileges granted through roles. "ctxapp" is a role. On the other hand, the needed "execute" privilege can be granted directly:
connect ctxsys/passwd
grant execute on ctx_ddl to user;