1. A method performed with a computing system for processing semi-structured data, the method comprising: receiving semi-structured data comprising two or more keys, wherein for each key, the semi-structured data further comprising a markup symbol that associates a value with the key; determining that a location of a first key within the semi-structured data is at a beginning of the semi-structured data, and in response, determining that the first key indicates a category of the semi-structured data; identifying a structured data collection, the structured data collection being associated with the category and having a plurality of attributes; obtaining at least one of i) historical data associated with the plurality of attributes or ii) additional data associated with a user of the computing system; determining a location of a second key within the semi-structured data other than the beginning of the semi-structured data, and in response, mapping the second key to an attribute of the plurality of attributes based on at least one of the obtained historical data or the obtained additional data; and storing the value associated with the second key in a cell of a data record of the structured data collection that is associated with the mapped attribute to the key.