To attract and retain top talent, companies should build an attractive online presence, make jobs look inviting, advertise vacancies widely, have a consistent selection process, offer internships and training, provide flexible work hours, invest in aesthetically pleasing offices, and get employees involved in sharing opportunities.