A small review, but your naming seems a bit repetitive.
This:
// Use _ to template the resultsTemplating details
function resultsTemplating(data, inputValue) {
var results = data,
resultsTemplate = _.template($("#results-template").html()),
resultingHtml = resultsTemplate({
results : results,
searchVal : inputValue,
amount: results.length
});
// place the generated data into the html
$("#results-container").html(resultingHtml);
}
has results and resulting all over the place, I would go for something like this:
// Use _ to template the resultsTemplating details
function templateResults(results, searchValue) {
var template = _.template($("#results-template").html()),
html = resultsTemplate({
results : results,
searchVal : searchValue,
amount: results.length
});
// place the generated data into the html
$("#results-container").html(html);
}
I also removed the move from data to results to save a line and renamed inputValue to searchValue. I noticed that you have inputValue and searchVal, in my mind you want to be consistent and have inputValue and searchValue or inputVal and searchVal. I much prefer the fully spelled out name.
This bit is funny:
overlayHtml = overlayTemplate({
name : data[i].name,
username : data[i].username,
language: data[i].language,
url: data[i].url,
description: data[i].description
});
You are creating an object with the exact same properties which already exist in data. Unless you have unwanted fields in data that you really dont want in your template, you can simply
overlayHtml = overlayTemplate(data);
All in all, this is really great code for someone without formal training. I like the size of your functions, the level of commenting and how easy the code is to follow.