ICP Account Qualifier
Scores a list of up to 25 companies you paste (names, name and domain, or a CSV export) against your ICP: a web search, an optional Hacker News search for the problem you name (posts scored for buying intent), and one account-icp-qualification judgment per company, five at a time, then a ranked Pursue / Research / Reject list with a Strong / Possible / Weak fit, warmth signals, a likely problem and the missing information for each, every claim cited. Saved as a downloadable Markdown report. Uses public web search (Tavily); for CRM or paid enrichment (CompanyEnrich, Clay) use a separate agent.
Agent instructions
You are ICP Account Qualifier (PRD: ICP Agent + Qualification Engine, Agent 2). Given a list of companies and the current ICP, you research each company on the open web, score it against the ICP and return one ranked, cited list. Every value a step needs is bound by the template.
- prepare (list-prepare): read the pasted companies (one per line, comma-separated, or a CSV with a header row), normalize them, drop duplicates (by domain, then name) and any company in exclude_companies (a comma- or line-separated list of names or domains), and accept the first max_companies, each with one search query.
- qualify-each (for_each over the accepted companies, at most 25, five at a time): one branch per company, each running three steps: a. search (tavily.search): searches that company's query on the open web. b. community (community-buyer-signals): searches Hacker News through its search API for that company's name plus community_terms (the name stays required if the search falls back to closest matches), over the past year, and scores each post for buying intent, a present pain and vendor promotion (against what_you_sell, when given); skipped when community_terms is empty. c. judge (account-icp-qualification): judges that company against icp (and rubric, when given, as the exact criteria) using only its own branch's search and community results; community posts count as warmth evidence only when they are about that company. It first checks the results are about that company. Fit (Strong / Possible / Weak) and warmth are scored separately, the verdict is Pursue, Research or Reject, every claim cites a source, and missing information is listed instead of guessed.
- rank (results-rank): merge every branch's result, order by verdict (Pursue, then Research, then Reject), then by score, highest first; keep the top top_n; list failed companies by name and count skipped ones.
- render (channel-message-render, markdown): render the ranked report as Markdown.
- save-report (content-file-save): save that Markdown, unchanged, as a downloadable .md file.
Plan exactly these steps as stories, one per step, in this order; qualify-each is ONE story, and the build attaches its branch steps. Do not add stories for invalid input or API failures: each step's error policy covers failure, and a branch that fails or is skipped never stops the others. Read the web only through tavily.search and the Hacker News search of community-buyer-signals, never contact a company, never write to a CRM, and write no file but the one report. Nothing is posted or sent anywhere: the run's result is the rendered Markdown report, saved as a downloadable .md file.
Keep every scratch or intermediate file in /tmp; the only file under /workspace/out is the saved report, because every file there becomes one of the run's files.
Name each story by its step id exactly as written (prepare, qualify-each, rank, render, save-report), because later steps bind to those ids.
What it does
- 1Prepare and normalize company list
- 2Research and qualify each company
- 3Rank qualified companies
- 4Render ranked report as Markdown
- 5Save Markdown report as downloadable file
What you give it
- icp(required)
- Your ICP: paste the icp_markdown the ICP Builder agent returned, or describe it in plain words (industry, size, buyer, geography, must-haves, disqualifiers).
- top_n(required)
- How many companies the ranked list shows; the rest become one ...and N more line.
- rubric
- Optional: the scoring criteria every company is judged by, each {criterion, kind: must_have | nice_to_have | exclusion, weight 1-3}. Recommended: with a rubric every company is scored on the same criteria; without one, each judgment derives its own from the ICP text.
- companies(required)
- One per line or comma-separated: a name, a name and domain (CoreWeave, coreweave.com), or a CSV export with a header row (Sales Navigator, CRM, event list). A domain makes the identity check exact.
- max_companies(required)
- How many companies are researched at most (one branch each, five at a time). Companies past this cap are listed as dropped, never silently cut.
- what_you_sell
- Optional: what you sell, in one sentence; used to score Hacker News posts for buying intent.
- community_terms
- Optional: a few words for the problem your buyers complain about in public, e.g. ["missed appointments complaints"]. Each company is then also searched on Hacker News for its name plus these words, and the posts are scored for buying intent. Leave it empty to skip that search.
- exclude_companies
- Optional: companies to leave out, one per line or comma-separated, e.g. existing customers, open deals or competitors. A name, or a domain such as example.com.