University of Toronto and University of Waterloo are considered the top 2 Canadian schools for CS. Both admit by the major and are very selective. Waterloo’s admission rate for CS is around 5% and U of T’s is about 10%. Both are holistic. Both are known for being very challenging programs.
Waterloo has an AIF to put the extracurriculars and awards on. US students admitted to computer science must obtain at least a 4 on the AP calculus exam. I have a S23. He is not applying to Waterloo because of the AP calculus score requirement. The scores come out in July - way past the date to have a backup plan in place in case the AP score is not up to snuff. Waterloo is looking for award winners or math or cs competition participants. I don’t see that in OP’s list. Waterloo is well known for their co-op program. Students who manage to graduate get great jobs. Co-op terms alternate with academic terms. Pay for each term ranges from $10K-$30K. It takes 5 years to finish the degree. My D16 graduated from a similar program at Waterloo. It’s a very stressful program because of the constant moving back and forth for co-op and academic terms.
University of Toronto is generally not holistic, but they have gone holistic for CS admissions in the past couple of years. There is a supplemental application for CS. Students are admitted to the program, but are not admitted to the major until they apply at the end of first year. They are required to obtain above average grades for two first year computer science courses and to pass first year higher math.
OP’s student would have a better chance at U of T than Waterloo.