The Org Manual node on Motion gives a somewhat laconic description of the built-in command org-goto (default binding: C-c C-j ), whose behaviour can easily be customised to achieve the desired effect:

Inspect the documentation of the customisable variable listed at the end of this manual node: C-h v org-goto-interface RET If you are happy to forgo the default org-goto behaviour of incrementally searching through the buffer's outline, you can switch to picking a headline via completion: (setq org-goto-interface 'outline-path-completion) Users of completion packages like ido / ivy / helm will probably want to change the following setting in order to see the whole target path at once: (setq org-outline-path-complete-in-steps nil) See here for more discussion.

This approach has the added benefit (over using, say, helm -specific functionality) of working with all completion frameworks that plug into the default completing-read , including, as I can personally confirm, ivy .

ADDENDUM:

When using the outline-path-completion interface to the org-goto command as described in this answer, the customisable variable org-goto-max-level determines the maximum depth of headlines to offer.

EDIT:

I found an older, relevant question with useful answers: https://stackoverflow.com/q/15011703/3084001

CLARIFICATION (as prompted by Att Righ's comment):