Indeed API
by Alvin Olavarrieta
HTML
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<div class="container">
<ul class="pagination"></ul>
<div id="list"></div>
</div>
JavaScript
$(function(){
searchCall();
}); //end doc ready
//Search
function searchCall(start){
$("#list").empty();
var endpoint = 'http://api.indeed.com/ads/apisearch';
var params = {
'v': '2',
'format': 'json',
'publisher': '2698999922791168',
'userAgent' : navigator.userAgent,
'q': 'office',
'l': 'miami, fl',
'limit': '10',
'start': start,
'userip': '1.2.3.4',
'jt': 'fulltime'
};
$.ajax({
url: endpoint,
dataType: 'jsonp',
type: 'GET',
data: params,
success: function (response) {
console.log(response);
console.log(response.results);
var target = $("#list");
html = "";
$.each(response.results, function(index, value) {
html += "<div class='panel panel-default'>";
html += "<div class='panel-heading'>";
html += "<h3 class='panel-title'>"+ value.jobtitle +"</h3>";
html += "</div>";
html += "<div class='panel-body'>"+ value.snippet +"</div>";
html += "</div>";
});
target.append( $(html) );
var currentPage = response.pageNumber;
var numPages = Math.ceil(response.totalResults / response.results.length);
pagingControl(currentPage, numPages);
}
}); //end ajax
};//end search
//Pagination
function pagingControl (currentPage, numPages){
$(".pagination").empty();
var pagesCutOff = 5;
var prevPosition = currentPage - pagesCutOff;
var nextPosition = currentPage + pagesCutOff;
console.log("Curent page: " + currentPage);
console.log("Number of pages: " + numPages);
console.log("pagesCutOff: " + pagesCutOff);
console.log("prevPosition: " + prevPosition);
...