diff --git a/features/spamtraining.py b/features/spamtraining.py
new file mode 100644
index 0000000..625fa53
--- /dev/null
+++ b/features/spamtraining.py
@@ -0,0 +1,63 @@
+"""Cron job to train spam model with all spam data."""
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import logging
+import settings
+import time
+
+from googleapiclient import discovery
+from googleapiclient import errors
+from google.appengine.api import app_identity
+from oauth2client.client import GoogleCredentials
+import webapp2
+
+class TrainSpamModelCron(webapp2.RequestHandler):
+
+  """Submit a job to ML Engine which uploads a spam classification model by
+     training on an already packaged trainer.
+  """
+  def get(self):
+
+    credentials = GoogleCredentials.get_application_default()
+    ml = discovery.build('ml', 'v1', credentials=credentials)
+
+    app_id = app_identity.get_application_id()
+    project_id = 'projects/%s' % (app_id)
+    job_id = 'spam_trainer_%d' % time.time()
+    training_input = {
+        'scaleTier': 'BASIC',
+        'packageUris': [
+            settings.trainer_staging
+            if app_id == "monorail-staging" else
+            settings.trainer_prod
+        ],
+        'pythonModule': 'trainer.task',
+        'args': [
+            '--train-steps',
+            '1000',
+            '--verbosity',
+            'DEBUG',
+            '--gcs-bucket',
+            'monorail-prod.appspot.com',
+            '--gcs-prefix',
+            'spam_training_data',
+            '--trainer-type',
+            'spam'
+        ],
+        'region': 'us-central1',
+        'jobDir': 'gs://%s-mlengine/%s' % (app_id, job_id),
+        'runtimeVersion': '1.2'
+    }
+    job_info = {
+        'jobId': job_id,
+        'trainingInput': training_input
+    }
+    request = ml.projects().jobs().create(parent=project_id, body=job_info)
+
+    try:
+      response = request.execute()
+      logging.info(response)
+    except errors.HttpError, err:
+      logging.error(err._get_reason())
