While this could be developed from scratch, the big problem is figuring out what data to suggest and how to rank that data so the most likely suggestion comes.
It can very quickly turn complex, so the best advice is probably to use a tool that has already figured it out