My strategy, which worked out okay, was to "bracket" the field by choosing a couple of schools that looked solid and had very large MS class sizes and to just view my "elite" apps as lottery tickets unlikely to pay off (which they didn't).
Beyond that, and especially today, I'd look seriously at targeting specific future advisors at the schools in question, and worrying far less about the school's reputation. An excellent advisor at Mississippi State will do you far more good than a crappy one at Stanford. And will probably cost a lot less.
I applied to 6 schools - doing the "bracketing" thing (CMU+UCB as "reach" schools, Wisconsin-Madison & Washington as "mid" schools and Columbia and U Colorado Boulder as safety schools). I got into everywhere but UCB and Washington, but CMU was my first choice so I was super-happy.
The thing was - there were specific people at Boulder and Columbia that I thought I wanted to work with, but I checked a couple years later out of curiosity, and they'd moved on (around the time I would have been doing a thesis proposal). My first adviser at CMU also went to industry after a couple years and I had to switch advisors and fields, but had a number of excellent choices - as top-tier schools are packed with really good people.
So if your interests shift, or you are forced to have an advisor change, or you wind up working in an area with some adjacencies to your original area (say you start as a networks person but wind up doing a half-networks, half-operating system PhD) you will find good advisors and coadvisors aplenty at a good school.
At an "OK" school there are usually some really good people but they may have zero good people in whole subfields, and you might find that that good academic has left before you start your PhD proper...
my hack: when you're traveling to a city with a brand name school you might be interested in attending, shoot some professors an email asking to drop by and chat about their research. they will usually tell you to come by during their office hours. this has worked for me no less than 3 times and led to 2 admissions.
if you're an undergrad and you've never sold/pitched yourself to someone i strongly suggest you read some salesy stuff about how to approach a sales meeting. you have to keep in mind that PIs are kind of like CEOs of small startups - they do research, publish papers, and win grants. That's their business cycle. when they're evaluating new students they're trying to determine how effectively you'll fit into that cycle. that means if you've done all 3 of those things you're in a good position to be hired (and it is out and out hiring) but if you lack experience in one area (e.g. writing grants) you can make up for it by being strong in another (or giving the impression that you will be). ultimately you need to speak to their needs and goals rather than your own.
For anyone else reading, I want to echo the sentiment here 100x. I'm currently working closely on a research project with a CS prof who is one of the most senior/accomplished at a top-4 (by the ranking in the original pdf, but this is widely agreed upon) CS school due to networking my way in. Though this took way more initial effort than a chat, they had a substantially involved form they used for vetting inbound inquiries.
like I said the way to approach this is to try to identify with the person you're pitching to and address their needs/goals.
The most obvious thing is to familiarize yourself with their research because they have research goals. But honestly you don't need to go overboard on this - no one that's not their student yet would be expected to know the research in depth. Pick 3 of their most recent papers, read the abstracts and conclusions and come up with vaguely interesting questions. Again they don't need to be deep they just need to be better than "what learning rate did you use" and more sophisticated than "why did you pick Adam over rmsprop". Obviously extra points if have your own perspective on something (even if it's not earth shatteringly novel). For example my new group works on distributed ML and on my first call I said that I'd always wondered about distributed inference (ie one test sample forward pass distributed across multiple nodes). I didn't have an answer or solution to the problem but it was something they hadn't considered.
The better thing though to discuss is new potential funding directions that you would enable them to avail themselves of. Figuring this out is admittedly tough if you're an undergrad because you don't know what you're good enough at that you could get funding. Again for example in my case I have some computer vision experience and so now my group can plausibly apply for grants at the intersection of distributed systems and CV. I didn't quite discover this intentionally but early conversations broached it organically and I recognized the opportunity to include it in my "pitch".
But even if you don't have some kind of skills alignment like that, the most important thing to stress is that you can independently start and complete projects and you can write/present academic work. That means you can speak in jargon, you know how to display results (plots, comparisons benchmarks, etc), and most importantly you can concisely explain what you've done. I had an unpublished lit review that I sent over as a writing sample.
This is getting a little long so I'll just say something everyone should always keep in mind: you're trying to build a rapport with a person. No matter how smart, successful, elite they are in their area they're not robots they're fleshly people first. Being friendly and funny and getting to know them outside of their research helps immensely (during the meeting not before - that's creepy!)
edit: sorry also another thing you can do is prep by speaking with a grad student and asking them good questions about the research, group, goals, PI, etc. this'll get you comfortable speaking in terms that the PI is certain to relate to.
"No matter how smart, successful, elite they are in their area they're not robots they're fleshly people first." Hah, +1. I actually wasn't aware of my current group's "status" until well after my initial contact. I just thought our research interests matched perfectly and I was excited to learn about what they were doing. Enthusiasm goes a long way.
I did this when pursuing undergrad research - I didn’t think this would help in grad school admissions. Was this during undergrad or after?