DOM cloning in a loop
This seems a textbook case for using Angular.

Assuming you do not have the time to invest in Angular, you could consider the following:
If you named all your divs after your result properties ( for example '#job-agency' -> #job-company ), then you would have to do far less extraction work and far fewer text() calls.

You could do something like: 

$.each(results.jobs, function(i, result){

  var key;

  //Enhance your result object with some calculated values
  result.thePosted = posted[2]+'-'+posted[1]+'-'+posted[0];
  result.theJobNo = pages*i +1,

if(result.hasOwnProperty('salary')){
  result.theSalary = result.salary.information.replace(/Â/g, '');
}

var jobContainer = $('#job-container').clone(true, true).attr('data-jobno', theJobNo);

for( key in result )
{
  jobContainer.find( '#job-' + key ).text( result[key] );
}

jobContainer.find('.apply-btn, .email-btn, .save-btn').attr('id', theID);
jobContainer.find('.save-btn').text('Save Job').removeClass('job-saved');


etc. etc.

The rest of the code is ok once you apply consistent indenting.