All workflows

Qualify accounts against your ICP before buying contacts

Lists companies with Hunter, reads each homepage with Firecrawl, checks fit and business model with Jev, and finds buyers at the fits only.

Outcome

  • A table of every company checked, with its fit level, business model, sales motion and Jev's confidence.

  • The companies that fit, and for each one that didn't, the answer that ruled it out.

  • The buyers at each company that fits, from a search that spends no credits, ready to enrich.

How it works

  1. 1

    List candidates

    Hunter

    Search for target_segment and keep up to max_companies companies, with each one's name and domain.

  2. 2

    Read each homepage

    Firecrawl

    Scrape each domain's homepage as markdown. Keep the page text, and note the domains that fail to load or redirect elsewhere.

  3. 3

    Qualify

    TypeSafe AI

    Send each homepage's text as the state, with a score fit whose levels describe the match with ideal_customer: no fit (matches none of it), weak (matches some), good (matches most) and ideal (matches all); a choice business_model of b2b_software, b2b_services, b2c, marketplace, agency and other; a choice sales_motion of self_serve (sign-up and prices on the site), sales_led (demo or contact sales only) and hybrid; and a noul active_business (a live product, not a parked, acquired or shut-down site). Keep every answer with its confidence or probability.

  4. 4

    Check the unsure ones with the user

    Your agent

    Show the user every company whose fit confidence is below min_confidence or whose active_business is unsure, with its homepage's first lines, and keep what the user decides. Keep the active businesses with a fit of min_fit or better.

  5. 5

    Find the buyers

    Apollo

    Search each company that fits for buyer_titles. Keep each person's Apollo ID, first name, title and company.

You'll be asked for

  • The companies to start from, in plain words

    e.g. B2B software companies in the US with 50 to 500 employees

  • What a company that fits looks like, in a sentence or two

    e.g. sells software to other businesses, has a sales team and a self-serve free trial

  • The most companies to check in one run

    e.g. 100; Hunter returns up to 100 per search, and paging past them needs a Premium plan

  • The lowest fit level worth finding buyers at

    e.g. good

  • How sure Jev must be before its answer is used without you

    e.g. 0.8; a yes-or-no answer counts as yes at or above it and as no at or below 1 minus it

  • The people to find at each company that fits

    e.g. VP Marketing, Head of Growth

The file your agent runs

icp-account-qualification.md

Qualify accounts against your ICP before buying contacts

Lists companies with Hunter, reads each homepage with Firecrawl, checks fit and business model with Jev, and finds buyers at the fits only.

Set up the tools below, then run the steps in order for the user, carrying each step's results into the next. The run is done when the user has the outcome below.

Outcome

  • A table of every company checked, with its fit level, business model, sales motion and Jev's confidence.
  • The companies that fit, and for each one that didn't, the answer that ruled it out.
  • The buyers at each company that fits, from a search that spends no credits, ready to enrich.

Inputs

Ask the user for these before you start.

  • target_segment: the companies to start from, in plain words, e.g. B2B software companies in the US with 50 to 500 employees
  • ideal_customer: what a company that fits looks like, in a sentence or two, e.g. sells software to other businesses, has a sales team and a self-serve free trial
  • max_companies: the most companies to check in one run, e.g. 100; Hunter returns up to 100 per search, and paging past them needs a Premium plan
  • min_fit: the lowest fit level worth finding buyers at, e.g. good
  • min_confidence: how sure Jev must be before its answer is used without you, e.g. 0.8; a yes-or-no answer counts as yes at or above it and as no at or below 1 minus it
  • buyer_titles: the people to find at each company that fits, e.g. VP Marketing, Head of Growth

Set up

Search companies (Hunter, tool:hunter/search-companies)

Use the first option your agent supports.

Note: Returns no contacts: list each company's people with a domain search. technology, year_founded, similar_to and paging with offset need a Premium plan.

MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

{ "mcpServers": { "hunter": { "url": "https://mcp.hunter.io/mcp" } } }

Call the MCP tool Find-Companies.

API (official)

Scrape a URL (Firecrawl, tool:firecrawl/scrape-url)

Use the first option your agent supports.

MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

{ "mcpServers": { "firecrawl": { "url": "https://mcp.firecrawl.dev/v2/mcp-oauth" } } }

Call the MCP tool firecrawl_scrape.

CLI (official)

Install the command, then confirm it runs.

npm install -g firecrawl-cli
firecrawl --version

Run firecrawl scrape.

Set $FIRECRAWL_API_KEY in your environment first (get a key: https://www.firecrawl.dev/app/api-keys).

Answer typed questions (TypeSafe AI, tool:typesafe/answer-typed-questions)

Use the API.

Note: Put every question about one record in one request. GET /v1/models lists the models and is the cheapest check of a key; a request over the rate limit gets a 429 with a Retry-After header.

Note: Send state, model (jev-latest) and named questions, each with type, instructions and criteria: a choice maps labels to descriptions, a score lists its levels in order, a noul's is optional. Read a score by its most likely level; send unsure answers to a person.

Search people (Apollo, tool:apollo/search-people)

Use the first option your agent supports.

Note: Costs no credits and finds only net-new people, not contacts already saved in Apollo. Returns no emails: enrich the matches to get them. Up to 100 people per page and 50,000 in total.

MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

{ "mcpServers": { "apollo": { "url": "https://mcp.apollo.io/mcp" } } }

Call the MCP tool apollo_mixed_people_api_search.

CLI (official)

Install the command and sign in with it, then confirm it runs.

brew install apolloio/apollo-io-cli/apollo-io-cli
apollo --version

Run apollo people search.

Before step 1, confirm access to each service with its cheapest read-only call, like a list or a search. Never send or change anything to test access.

Steps

  1. List candidates with Search companies (Hunter). Search for target_segment and keep up to max_companies companies, with each one's name and domain.
  2. Read each homepage with Scrape a URL (Firecrawl). Scrape each domain's homepage as markdown. Keep the page text, and note the domains that fail to load or redirect elsewhere.
  3. Qualify with Answer typed questions (TypeSafe AI). Send each homepage's text as the state, with a score fit whose levels describe the match with ideal_customer: no fit (matches none of it), weak (matches some), good (matches most) and ideal (matches all); a choice business_model of b2b_software, b2b_services, b2c, marketplace, agency and other; a choice sales_motion of self_serve (sign-up and prices on the site), sales_led (demo or contact sales only) and hybrid; and a noul active_business (a live product, not a parked, acquired or shut-down site). Keep every answer with its confidence or probability.
  4. Check the unsure ones with the user yourself. Show the user every company whose fit confidence is below min_confidence or whose active_business is unsure, with its homepage's first lines, and keep what the user decides. Keep the active businesses with a fit of min_fit or better.
  5. Find the buyers with Search people (Apollo). Search each company that fits for buyer_titles. Keep each person's Apollo ID, first name, title and company.

Notes

Qualifying before enriching saves credits: an email lookup costs one whether or not the company fits, while Jev is billed only for the tokens it reads. A data provider's industry code can miss what a company actually sells, which is why the fit is read from what the company says about itself.

Read the fit by its most likely level, not its expected score, and rank companies within a level by the summed probability of good and ideal. Apollo's search spends no credits and returns no emails, so enrich only the buyers you keep.

Rules

  • Use only the services set up above. The read-only calls they need, like listing ids or polling for results, are fine.
  • Ask the user before anything that sends messages, costs money, or changes data, and say how many records it touches. One approval covers a batch the user has seen.
  • Never print API keys.