Not sure if you've figured this out yet, but look up "Norbert's Gambit." Takes a little bit of legwork on your end, but it's the best way to avoid a nasty exchange rate, BY FAR. I've been using this method for about a year now to covert my USD salary into CAD. Good luck!
Edit to add: Knightsbridge is indeed legit; I've never used them but read very good things. Probably the bet alternative to executing Norbert's Gambit for USD to CAD currency exchange.