Find ICP accounts, verify the emails, file them in HubSpot

One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.

App
HunterHubSpotSalesLead EnrichmentData SyncResearch & Monitoring
PromptCreate

I want an ICP prospecting workbench my SDRs open whenever they need to build a new target list, so they stop bouncing between Hunter's search screen, a scratch spreadsheet and the CRM. It is rep driven rather than scheduled: a rep opens it, searches, reviews what comes back, and decides what gets saved and what gets pushed.

The main view is a company search surface. Down the left is a filter panel with industry, headcount range, location, technology and funding. Hitting Search runs Hunter Search Companies (the Discover operation) with whatever fields are filled in, leaving blank fields out of the query entirely. Show the total number of matching companies first, before pulling anything else, so a rep can tighten the filters against a live match count rather than committing blind. Results render as a paged grid of company cards.

Each card shows the company logo from Get Company Logo, a business snapshot from Enrich Company by Domain covering industry, a one or two sentence description, headquarters and tech stack, and a contact coverage bar from Get Email Count for Domain that breaks the account's known email addresses down by department and seniority. The coverage bar is what tells a rep at a glance whether an account is worth working, so make it the visual centerpiece of the card rather than a footnote. A rep should be able to see that an account has twelve known addresses with four in engineering and none in finance without clicking anything.

Hunter bills by credit and the rates differ per operation, so be deliberate about what runs when. Discover, Get Email Count for Domain and the logo endpoint are free, so they can run for every card on every page. Enrich Company by Domain costs 0.2 credits per company, so only enrich the cards actually on screen and cache the result per domain so paging back and forth never pays for the same company twice. Search Emails by Domain costs 1 credit per 10 emails returned and Verify Email Address costs 0.5 credits each, so those only ever run on an explicit action. Before any search or verification batch runs, show the estimated credit cost of that batch and make the rep confirm it.

Every account already in HubSpot must be visibly tagged as already in CRM so reps never re-prospect an account the team owns. For the domains on the current page, run HubSpot Search Companies filtered on the domain, and render matched cards with a clear already in CRM badge, unticked by default, plus a link straight to the HubSpot record. Cache the match per domain so scrolling the grid does not re-query the CRM for the same account.

Clicking a company opens a drawer listing its actual people from Search Emails by Domain. Each row shows the email address, confidence score, job title, department and seniority, sorted most senior and highest confidence first, with department and seniority filters at the top of the drawer. The rep ticks the people they want and presses Verify selected, which runs Verify Email Address on just those addresses and stamps each row with its result. Only addresses that come back deliverable are savable by default. Risky ones are visibly flagged and stay unselectable until the rep flips an explicit override, and undeliverable ones stay blocked entirely. The verifier sometimes answers that verification is still in progress, so poll for the final result rather than treating that as a failure.

A Save to leads list button writes the keepers into Hunter. The rep either picks an existing list or names a new one, which is created with Create Leads List, and each selected person is written with Upsert Lead so re-running a search never duplicates a lead. Carry across everything the app already knows about that person: first and last name, position, company name and domain, confidence score and the verification result. Leads and leads list operations are free, so saving costs nothing.

A second button pushes the selected people into HubSpot, and it checks before it writes so nothing gets duplicated. For each account, run HubSpot Search Companies on the domain and reuse the existing record if there is one, otherwise use Create Company with name, domain, industry, description, city and country from the enrichment. For each person, run Search Contacts on the email address ignoring capitalization and skip anyone already on file, otherwise use Create Contact with email, first and last name and job title. Then use Create Association to file each contact against the right company. Finish with a summary of what was created, what matched an existing record and what failed, with a retry for the failures.

Add a Build this list for me button that kicks off a background agent. The rep types their ideal customer profile in plain English, for example Series B fintech companies in the UK between 50 and 200 people running Stripe, plus a name for the list and how many accounts they want. The agent turns that description into Discover filters and runs Search Companies, enriches each result with Enrich Company by Domain, checks reachability with Get Email Count for Domain, and picks the accounts that genuinely fit the description rather than simply taking the first N returned. It skips anything HubSpot Search Companies says is already in the CRM. For each account it keeps, it runs Search Emails by Domain, picks two or three likely decision makers by department and seniority, verifies each one with Verify Email Address and drops anything that is not deliverable. It writes the survivors into a named Hunter leads list with Create Leads List and Upsert Lead, and records a one line fit rationale per lead explaining why that account and that person made the cut.

The agent's output has to land somewhere the workbench can render. Store each run with the brief it was given, the list it produced, the fit rationale per lead, and what it skipped and why, whether that was already in the CRM, no reachable contacts, or nothing that verified. Show run state on the button while it works and do not let two runs start at once for the same rep. When a run finishes, open the produced list in the workbench with the rationale line under each lead so the rep can read it, drop anyone they disagree with, and push the rest into HubSpot through the same deduped push described above.

Persist named filter sets so a rep can rerun last month's criteria in one click, storing the criteria rather than the results so every rerun returns fresh data. Also persist the cached company enrichment and CRM match per domain, the verification result per address, the lists the team has built, and the agent run history. Saved searches are per rep, but the already in CRM markers and the built lists are shared across the whole team so two reps never work the same account.

What does this prompt do?

  • One screen where you filter for companies by industry, headcount, location, technology and funding, and every match comes back as a card with its logo, a short business profile, and a bar showing how many contacts are known there broken down by department and seniority
  • Accounts your team already has in the CRM are tagged on sight so nobody spends a morning prospecting an account you already own, and the app shows the estimated credit cost of a search or a verification batch before it spends anything
  • Open any company to see its actual people with job title, department, seniority and a confidence score, tick the ones you want, and only addresses that come back deliverable are savable by default, with risky ones behind an explicit override
  • Press Build this list for me, describe your ideal customer in plain English, and an assistant runs the whole pass in the background: it finds matching accounts, picks the best fits, verifies two or three decision makers at each one, and hands back a finished list with a one line reason per lead

What do I need to use this?

  • A Hunter account with credits available (the free plan is enough to try the workbench, a paid plan for regular list building)
  • A HubSpot account and a login allowed to create companies, contacts and the links between them
  • A rough idea of your ideal customer profile, for example the industries, company sizes and countries you sell into

How can I customize it?

  • Change which filters appear in the panel, for example adding the technologies you integrate with or dropping funding stage if you do not sell by it
  • Change which departments and seniority levels count as decision makers, so the people list is as narrow or as wide as your team needs
  • Decide how strict the save rule is: deliverable addresses only, or allow risky ones when a rep explicitly overrides
  • Change what gets written on push, including which company and contact fields are filled in and the lifecycle stage new records land in

FAQs

Will this burn through my Hunter credits?
It is built to protect them. The company search, the contact coverage bar and the logos are free lookups, so the grid can refresh without spending anything. Business profiles are only pulled for the cards actually on your screen and are remembered, the full people list is only fetched when you open a company, and verification only ever runs on the people you tick. On top of that, the app shows you the estimated cost of a search or a verification batch before it runs.
How do I stop reps prospecting accounts we already own?
Every account already sitting in your CRM is tagged on the card with an already in CRM badge, is unticked by default, and links straight through to the record. The agent that builds lists for you skips those accounts too, so a generated list is net new by construction.
Could it save email addresses that bounce?
Not by default. Every address you tick is checked for deliverability before it can be saved, and only the ones that come back deliverable are savable. Risky addresses are flagged and stay locked until someone explicitly overrides them, and undeliverable ones stay blocked.
Does this create duplicate records in my CRM?
No. Before writing anything it looks up the company by its web domain and each person by their email address, ignoring capitalization. Anything already on file is reused and reported as matched rather than created a second time.
Do I have to build every list by hand?
No. There is a Build this list for me button where you describe your ideal customer in plain sentences. An assistant works in the background, finds the matching accounts, picks the best fits, finds and checks two or three decision makers at each one, and writes a finished list with a one line reason each lead made the cut, which you can then review and push to the CRM.
Will this work on HubSpot Free?
Yes. It only uses companies, contacts and the links between them, which every HubSpot plan including the free tier has. You just need a login with permission to create those records.

Related templates

Client-by-client cold email pipeline review for agencies

Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.

Instantly
HubSpot
Slack Bot
App
Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
Hiring signal board for your customers and open pipeline

Open one board each morning to see which of your accounts are hiring, what they are building, and where your product fits the roles they just opened.

JobsPipe
HubSpot
App
Placement pricing desk for recruiting and staffing agencies

Open a live deal, see the market pay range for that role and city, set your markup, and write the agreed numbers straight back onto the deal.

Job Salary Data
HubSpot
App
Instagram comment and DM triage inbox for your team

Work every unanswered Instagram comment, Reel reply and Direct message from one queue, with claimed rows so two people never answer the same person.

Instagram
HubSpot
Slack Bot
App

Stop building target lists across three browser tabs.

Filter to the accounts that fit your ideal customer, see who is actually reachable there, and save only the addresses that verify.