This can easily be done using most paid SEO tools like Semrush or Ahrefs.
When reverse engineering my competitors, I pay close attention to the following: I look at their organic keywords, and how hard it is to rank for such keywords.
I also pay attention to the monthly search volume of their "easier" keywords.
Once I have this information, I have everything I need to come up with a site that can rank against my competitor.
How do I do this?
Well, first I filter the low difficulty keywords based on search intent.
This is crucial.
You have to have a clear idea as to what kind of information or experience people are looking for when they type in these keywords into Google instead of another set of keywords.
Please understand that there are many different ways to search for the same thing online.
You have to wrap your head around this central question: Why are these people using this particular set of keywords instead of another?
Once you get the answer to that, then you should have everything you need to come up with a better site.
Of course, it helps if you use tools like Frase or Surfer SEO to optimize your content based on what your competitors are doing.
It's very easy to think that you're optimizing your content based on your understanding of SEO, but I would rather optimize content based on what my competitors are doing.
Remember, the search engine rankings is essentially a race.
Google isn't going to give you an automatic number one ranking just you dotted your i's and cross your t's.
They rank web pages based on comparisons so if you don't optimize your content with a firm basis based primarily on what your competitors are doing, you're just basically taking shots in the dark.
In most cases, you're putting in way too much time and resources when you don't have to.