Edit in JSFiddle

var data = [
    {
        Name: "John Smith",
        Gender: "M",
        Location: "Wales",
        Posts:[
            {
                date: "Jan 2015",
                message: "lorem ipsum"
            },
            {
                date: "Mar 2015",
                message: "lorem ipsum"
            }
        ]
    },
    {
        Name: "Sally Smith",
        Gender: "F",
        Location: "USA",
        Posts:[
            {
                date: "Nov 2014",
                message: "lorem ipsum"
            },
            {
                date: "June 2015",
                message: "lorem ipsum"
            }
        ]
    },
    {
        Name: "Curtis Timson",
        Gender: "M",
        Location: "England",
        Posts:[
            {
                date: "Feb 2015",
                message: "lorem ipsum"
            },
            {
                date: "May 2015",
                message: "lorem ipsum"
            }
        ]
    },
    {
        Name: "Sam Wallace",
        Gender: "M",
        Location: "England",
        Posts:[
            {
                date: "May 2015",
                message: "lorem ipsum"
            },
            {
                date: "June 2015",
                message: "lorem ipsum"
            }
        ]
    },
    {
        Name: "Caroline James",
        Gender: "F",
        Location: "Scotland",
        Posts:[
            {
                date: "Jan 2013",
                message: "lorem ipsum"
            },
            {
                date: "Mar 2014",
                message: "lorem ipsum"
            }
        ]
    }
];

var myApp = angular.module("myApp", []);

myApp.controller("myController", function($scope){
   $scope.users = data; 
});

myApp.filter("UserFilter", function(){
   
    return function(users, postDate, location){

        var addUser;
        var selectedUsers = [];
        for(i=0;i<users.length;i++){
            
            addUser = false;
            
            if (users[i].Location == location){
            
               for(j=0;j<users[i].Posts.length;j++){
                   if(users[i].Posts[j].date == postDate){
                       addUser = true;                    
                   }
               }
            
               if (addUser){
                   selectedUsers.push(users[i]);
               }
                
            }
        }
        
        return selectedUsers;
    };
    
});
<div ng-app="myApp" ng-controller="myController">
    <ul>
        <li ng-repeat="user in users | UserFilter: 'June 2015':'England'">{{user.Name}} | {{user.Location}}</li>
    </ul>
</div>