The primary issue is that if a parameter isn't provided, it will be null, which will crash your if statements:
if (!applicantName.equals('')) // System.NullPointerException can happen here.
Instead, use the safer String.isNotBlank:
if(String.isNotBlank(applicantName)) // Safe from System.NullPointerException
Secondly, your query is initialized in two different places, which increases maintenance and increases the odds of an error. Instead, build the query in runQuery.
public void runQuery() {
soql = 'Select Id,Name,Existing_Employee__c,ApplicantStreet__c,ApplicantCounty__c,ApplicantState__r.Name,ApplicantZip_Code__c from Applicant__c';
String applicantName = Apexpages.currentPage().getParameters().get('applicantName');
String applicantcounty = Apexpages.currentPage().getParameters().get('applicantcounty');
String applicantstate = Apexpages.currentPage().getParameters().get('applicantstate');
String applicantzipcode = Apexpages.currentPage().getParameters().get('applicantzipcode');
String[] whereClause = new String[0];
soql = 'Select Id,Name,Existing_Employee__c,ApplicantStreet__c,ApplicantCounty__c,ApplicantState__r.Name,ApplicantZip_Code__c from Applicant__c';
if (String.isNotBlank(applicantName)) {
whereClause.add('Name LIKE :applicantName');
applicantName += '%';
}
if (String.isNotBlank(applicantCounty)) {
whereClause.add('ApplicantCounty__c LIKE :applicantCounty');
applicantCounty += '%';
}
if (String.isNotBlank(applicantstate)) {
whereClause.add('ApplicantState__r.Name LIKE :applicantstate');
applicantstate += '%';
}
if (String.isNotBlank(applicantzipcode)) {
whereClause.add('ApplicantZip_Code__c LIKE :applicantzipcode');
applicantzipcode += '%';
}
if(!whereClause.isEmpty()) {
soql += ' WHERE '+String.join(whereClause,' AND ');
}
Applicants = Database.query(soql);
}
Edit: I just noticed you're using a "table" element, and trying to re-render that element. You can't just reRender arbitrary elements, they must be Visualforce elements. You can fix this easily by wrapping your table in an "apex:outputText":
<apex:outputText id="example">
<table class="display select" cellspacing="0" width="100%">
<thead>
<tr>
<th><input type="checkbox" name="select_all" value="1" id="example-select-all"/></th>
<th>Name</th>
<th>Current Employee</th>
<th> Street</th>
<th> County</th>
<th> State</th>
<th>Zip Code</th>
</tr>
</thead>
<tbody>
<apex:repeat value="{!Applicants}" var="applicant">
<tr>
<th></th>
<td><apex:outputText value="{!applicant.Name}"/></td>
<td><apex:outputField value="{!applicant.Exisitng_Employee__c}"/></td>
<td><apex:outputText value="{!applicant.RDContactsStreet__c}"/></td>
<td><apex:outputText value="{!applicant.ApplicantCounty__c}"/></td>
<td><apex:outputText value="{!applicant.ApplicantState__r.Name}"/></td>
<td><apex:outputText value="{!applicant.ApplicantZip_Code__c}"/></td>
</tr>
</apex:repeat>
</tbody>
</table>
</apex:outputText>