code: function createJob(feed) {
  
    // Job skeleton
    var job = {
      id: 'Job[' + uuid.v4() + ']',
      original: feed,
      time: {
        start: 0,
        end: 0
      },
      state: {
        retrying: false,
        failing: false
      },
      req: {
        retries: 0,
        data: {}
      },
      res: {
        data: null
      }
    };
  
    // Handling polymorphism
    if (types.check(feed, 'string')) {
      job.req.url = feed;
      feed = {};
    }
    else {
  
      // Parsing url if needed
      if (feed.url)
        if (types.check(feed.url, 'object'))
          job.req.url = nodeUrl.format(extend(feed.url, {protocol: 'http'}));
        else
          job.req.url = feed.url;
      else if (feed.host || feed.hostname)
        job.req.url = nodeUrl.format(extend(feed, {protocol: 'http'}));
    }
  
    // Request properties
    job.req.data = feed.data || {};
  
    [
      'auth',
      'artoo',
      'body',
      'bodyType',
      'cheerio',
      'cookies',
      'encoding',
      'headers',
      'method',
      'phantomPage',
      'proxy',
      'timeout'
    ].forEach(function(p) {
      if (feed[p]) {
  
        // Solving object proxy
        if (p === 'proxy' && types.check(feed[p], 'object'))
          job.req[p] = nodeUrl.format(extend(feed[p], {protocol: 'http'}));
  
        job.req[p] = feed[p];
      }
    });
  
    return job;
  }
docs: Helpers
   Creating a job object from a feed