in Marketing

5 Easy Steps to Build a SaaS Lead Generation App

SaaS lead generation apps are becoming more popular among Zillabyte’s users. Startups are looking for new ways to get find the right customers and get them signed up. It’s a difficult problem to solve.

You can post on blogs, spend tons on Google AdWords, and flood your social media with content and still only get a trickle of new users. So when a startup in the SaaS market talks to me about trying to fill their pipeline with new users, I show them apps very similar to what I’ll show in this post.

I’m going to show you a simple app you can modify and run on Zillabyte to give your lead generation efforts a healthy boost. Make a folder called ‘Lead_Generation_App’. This folder will house everything you make. Now let’s build our app!

Step 1: Fill Your CSV

The first thing you want to do is make a list of your competitors and their ‘online footprint’ in a CSV file.¬†You know your place in the SaaS market better than anyone else and know who your main competition is versus who doesn’t quite fit the bill.

Make this list of competitors as thorough as you want, or focus on a few key players.

When you have your list of companies, go find their ‘online footprint’. This is whatever the company uses to integrate with their customers’ websites, like a javascript tag. Try looking at their docs pages or do a Google search like “Company Name + javascript/api/plugin”.

Usually one of those searches turns up a good starting point for your app. If those don’t work and you really want to find this competitor’s footprint go to their customers page (startups love ‘social proof’ pages), go to their websites, and look at the source code. That can be a bit laborious so only do it if you really need to.

Once you have your competitors’ footprints, put them in the CSV (I usually name mine widgets.csv). Now we’re going to write the functionality for this app.

Step 2: Writing the Script

We’re going to make a few files to go in our Lead_Generation_App folder. Feel free to use the code in your own files. I have heavily commented the app so you can understand what’s going on.


require 'zillabyte'
require 'csv'

# Instantiate a Zillabyte app and name it
app = "feedback_tools"

# Source your app's data from web pages
input = app.source "homepages"

# Set up your app's streaming
tool_use_stream = input.each do
  name "feedback_tool_finder"
  prepare do
    # Preload the CSV file into a global var so we don't do it for each page we process.
    @cat_snippets =  CSV.parse('tool_indicators.csv'), :headers => ["company","snippet"])
  # Execute the app
  execute do |page|
    @cat_snippets.each do |row|
      # Iterate through each snippet in the CSV file
      company, snippet = row["company"], row["snippet"]
      if page["html"].to_s.include?(snippet)
        # Emit the domain to the stream
        emit :url => page["url"], :company => company
# Save your leads, naming the table and columns
tool_use_stream.sink do
  name "tool_use"
  column "url", :string
  column "company", :string

It’s a very simple, powerful app that will be extracting potentially thousands of leads for you. The only other files you need in the folder are:


source ''
gem "zillabyte"


language: ruby
script: app.rb

Step 3: Bundle!

Your app is complete, but as any Ruby developer knows, you need to run the ‘bundle install’ command.

Step 4: Push the App

With your app built and everything set up you can push your app. Sign into Zillabyte and make sure you have your auth token ready. From the Command Line, in the Lead_Generation_App folder, run ‘zillabyte push’. This will push your app onto our machines. If there is an error it will show you in the logs that are pulled up.

Step 5: Pull Your Data

Several hours later you can pull your list of leads into a gunzip (.gz) file. The command is:

zillabyte relations:pull relation_name new_file_name.gz.

This file will populate in your app’s folder. You will want to move it elsewhere for future use so you dont also push extra data every time you use the app in the future.

That’s everything you need to build your Lead Generation App. Once you have downloaded Zillabyte you can push this app on our machines and let the app do the work for you. After several hours I had 114,728 url’s! Each one is a potential lead. You will have a list of every URL with your competitor’s footprints in them using little code, and pushing an app. That’s a lot of leads for very little work. Plus you now own this data locally. Here are some more things you can do with that data:

New A/B Tests for Acquisition

Pursuing so many new leads will give you have the opportunity to test how well you communicate your value propositions when you run an email campaign. These potential customers will at least know what you do, now you have to sell them on why you do it better than their current SaaS provider. The lists our Lead Generation apps yield can get pretty long so you can run a series of experiments. Refine your campaigns to easily capture new users you can find in our next example.

Collect Historical User Data

You can run this app every week and see what new users your competitors picked up or lost. If there are new users they are probably on a free trial. Set up an email to go to these people about thirty days after they sign up. You can ask them to try your free trial and pitch what makes you better than the rest.

Analyze Your Competitor’s User Base

Take advantage of having a list of your competitors’ users and dig deeper. Get to know what markets they have cornered and position yourself to take advantage of this. Do you want to target a segment they are dominating or focus on other user groups? With this information you can make a more informed decision for either option.

There are many more uses for this information if you are creative, but this is definitely enough to get you started. For now give the app a shot! Zillabyte is looking for feedback as we continue to build our product. You can get started running this app for free by signing up and downloading the Zillabyte gem. We encourage you to customize your apps to get the most out of them after you have started with a more basic app like this.

Write a Comment


    • That depends on your project really. You can build an app to crawl specific directories, use your infrastructure to speed up the process and to store leads. Do you have specific sites you plan to pull leads from? If that is the case, you will need to use our expanded syntax for custom sources. Here is our docs for this:

      The app above crawls one of our web data sets, which may not have the specific information you want. It is better for broad analysis.