diff --git a/README.rst b/README.rst
old mode 100755
new mode 100644
index fe3421d..b24514d
--- a/README.rst
+++ b/README.rst
@@ -352,6 +352,8 @@
 
 Interpolating parameters for job templates.
 
+.. code-block:: yaml
+
     _param:
       salt_formulas:
       - aodh
@@ -368,6 +370,22 @@
             param:
               formula: ${_param:salt_formulas}
 
+Or simply define multiple jobs and it's parameters to replace from template:
+
+.. code-block:: yaml
+
+   jenkins:
+     client:
+       job_template:
+         test_workflow_template:
+           name: test-{{name}}-{{myparam}}
+           template:
+             ...
+           jobs:
+             - name: firstjob
+               myparam: dummy
+             - name: secondjob
+               myparam: dummyaswell
 
 Purging undefined jobs from Jenkins
 
diff --git a/jenkins/client/_job.sls b/jenkins/client/_job.sls
new file mode 100644
index 0000000..003a11a
--- /dev/null
+++ b/jenkins/client/_job.sls
@@ -0,0 +1,39 @@
+{%- if job.enabled|default(True) %}
+
+jenkins_job_{{ job_name }}_definition:
+  file.managed:
+  - name: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
+  - source: salt://jenkins/files/jobs/{{ job.type }}.xml
+  - mode: 400
+  - template: jinja
+  - defaults:
+      job_name: {{ job_name }}
+      {%- if job is defined %}
+      job: {{ job|yaml }}
+      {%- endif %}
+  - require:
+    - file: jenkins_client_dirs
+
+jenkins_job_{{ job_name }}_present:
+  jenkins_job.present:
+  - name: {{ job_name }}
+  - config: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
+  - watch:
+    - file: jenkins_job_{{ job_name }}_definition
+    - file: /etc/salt/minion.d/_jenkins.conf
+
+{%- else %}
+
+jenkins_job_{{ job_name }}_definition:
+  file.absent:
+  - name: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
+  - require:
+    - file: jenkins_client_dirs
+
+jenkins_job_{{ job_name }}_absent:
+  jenkins_job.absent:
+  - name: {{ job_name }}
+  - watch:
+    - file: /etc/salt/minion.d/_jenkins.conf
+
+{%- endif %}
diff --git a/jenkins/client/job.sls b/jenkins/client/job.sls
index 217278d..821fff8 100644
--- a/jenkins/client/job.sls
+++ b/jenkins/client/job.sls
@@ -4,44 +4,7 @@
   - jenkins.client
 
 {%- for job_name, job in client.get('job', {}).iteritems() %}
-
-{%- if job.enabled|default(True) %}
-
-jenkins_job_{{ job_name }}_definition:
-  file.managed:
-  - name: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
-  - source: salt://jenkins/files/jobs/{{ job.type }}.xml
-  - mode: 400
-  - template: jinja
-  - defaults:
-      job_name: {{ job_name }}
-  - require:
-    - file: jenkins_client_dirs
-
-jenkins_job_{{ job_name }}_present:
-  jenkins_job.present:
-  - name: {{ job_name }}
-  - config: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
-  - watch:
-    - file: jenkins_job_{{ job_name }}_definition
-    - file: /etc/salt/minion.d/_jenkins.conf
-
-{%- else %}
-
-jenkins_job_{{ job_name }}_definition:
-  file.absent:
-  - name: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
-  - require:
-    - file: jenkins_client_dirs
-
-jenkins_job_{{ job_name }}_absent:
-  jenkins_job.absent:
-  - name: {{ job_name }}
-  - watch:
-    - file: /etc/salt/minion.d/_jenkins.conf
-
-{%- endif %}
-
+  {%- include "jenkins/client/_job.sls" %}
 {%- endfor %}
 
 {%- if client.get('purge_jobs', False) %}
@@ -57,6 +20,15 @@
           {%- do jobs.append(job_name) %}
         {%- endfor %}
       {%- endfor %}
+
+      {%- for job_params in job_template.get('jobs', []) %}
+        {%- set job_name = job.template.name %}
+        {%- for key, value in job_params.iteritems() %}
+          {%- set replacer = "{{" + key + "}}" %}
+          {%- set job_name = job_name|replace(replacer, value) %}
+          {%- do jobs.append(job_name) %}
+        {%- endfor %}
+      {%- endfor %}
     {%- endif %}
   {%- endfor %}
 
diff --git a/jenkins/client/job_template.sls b/jenkins/client/job_template.sls
index e974656..8d519cd 100644
--- a/jenkins/client/job_template.sls
+++ b/jenkins/client/job_template.sls
@@ -5,36 +5,34 @@
 
 {%- for job_template_name, job_template in client.get('job_template', {}).iteritems() %}
   {%- if job_template.get('enabled', true) %}
-    {# now just 1 defined param is supported #}
-    {%- if job_template.param|length == 1 %}
-      {%- for param_name, params in job_template.param.iteritems() %}
-        {%- set replacer = "{{" + param_name + "}}" %}
-        {%- for param in params %}
-          {%- set job_name = job_template.name|replace(replacer, param) %}
-          {%- set job = job_template.template|yaml|replace(replacer, param)|load_yaml %}
-
-jenkins_job_{{ job_name }}_definition:
-  file.managed:
-  - name: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
-  - source: salt://jenkins/files/jobs/{{ job.type }}.xml
-  - mode: 400
-  - template: jinja
-  - defaults:
-      job_name: {{ job_name }}
-      job: {{ job|yaml }}
-  - require:
-    - file: jenkins_client_dirs
-
-jenkins_job_{{ job_name }}_present:
-  jenkins_job.present:
-  - name: {{ job_name }}
-  - config: {{ client.dir.jenkins_jobs_root }}/{{ job_name }}.xml
-  - watch:
-    - file: jenkins_job_{{ job_name }}_definition
-    - file: /etc/salt/minion.d/_jenkins.conf
-
-        {%- endfor %}
+    {#- Matrix way, simulating behavior of Jenkins job builder, not fully
+        supported at the moment #}
+    {%- for param_name, params in job_template.get('param', {}).iteritems() %}
+      {%- set replacer = "{{" + param_name + "}}" %}
+      {%- for param in params %}
+        {%- set job_name = job_template.name|replace(replacer, param) %}
+        {%- set job = job_template.template|yaml|replace(replacer, param)|load_yaml %}
+        {%- include "jenkins/client/_job.sls" %}
       {%- endfor %}
-    {%- endif %}
+    {%- endfor %}
+
+    {#- Simple list of jobs togenerate with multiple parameters to replace #}
+    {%- for job_params in job_template.get('jobs', []) %}
+      {%- set _job_name = [job_template.name] %}
+      {%- set _job = [job_template.template] %}
+
+      {%- for key, value in job_params.iteritems() %}
+        {#- You may think WTF hack is this but we can't update variables in
+            inner scope to replace all parameters. But we can abuse lists for
+            this purpose }:-) #}
+        {%- set replacer = "{{" + key + "}}" %}
+        {%- do _job_name.append(_job_name|last|replace(replacer, value)) %}
+        {%- do _job.append(_job|last|yaml|replace(replacer, value)|load_yaml) %}
+      {%- endfor %}
+
+      {%- set job_name = _job_name|last %}
+      {%- set job = _job|last %}
+      {%- include "jenkins/client/_job.sls" %}
+    {%- endfor %}
   {%- endif %}
 {%- endfor %}
