A computer-implemented method for entity matching comprising: receiving, at a computing system (102, 124), an input comprising one or more attributes; accessing, by the computing system (102, 124), a query configuration comprising a list of query options relevant to at least one attribute of the input; selecting, by the computing system (102, 124), a subset of query options from the list of query options relevant to the attributes of the input and based on query optimization results from an audit of previous queries; translating, by the computing system (102, 124), each query option of the subset of query options into a query comprising at least one attribute of the one or more attributes of the input, to generate a set of queries; determining, by the computing system (102, 124), a priority order to execute each query in the set of queries based on the query optimization results; executing, by the computing system (102, 124), each query in the priority order by accessing one or more datastores (216a, 216b) to generate a candidate list comprising a list of candidates that potentially match the input; accessing, by the computing system (102, 124), a workflow configuration comprising a list of workflows for determining whether an input matches a candidate; for each candidate in the list of candidates, performing operations comprising: selecting a subset of available workflows (410, 412) based on relevance to the candidate and based on workflow optimization results from an audit of previous workflow executions; determining an order in which the selected subset of workflows (410, 412) is to be executed based on the workflow optimization results; and executing the selected subset of workflows (410, 412) in the determined order to generate a match score indicating the probability that the candidate matches the input; and providing an output indicating at least the candidates that matched the input based on the generated match score for each candidate. receiving, at a computing system (102, 124), an input comprising one or more attributes; accessing, by the computing system (102, 124), a query configuration comprising a list of query options relevant to at least one attribute of the input; selecting, by the computing system (102, 124), a subset of query options from the list of query options relevant to the attributes of the input and based on query optimization results from an audit of previous queries; translating, by the computing system (102, 124), each query option of the subset of query options into a query comprising at least one attribute of the one or more attributes of the input, to generate a set of queries; determining, by the computing system (102, 124), a priority order to execute each query in the set of queries based on the query optimization results; executing, by the computing system (102, 124), each query in the priority order by accessing one or more datastores (216a, 216b) to generate a candidate list comprising a list of candidates that potentially match the input; accessing, by the computing system (102, 124), a workflow configuration comprising a list of workflows for determining whether an input matches a candidate; for each candidate in the list of candidates, performing operations comprising: selecting a subset of available workflows (410, 412) based on relevance to the candidate and based on workflow optimization results from an audit of previous workflow executions; determining an order in which the selected subset of workflows (410, 412) is to be executed based on the workflow optimization results; and executing the selected subset of workflows (410, 412) in the determined order to generate a match score indicating the probability that the candidate matches the input; and selecting a subset of available workflows (410, 412) based on relevance to the candidate and based on workflow optimization results from an audit of previous workflow executions; determining an order in which the selected subset of workflows (410, 412) is to be executed based on the workflow optimization results; and executing the selected subset of workflows (410, 412) in the determined order to generate a match score indicating the probability that the candidate matches the input; and providing an output indicating at least the candidates that matched the input based on the generated match score for each candidate.