Hi, I've tried to address your issues point by point according to your post...
Duplicate Job Posting Content
You can try to offset this by having a couple hundred words of unique copy per listing page url exposed to Google. So, if your page lists all jobs in the catering industry in New Jersey for instance, write some copy on the topic, and try to make it readable and useful to the user as well. Add microdata to the template using schema.org, so that Google can understand what's there at the data level - there will likely be entities available there to describe your content in terms of location, the companies that are hiring, etc.
I'm inclined to say don't bother with reshuffling duplicate content and adding bullet points to it - Google is smart enough to recognise that this copy is the same, and will not give you any points - perhaps the opposite - for trying to disguise this.
Filtering & Blank Results Pages
Could this not be done with javascript / ajax, so that Google never finds an empty listing?
'About the Company' Duplicate Content
You could load this content from an ajax template, either as the page loads, or in response to a user action (eg. click on a button 'show company details'). I have solved this exact problem like this in the past - loading a tour category description that appears on a great many tour detail pages.
Perhaps you can do as I'm suggesting above for the job description duplication - where possible, and as long as it's done in a way that does not come across as cloaking. It's good that you have a unique paragaph above the duplicate description.Try not to load up the duplicate description by default. I'm not sure on your source order or site / template structure so difficult to get too detailed here and I don't want to risk suggesting something that could be interpreted as a violation of Google's guidelines.
Pagination
You will want to, where possible, specify a view-all page for Google - this is suggested by them as a best practice, and in my experience, Googlebot loves to find chunky listing content, PROVIDED that it loads quickly enough not to hamper the user experience.
You can make sure of this by lazyloading images and other media. Be sure to specify the correct image src attributes (not spacer.gif for instance) inside of noscript tags to make sure that image content is still indexed.
You could also load up the markup for all items in the listing, and then use javascript to chunk the content into 'pages', or load it asynchronously where javascript is available. If no javascript, then load all content. By using javascript pagination, you basically avert the need for a separate view all page, meaning only have one template to maintain and optimise.