diff --git a/lib/gitlab/ci/config/node/global.rb b/lib/gitlab/ci/config/node/global.rb
index f92e1eccbcf4f0d2b32a3c03133d8f429acafab8..0a4315db047fa396621c3ed80122d07f71765c5d 100644
--- a/lib/gitlab/ci/config/node/global.rb
+++ b/lib/gitlab/ci/config/node/global.rb
@@ -36,6 +36,22 @@ module Gitlab
           helpers :before_script, :image, :services, :after_script,
                   :variables, :stages, :types, :cache
 
+          def initialize(config)
+            return super(config) unless config.is_a?(Hash)
+
+            jobs = config.except(*self.class.nodes.keys)
+            global = config.slice(*self.class.nodes.keys)
+
+            super(global.merge(jobs: jobs))
+          end
+
+          ##
+          # Temporary refactoring stub
+          #
+          def jobs
+            @config[:jobs]
+          end
+
           def stages
             stages_defined? ? stages_value : types_value
           end
diff --git a/spec/lib/gitlab/ci/config/node/global_spec.rb b/spec/lib/gitlab/ci/config/node/global_spec.rb
index c87c9e97bc82b49b711e714a101b5422d1be18e0..88194bf94531055474c3eca2341557bc8af16462 100644
--- a/spec/lib/gitlab/ci/config/node/global_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/global_spec.rb
@@ -22,7 +22,9 @@ describe Gitlab::Ci::Config::Node::Global do
           variables: { VAR: 'value' },
           after_script: ['make clean'],
           stages: ['build', 'pages'],
-          cache: { key: 'k', untracked: true, paths: ['public/'] } }
+          cache: { key: 'k', untracked: true, paths: ['public/'] },
+          rspec: { script: 'rspec' },
+          spinach: { script: 'spinach' } }
       end
 
       describe '#process!' do
@@ -120,6 +122,14 @@ describe Gitlab::Ci::Config::Node::Global do
               .to eq(key: 'k', untracked: true, paths: ['public/'])
           end
         end
+
+        describe '#jobs' do
+          it 'returns jobs configuration' do
+            expect(global.jobs)
+              .to eq(rspec: { script: 'rspec' },
+                     spinach: { script: 'spinach' })
+          end
+        end
       end
     end