The "Opportunity index" is "determined by dividing the number of job openings listed on ZipRecruiter by the number of active job seekers in that area" This leads to Baltimore being #1 and San Francisco 17th. I think this is overly simplistic and not representative of "opportunity", I used to live near Baltimore, I wouldn't say it has more opportunity for Software Engineers than SF.
How do you decide how to combine "adjusted salary data" and "opportunity data"? They aren't even in the same unit. I find that this is often the problem with these city rankings (not only this one, but also "quality of life" or "most expensive city" rankings). There is no universal way to weigh these factors, and your result highly depends on the particular weightages you assign, often arbitrarily.