A computer-implemented method for processing a search query, the method comprising: receiving, at one or more computer processors, the search query, the search query comprising search criteria; storing, by the one or more computer processors, the search query in one or more persistent storage devices; and periodically and automatically performing, by the one or more computer processors, the following operations: retrieving the search query from the one or more persistent storage devices, retrieving first source data that relates to the search query from one or more backend data sources, generating a plurality of responses for the search query based on the first source data, determining whether each of the responses is notification eligible based on the search criteria, and notifying a user of each response determined notification eligible, characterized in that retrieving the first source data from the one or more backend data sources uses an iterative optimization algorithm comprising: retrieving first backend data from a first one of the one or more backend data sources based on a first one of the search criteria; filtering the first backend data based on a first satisfaction threshold and a first portion of the search criteria that is relevant to the first backend data; retrieving second backend data from a second one of the one or more backend data sources based on a second one of the search criteria and the filtered first backend data; and filtering the second backend data based on a second satisfaction threshold and a second portion of the search criteria that is relevant to the second backend data, wherein the first source data is based on the filtered first backend data and the filtered second backend data. receiving, at one or more computer processors, the search query, the search query comprising search criteria; storing, by the one or more computer processors, the search query in one or more persistent storage devices; and periodically and automatically performing, by the one or more computer processors, the following operations: retrieving the search query from the one or more persistent storage devices, retrieving first source data that relates to the search query from one or more backend data sources, generating a plurality of responses for the search query based on the first source data, determining whether each of the responses is notification eligible based on the search criteria, and notifying a user of each response determined notification eligible, characterized in that retrieving the first source data from the one or more backend data sources uses an iterative optimization algorithm comprising: retrieving first backend data from a first one of the one or more backend data sources based on a first one of the search criteria; filtering the first backend data based on a first satisfaction threshold and a first portion of the search criteria that is relevant to the first backend data; retrieving second backend data from a second one of the one or more backend data sources based on a second one of the search criteria and the filtered first backend data; and filtering the second backend data based on a second satisfaction threshold and a second portion of the search criteria that is relevant to the second backend data, retrieving the search query from the one or more persistent storage devices, retrieving first source data that relates to the search query from one or more backend data sources, generating a plurality of responses for the search query based on the first source data, determining whether each of the responses is notification eligible based on the search criteria, and notifying a user of each response determined notification eligible, characterized in that retrieving the first source data from the one or more backend data sources uses an iterative optimization algorithm comprising: retrieving first backend data from a first one of the one or more backend data sources based on a first one of the search criteria; filtering the first backend data based on a first satisfaction threshold and a first portion of the search criteria that is relevant to the first backend data; retrieving second backend data from a second one of the one or more backend data sources based on a second one of the search criteria and the filtered first backend data; and filtering the second backend data based on a second satisfaction threshold and a second portion of the search criteria that is relevant to the second backend data, retrieving first backend data from a first one of the one or more backend data sources based on a first one of the search criteria; filtering the first backend data based on a first satisfaction threshold and a first portion of the search criteria that is relevant to the first backend data; retrieving second backend data from a second one of the one or more backend data sources based on a second one of the search criteria and the filtered first backend data; and filtering the second backend data based on a second satisfaction threshold and a second portion of the search criteria that is relevant to the second backend data, wherein the first source data is based on the filtered first backend data and the filtered second backend data.