1. A computer-implemented method of recognizing a document and extracting at least one variable document field within the document, the method comprising: receiving a first document image corresponding to a first instance of the document; automatically identifying one or more document fields of the first document image; comparing the one or more identified document fields of the first document image to a plurality of document templates stored in a document template database, the plurality of document templates each including one or more static document fields; comparing, following an unsuccessful comparison of the one or more document fields to the plurality of document templates, the one or more document fields of the first document image to at least one document skeleton stored in a document skeleton database, the at least one document skeleton including one or more static document fields; defining, following an unsuccessful comparison of the one or more document fields to the at least one document skeleton, one or more user-identified variable document fields within the first document image for extraction; extracting the defined one or more variable document fields from the first document image to obtain a set of extracted variable document fields; identifying a set of static document fields within the first document image based on the set of extracted variable document fields; generating a document skeleton based on the identified set of static document fields after the first instance of the document; storing the generated document skeleton in the document skeleton database; receiving a second document image corresponding to a second instance of the document; automatically identifying one or more document fields of the second document image; comparing the one or more identified document fields of the second document image to the plurality of document templates stored in the document template database; comparing, following an unsuccessful comparison of the one or more identified document fields of the second document image to the plurality of document templates, the one or more identified document fields of the second document image to the at least one document skeleton in the document skeleton database; automatically generating, following a successful comparison of the one or more identified document fields of the second document image to the at least one document skeleton, a document template based on the comparison of the second document image to the at least one document skeleton in the document skeleton database only after the second instance of the document; automatically extracting the one or more variable document fields based on the generated document template following receiving the second instance of the document; and storing the generated document template in the document template database.