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.
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?
How do I stop reps prospecting accounts we already own?
Could it save email addresses that bounce?
Does this create duplicate records in my CRM?
Do I have to build every list by hand?
Will this work on HubSpot Free?
Related templates
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.
Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.
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.
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.
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.
Work every unanswered Instagram comment, Reel reply and Direct message from one queue, with claimed rows so two people never answer the same person.
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.