A non-transitory machine-readable medium comprising instructions that, when incorporated as one or more modules into a matching system, cause the matching system to perform operations comprising:
- receiving, at a matching system, a plurality of sets of deal data from one or more deal data providers via one or more crawlers or data feeds, the plurality of sets of deal data including one or more sets of structured or unstructured deal data;
- generating structured and normalized deal data from the plurality of sets of deal data, the structured and normalized deal data including attributes of a first set of deal data extracted from the plurality of sets of deal data and attributes of a second set of deal data extracted from the plurality of sets of deal data;
- identifying that the first set of deal data of the plurality of sets of deal data corresponds to a sale deal based on the attributes of the first set of deal data including an indication of a sale deal type;
- identifying that the second set of deal data of the plurality of sets of deal data corresponds to a coupon deal of the plurality of coupon deals based on the attributes of the second set of deal data including an indication of a coupon deal type;
- based on the identifying that the first set of deal data of the plurality of sets of deal data corresponds to the sale deal, determining a sale brand identification corresponding to the first set of deal data, the determining of the sale brand identification including parsing the first set of deal data to generate a brand token and comparing the brand token to contents of a brand dictionary included in a database of the matching system;
- determining whether to add a brand name included in the plurality of sets of deal data to the contents of the brand dictionary based on whether the brand name was received from a trusted deal data provider of the one or more deal data providers, the adding of the brand name allowing the contents of the brand dictionary to grow without manual intervention;
- based on the identifying that the second set of deal data corresponds to the coupon deal, determining a coupon brand identification corresponding to the second set of deal data, the determining of the coupon brand identification including parsing the second set of deal data to generate an additional brand token and comparing the additional brand token to the contents of the brand dictionary;
- identifying a matchup of the sale deal and the coupon deal based on a matching of the sale brand identification and the coupon brand identification and a determination that a sale deal validity period and a coupon validity deal period overlap and have not expired, the sale deal validity period being calculated based on the first set of deal data, and the coupon deal validity period being calculated based on the second set of deal data;
- and
- generating a user interface for presentation on a client device of the user, the user interface including a personal circular for the user that includes information about the identified matchup, the information about the identified matchup including the sale brand identification and the coupon brand identification, wherein the generating of the user interface is responsive to a query or location data being received from a device of the user.