Sachverhalt: A. A._ (Beschwerdegegner) wurde in Deutschland zum Hochbaufacharbeiter ausgebildet. Im Juni 2004 trat er in die Dienste der X._ AG (Beschwerdeführerin). Diese Anstellung war sein erster Arbeitseinsatz in der Schweiz. Zuvor war er fast elf Jahre hauptsächlich als Maurer und Verputzer in diversen deutschen Betrieben tätig. Der Lohn, den ihm die Beschwerdeführerin ausrichtete, entsprach der Lohnklasse C nach den Landesmantelverträgen (LMV) für das Schweizerische Bauhauptgewerbe 2005 (LMV 2005) und 2006-2008 (LMV 2006). Der Beschwerdegegner war der Auffassung, er hätte einen höheren Stundenlohn entsprechend der Lohnklasse Q der LMV erhalten müssen. Daher verlangte er mit Klage vom 8. Mai 2008 von der Beschwerdeführerin die entsprechende Lohndifferenz für die geleisteten Arbeitsstunden von Fr. 24'294.25 brutto. Zusätzlich verlangte er eine Schlechtwetterentschädigung und Ersatz für Zügeltage, alles nebst Zins. Am 11. November 2008 wies das Kantonsgericht Glarus die Klage ab. Demgegenüber sprach das Obergericht des Kantons Glarus dem Beschwerdegegner am 23. Oktober 2009 die geltend gemachte Lohndifferenz von Fr. 24'294.25 brutto nebst Zins zu. B. Mit Beschwerde in Zivilsachen beantragt die Beschwerdeführerin dem Bundesgericht im Wesentlichen die Klage abzuweisen. Ihr Gesuch um Gewährung der aufschiebenden Wirkung wies das Bundesgericht am 4. Januar 2010 ab. Der Beschwerdegegner beantragt, die Beschwerde kostenfällig abzuweisen, soweit darauf einzutreten ist. Das Obergericht hat auf Vernehmlassung verzichtet. 