Keyword research: for the keyword research, I use my own method (I am a mathematician).
I have about 300 domain names of competitors in my niche in a file: forums, small blogs, big blogs, etc. First, I do basic exploratory data analysis: I enter domain names URL in ahrefs to see if some topics are popular with low competition.
Then, I enter all popular topics in an excel file with the corresponding data and metrics (see attached file)

)

.
I have four estimators: Article Production Cost (based on the average number of words to rank in google and topic difficulty), Probability of Ranking (based on Ranking difficulty and my personal experience looking at the serp), Potential Traffic (based on search volume) and Revenue per Thousand (based on CPC from Google keyword planner and experience).
I use these four estimators to build a rank: see file. The formula is Rank= APC*PoR*PT*RpT and the higher the rank, the better the article.
Post length: depends on the article, some are 700 words, some are 3000 words. I would say around 1200 words on average.
Keyword density: I don't measure keyword density, I make sure I use primary and secondary search terms/keywords in the article
H1 tags: usually the primary keywords I want to rank for
How have I been writing my content: I pay a writer to write the content (around $35 per 1000 words), I do the editing and I add thumbnail with Canva.com. Sometimes, I also add a thumbnail for <h2> subheadings.