diff --git a/tko/create_db b/tko/create_db
index 5659d09..fdf19d2 100644
--- a/tko/create_db
+++ b/tko/create_db
@@ -21,6 +21,8 @@
 CREATE TABLE jobs (
 job_idx int(10) unsigned NOT NULL auto_increment PRIMARY KEY,		-- index number
 tag VARCHAR(100),			-- job key
+label VARCHAR(100),                     -- job label assigned by user
+user VARCHAR(80),			-- user name
 machine_idx int(10)			-- reference to machine table
 ) TYPE=InnoDB;
 
diff --git a/tko/db.py b/tko/db.py
index 5e6cc29..f83e789 100644
--- a/tko/db.py
+++ b/tko/db.py
@@ -142,10 +142,11 @@
 		if not job.machine_idx:
 			job.machine_idx = self.insert_machine(job.machine,
 		                                              commit=commit)
-		self.insert('jobs',
-		            {'tag':tag,
-		             'machine_idx':job.machine_idx},
-                            commit=commit)
+		self.insert('jobs', {'tag':tag,
+                                     'label': job.label,
+                                     'user': job.user,
+		                     'machine_idx':job.machine_idx},
+                                     commit=commit)
 		job.index = self.find_job(tag)
 		for test in job.tests:
 			self.insert_test(job, test, commit=commit)
diff --git a/tko/parse.py b/tko/parse.py
index 24c8f66..dab8750 100755
--- a/tko/parse.py
+++ b/tko/parse.py
@@ -5,6 +5,8 @@
 build_stock = re.compile('build generic stock (2\.\S+)')	
 build_url   = re.compile('build generic url \S*/linux-(2\.\d\.\d+(\.\d+)?(-rc\d+)?).tar')	
 valid_kernel= re.compile('2\.\d\.\d+(\.\d+)?(-rc\d+)?(-(git|bk))\d+')
+user = re.compile(r'user(\s*)=')
+label = re.compile(r'label(\s*)=')
 
 debug = True
 
@@ -32,6 +34,18 @@
 		self.tests = []
 		self.kernel = None
 
+		# Get the user + tag info from the keyval file.
+		jobkeyval = os.path.join(dir, "keyval")
+		self.user = None
+		self.label = None
+		if os.path.exists(jobkeyval):
+			for line in open(jobkeyval, 'r').readlines():
+				if user.search(line):
+					(key, value) = line.split('=', 1)
+					self.user = value.strip()
+				if label.search(line):
+					(key,value) = line.split('=', 1)
+					self.label = value.strip()
 		if not os.path.exists(self.status):
 			return None
 
