Have your son make a list of "wish schools", "realistic schools", and "back up schools". Include D1s and D3s on the list if you can. Have your son look at the current roster lists of these schools to see where the players are from. (Side note: son really wanted to go to Texas Christian when he was in like 8th grade. I looked at the roster and ALL of the players were from Texas. I told son we were not moving. lol)
Keep in mind in targeting your initial list for not only the baseball level, but academics, the travel distance and tuition $$$ that his family is comfortable with. Have him contact the coaches of these schools via email of his interest, his baseball resume, and the write up from Prep Baseball. Then later in a different email, send those same schools his summer schedule. He IS on a good summer team that will be at events that players are seen? Then, each week, follow up those emails with game times and which fields your son will be playing. You may not ever hear a reply back, or possibly just camp invites, but keep doing it. You have nothing to loose and it may seem like overkill, but you gotta do it. You just don't know the need of the schools for the position(s) your son can play, so keep at it! You may have to adjust your list of schools as time goes by.
You won't know what level your son can play until schools come looking and invite him for visits. You have to invite schools to come look at your son! Keewarson started getting unofficial invites during his HS sophomore season and committed before Junior year, so starting the process now is not too early since he is playing varsity. The "up the middle players" (catchers, pitchers, SS, and CF) are usually recruited first and SSs and CFs can be moved to other positions.
You can keep tabs on which schools are recruiting, who the players are, and what positions they play by going to www.perfectgame.org and doing a search for "college commitments" under "recruiting". That site is a wealth of information of the timing and who is being recruited.