diff --git a/jenkins-dsl/cassandra_job_dsl_seed.groovy b/jenkins-dsl/cassandra_job_dsl_seed.groovy
index 857ea0c..a51133f 100644
--- a/jenkins-dsl/cassandra_job_dsl_seed.groovy
+++ b/jenkins-dsl/cassandra_job_dsl_seed.groovy
@@ -169,6 +169,59 @@
     }
 }
 
+/**
+ * cqlsh template
+ */
+matrixJob('Cassandra-template-cqlsh-tests') {
+    disabled(true)
+    description(jobDescription)
+    jdk(jdkLabel)
+    label(slaveLabel)
+    logRotator {
+        numToKeep(10)
+    }
+    wrappers {
+        timeout {
+            noActivity(1200)
+        }
+    }
+    throttleConcurrentBuilds {
+        categories(['Cassandra'])
+    }
+    axes {
+        text('cython', 'yes', 'no')
+    }
+    scm {
+        git {
+            remote {
+                url(mainRepo)
+            }
+            branch('*/null')
+            extensions {
+                cleanAfterCheckout()
+            }
+        }
+    }
+    triggers {
+        scm('@weekly')
+    }
+    steps {
+        buildDescription('', buildDescStr)
+        shell("git clean -xdff ; git clone ${buildsRepo} ; git clone ${dtestRepo}")
+    }
+    publishers {
+        junit {
+            testResults('cqlshlib.xml, nosetests.xml')
+            testDataPublishers {
+                stabilityTestDataPublisher()
+            }
+        }
+        postBuildTask {
+            task('.', 'echo "Finding job process orphans.."; if pgrep -af ${JOB_BASE_NAME}; then pkill -9 -f ${JOB_BASE_NAME}; fi')
+        }
+    }
+}
+
 ////////////////////////////////////////////////////////////
 //
 // Branch Job Definitions
@@ -251,6 +304,20 @@
             }
         }
     }
+
+    /**
+     * Main branch cqlsh jobs
+     */
+    matrixJob("${jobNamePrefix}-cqlsh-tests") {
+        disabled(false)
+        using('Cassandra-template-cqlsh-tests')
+        configure { node ->
+            node / scm / branches / 'hudson.plugins.git.BranchSpec' / name(branchName)
+        }
+        steps {
+            shell('./cassandra-builds/build-scripts/cassandra-cqlsh-tests.sh')
+        }
+    }
 }
 
 ////////////////////////////////////////////////////////////
