We use Pingboard.com, they provide an Excel template that you can upload to create a directory with employee profiles, from there it is easy to assign managers and create a chart. It does get slow/unresponsive if there are more than 125 or so positions on a chart, so that can be frustrating.
we have a various 1 to 1 sessions over each month (an article on on our org.´s blog written by me is coming up on this topic!). This culminates into a bi-annual feedback where we identify kpi´s and mark on a scale of 1-5 how close or far away they are from the ideal...... alternatively, in another organization i worked in we used the 9-box estimate, here is an explainer, https://pingboard.com/blog/what-is-the-9-box-model-for-hr-how-to-use-it-template/ We had a small locally developed app where at the manager level we used to drag drop employees to each section, we used to discuss the ratings with the HR who would finalize this.
We just added support to Pingboard for keeping your org chart up to date by importing from Excel, and making sure the formatting is always clean. You can also sync from Google Apps or Okta if your org uses either of those. Plus, you can share the org chart with your colleagues via a shared link that always shows the latest -- rather than (or in addition to) sending around a static file.