Using ML approaches to build a recommender engine for sales team I work at a startup as a developer, but I wanted to help out our sales team with running some ML algorithms on the data. A bit of context: Most of our revenue comes from ad purchases, so in a nutshell, we have a sales team that approaches our leads to sell them ads. I wanted to make this process more efficient by building a recommendation engine that would make predictions about the likelihood of different leads buying our ads.
I thought about it this way: Let's say, we have the following data from past sales efforts: {(x1, y1), ..., (xn, yn)}, where x represents the sales leads and y is from a binary set of {0,1}, where 1 indicates that the lead converted and 0 denotes that she didn’t.  And each sales lead has the following feature vector for xi in Rd: xi = {x1, x2,...,xd} Now, every time we're given a new xk and we'd like to find the corresponding yk for it.
I thought it's a classical supervised learning problem and we can apply a discriminative approach (e.g. kNN, SVM, etc.) to solve it.
Does that make sense to you so far or you’d suggest a completely different approach? One issue that I personally have with it is that, well it makes sense that the y for our data is binary, since those leads either converted or not. However, I think it makes more sense to product probabilistic values of y going forward, as that would be more benefitial to the sales team. I just don't know how to do that though, since this way there's a clear divide between the format of the past y values ({0,1}) and future ys that we're trying to predict.
 A: The fact that your labels are binary does not imply that the predictions have to be binary. Most classification methods can output probabilities, even though they are trained on binary targets. Specifically, logistic regression, kNN, random forests and gradient boosted decision trees (GBM) can all do that.   
I agree that only a probabilistic prediction makes sense here. For one thing, I'm guessing the conversion rates are low, and if so, most or all of the the hard predictions would be 0. Obviously, with probabilities (or just decision values), you can get a ranking of the leads and use that.
A: The basic approach is correct. There are many algorithms that would perform that. Logistic regression may do, with the advantage of relatively calibrated probabilities, even with large datasets. If your dataset is large, non-vanilla SVMs would not scale well, and you may want to take a look at Factorization Machines. Dato Graphlab provide several good implementations that I have had good experience with, but they are not alone:
https://dato.com/products/create/docs/graphlab.toolkits.recommender.html
kNN has issues with sparse data (unless your reduce it somehow) and is not straightforward with regard to probabilities. Random Forests would also need probabilistic calibration, and scaling them to large datasets is not always easy. 
