A hand attracting leads with a magnet

Lead Generation is key to any successful business development and sales process. Today’s tooling has reached a level of sophistication that allows Biz Dev and Sales leaders to target potential clients with surgical precision. I was pleasantly surprised to find out that my blog post about building an automated lead generation gave people a lot of good ideas! The founder of an investment fund reached out to me with an interesting problem for which my automation experience seemed like a good fit. In this blog post, we will go over how we build out a unique automated lead generation system based on the investor's feedback.


The challenge faced by the investor was that he needed to provide his portfolio companies with a way to take their Ideal Customer Profile and wade through the vast ocean of digital information on the Internet to find narrowly targeted companies that match that customer profile. The main premise was that companies that post listings for roles that require certain technologies could also be a signal that the company is in-market or open to a new vendor. This signal is one an SDR could follow up if they were monitoring it.

We determined that the easiest place to get such information was from Indeed.com, where the businesses do list some of the technologies they're expecting their employees to work with. The workflow for this process looked like this:

Leads automation workflow

The goal was to automate this workflow to the point where one could enter their Ideal Customer Profile and the tool would “magically” get all of the right targets at the end. However, an even bigger challenge was to make this solution without writing any code. There were key constraints with respect to where the information was going to come from and we settled on Indeed.com as the initial source. That would prove to make the “no-code” requirement extremely difficult to fulfill, but we ended up with a pretty elegant solution.


We built a simple low-code tool that allows the salesperson to define the profile of the companies they want to find, gather data, enrich it, and generate a lead matching the ICP (Ideal Customer Profile). Since the source for the potential leads are the job listings on Indeed, we determined that the ICP would be based on a job query, which we would then match to companies that are seeking a specific talent.

The workflow looks like this:

  1. Define the Indeed query that would result in relevant matches (Airtable).
  2. Build the query for each job listing (Airtable).
  3. Monitor the RSS feeds from Indeed for new listings (Clay.run) and store the new listings in Airtable.
  4. Enrich the company data (Zapier + Clearbit).

The tools we used are:

Airtable logo Clay.run logo Zapier logo

Clearbit logo
Airtable Clay.run Zapier Clearbit

Define the Query

Suppose that you’ve built a service that integrates with HotJar and you would like to find out what companies use HotJar. One way to find such companies is to look for job listings that include HotJar in the job description. In this case, we would construct an Indeed query that looks for any job listing where HotJar is part of the description:


We’ve added a few more narrowing filters, such as a salary of over $70K, the position must be full-time and optionally contain some other keywords. The result is that as of the writing of this article, there are 68 job listings from companies that match this profile.

indeed hotjar

Build the Query

As we can see, it is pretty important to have the ability to finetune and troubleshoot the queries to ensure that you get the best results! The next bit of magic is a simple but powerful Queries table. It’s a custom “query builder” in Airtable forms that mimics the search form in Indeed (see below).

airtable indeed form

Indeed has a number of search parameters so we had to ensure that our Airtable form covers all of the relevant ones. The parameters are processed and combined into a query string, which is then used to dynamically construct the RSS URL. The RSS URL is used to access the RSS feed corresponding to that particular search query. The other important thing here is the ability to inspect the query results. That’s made possible by looking at the Query URL, which opens up the standard search results from Indeed where you can easily see the actual result that Indeed would serve for that query.

airtable indeed query

All the magic happens in the formulas for the fields Query String, RSS URL and Query URL.

Here is the Query String formula:

CONCATENATE("q=", SUBSTITUTE(TRIM(LOWER(Keywords)), " ", "+"),
"&as_any=", SUBSTITUTE(TRIM(LOWER({Any Keywords})), " ", "+"),
"&as_any=", SUBSTITUTE(TRIM(LOWER({Any Keywords})), " ", "+"),
{Location QP}, {Salary QP},
"&as_not", SUBSTITUTE(TRIM(LOWER({Exclude})), " ", "+"),
"&jt=", {Type},
"&sr=", IF({Direct}, "directhire", ""),
"&as_phr=", SUBSTITUTE(TRIM(LOWER({Exact Phrase})), " ", "+"),
"&as_cmp=", SUBSTITUTE(TRIM(ENCODE_URL_COMPONENT(LOWER({Company}))), "%2C", "+or+"),
"&as_ttl=", SUBSTITUTE(TRIM(LOWER({In Title})), " ", "+"),
"&st=", IF({Allow Staffing}, "", "employer"),
"&fromage=", {Age})

Here is the RSS URL formula:

CONCATENATE("http://rss.indeed.com/rss?", {Query String})

Here is the Query URL formula:

CONCATENATE("https://www.indeed.com/jobs?", {Query String})

Please feel free to request free access to our Airtable base in order to get the full formulas.

Monitor the RSS Feeds

Unlike the previous low-code lead generation tool I built, this one is a bit more tricky when it comes to the RSS monitoring. Given the fact that we’re building our RSS queries dynamically, we have to ensure that we’re also dynamically monitoring them. Any change to the query parameters will result in a new RSS URL, which will mean that you’ll also have to manually change any tool that uses the old link. Of course, this is still doable by hand and you can still use Zapier to monitor the RSS feeds. However, we’ve exposed a Clay.run function that does this automatically. The workflow for the Clay.run function is as follows:

  1. Every x minutes (where x is defined by you).
  2. Trigger the Clay.run function.
    1. The function fetches all of the RSS URLs from Airtable.
    2. For each RSS URL, check if there is a new item in the RSS feed.
    3. If there is a new item in the RSS feed, send it to the Jobs table in Airtable.

clay.run workflow

The end result is continuous monitoring of all new job listings that show up on Indeed, given the criteria we specified above. Pretty nifty:

airtable jobs

Enrich the Company Data

With each job listing, we also get the name of the company that posted the job along with the domain for the company. This is quite limited, so in order to really get quality leads, we have to enrich the company information. The workflow here is:

zapier workflow

Step 7 is where you select all the fields that you want to collect for the company and you insert the record into Airtable, if the record doesn’t already exist. Here is how it looks:

zapier record creation

If you’d like to learn how you can set up this flow, please feel free to contact us and we’ll be happy to share the Zapier workflow with you. The end result is a pipeline of leads with a ton of useful information by which you can filter them.

airtable companies kanban board

The default view is the Grid View, where you can also see the full list of leads that have been collected.

airtable companies grid view

Now You Just Have to Close

george costanza yelling at customer to sell a computer

Now you have an automated lead generation system! The hard part is over, now you just have to close your deals! 😉

At ST6, we always try to use technology to minimize the most expensive part of product development: software engineering. We believe that no-code/low-code tools are going to transform how early-stage product development and product validation works. Entrepreneurs can now build an MVP of their product with minimal coding effort and get something in the hands of their customers.

Contact us now in order to get free access to the Airtable base and/or get help with setting up your own lead generation pipeline.