# Build a target account list from the tech your prospects run

> Pick a technology, filter by country, size and spend, then work the results as a table and push the good accounts into HubSpot without paying for the list twice.

- Workflow type: app
- Services: BuiltWith, HubSpot, Google Sheets
- Categories: Sales, Marketing
- Published: 2026-08-16

## What it does

- Pick a technology, such as a competitor's product, Shopify Plus or Klaviyo, and filter by country, traffic rank, employee count and advertising spend to get every company running it
- Work the results as a sortable table and open any row for that company's full stack, past and present, including when each tool was added and when it disappeared
- See exactly what a lookup will cost before you run it, with a free first pass across the whole list and paid detail only on the rows you actually open or tick
- Push the accounts worth chasing into HubSpot as companies with a note summarising their stack and why they fit, or send the selection to a Google Sheet for the SDR team, with anything already in your CRM greyed out so it never gets added twice

## What you'll need

- A BuiltWith account on a paid plan, since searching for sites by technology and pulling a company's full stack are not part of the free tier
- A HubSpot login with permission to view and create companies and notes
- A Google account and a spreadsheet, if you want to hand lists to the SDR team that way

## Prompt

Build me a prospect list builder I open whenever I am putting together a target account list. It runs on BuiltWith and it is an interactive surface, not a scheduled job. I pick a technology, work the results in a table, and decide what to push. Nothing costs money or leaves the app unless I press something.

The app opens on a search builder. I pick a technology, for example Shopify Plus, Klaviyo, or a competitor's product, and set filters for country, traffic rank, employee count and advertising spend, then run it with the BuiltWith Lists API operation Find Sites Using a Technology. Lists pages with an opaque cursor: each response returns NextOffset, which I pass back as OFFSET on the next call, and the set is exhausted when NextOffset comes back as END. Load one page at a time behind a Load more control rather than draining the entire list on the first run.

Lists returns application level errors inside a 200 response, so check the Errors array as well as the HTTP status. Code -4 means the technology name was not recognised, so show me a correction prompt with close matches instead of an empty table. Code -5 means the result set is too large, so tell me to tighten the filters and point at which filter would cut it down fastest. An empty table with no explanation is the failure mode I want you to design out.

Make competitor displacement a first class starting point. Alongside a blank search, give me presets for the plays that actually work: sites running a named competitor, sites running a product we integrate with, sites on a legacy platform worth replacing, and sites whose stack looks like our best customers. Displacement is the one I run most often, so make it the default preset.

Results land in a sortable, filterable table with domain, company name, country, traffic rank, employee count, spend estimate and the technologies that matched my filter. Before any of it costs me money, run a first pass across the whole result set with the BuiltWith Free API Lookup, which is no cost and returns aggregated technology group counts and detection timestamps for a root domain. Use it to fill cheap qualifying columns such as how many technology categories a site runs and how recently it was seen, so I can sort out the junk before spending a single credit. The Free API only accepts root domains and is rate limited to one request per second, so run it in the background with a progress indicator rather than blocking the table.

Clicking any row opens a detail panel with that company's full current and historical stack from the BuiltWith Domain API Lookup, grouped by category, showing what is live now, what has been dropped, and the first and last detected dates for each technology so I can see when they added something and when they moved off it. Domain API timestamps are epoch milliseconds, so render them as readable dates. This is the expensive call at one credit per domain returned, so only ever spend it on rows I open or select, never across the whole table. Cache each result for the session so re-opening a row I already looked at does not bill me twice, and batch selections into the comma separated form, which accepts up to 16 lookups per request at one credit per result.

Because BuiltWith bills per credit, show me the cost before I commit. Every action that spends credits gets a confirm step stating exactly what it will use, for example enriching 24 selected rows costs 24 credits, and loading another page of list results costs a page of credits. Keep a running total of what this session has spent in the header, and label the free pass clearly as no cost so I can tell the two apart at a glance.

Cross check every result against our CRM using HubSpot Search Companies, matching on the company domain. Anything already in HubSpot shows greyed out, with the existing company name and record owner and a link to the record, and cannot be selected for push, so I never create a duplicate. Separately, keep the app's own record of every domain I have pushed from here, along with what it was pushed to and when, and mark those rows too, since a domain I appended to a spreadsheet last week will not turn up in a HubSpot company search.

For the accounts I tick, give me two push options. The first creates each one in HubSpot with Create Company, setting name, domain, country and the firmographics from the list result, then adds a Create Note associated to that new company summarising what they run and why they fit, written from the technologies found. The second appends the selection to a Google Sheet with Append Values, one row per account with domain, company name, country, rank, employee count, spend estimate, stack summary and the date I pushed it, so the SDR team can work straight from the sheet. Both write to the pushed-domain record, and both report per row results so a partial failure is visible instead of silent.

Saved searches are per user, and so is the pushed-domain record. Saving a search keeps the technology, every filter and the set of domains that run returned. Re-running a saved search runs the same query again and flags anything not present in the previous run as a new arrival, with a toggle to show only new arrivals, so I can re-run last month's displacement list and see nothing but what changed. On the saved search list show me when each one was last run and how many new domains came back.

## How to customize

- Set default filters so every new search starts from your ideal customer profile, such as a minimum traffic rank or a fixed set of countries
- Change what the note written into HubSpot says, including which technologies get called out and how the fit reasoning is worded
- Change which columns get exported to the spreadsheet and the order they appear in

## FAQ

### Will this burn through my BuiltWith credits?

That is the whole point of the design. The first pass across your entire result set is free and costs nothing, and anything that does spend credits asks you to confirm first, telling you exactly how many it will use. Full company detail is only pulled for the rows you open or tick, and a running total of what the session has spent stays visible on screen.

### What happens if a company is already in our CRM?

It shows up greyed out and cannot be pushed again. The app checks every result against your HubSpot companies by website address, shows you the existing record and its owner, and also keeps its own record of everything you have pushed from here before, so accounts you sent to a spreadsheet last week are flagged too.

### Can I find companies using a competitor's product?

Yes, and that is the default starting point. Searching for every site running a named competitor is the highest value play in this kind of targeting, so it is built in as a preset alongside searches for companies running a product you integrate with or a legacy platform worth replacing.

### Can I re-run a search later and only see the new companies?

Yes. Saved searches remember the technology, all your filters and the companies that came back last time, so re-running one flags everything new since the previous run and lets you hide the rest.

### Do I need a paid BuiltWith plan?

For the main list search and the full company stack detail, yes. A free BuiltWith account only covers the no cost first pass, which gives you a rough sense of how much technology a site runs but not the searchable list or the detailed history.

Use this prompt in General Input: https://www.generalinput.com/prompts/build-a-target-account-list-from-the-tech-your-prospects-run