Skip to content

FAQ

Grouped by topic. If your question isn’t here, check How LeadHunter works for the bigger picture, or reach out to support.

LeadHunter is AI that ranks thousands of prospects so you work the best ones first, then keeps every relationship moving. You import or find whole lists; the AI reads each account’s website, scores it against your fit criteria for the purpose you set (sales, partnership, press, influencer, investor, recruiting and more) with positive, negative and neutral reasons, and removes duplicates. You rank any list, shortlist thousands at once, and start each day on Today. Then it keeps each relationship on track: every conversation logged, next steps with due dates and reminders, Client Pulse for clients, marketing partners and their actions, and the cost, value and ROI of each campaign, channel and action. Read Welcome for the long version.

No. LeadHunter is a communication log, not a sending platform. You keep talking to accounts through your normal channels — email, LinkedIn, Instagram, WhatsApp, phone — and paste the exchanges back into LeadHunter so the AI, the funnel and the team have full context. The product is intentionally out of the sending path. See Messaging.

Today, the page LeadHunter opens on: next steps due (yours or the team’s), replies waiting for an answer, what is waiting in each campaign, clients past their contact cadence, then the best-scored accounts nobody is working yet. The number beside Today in the sidebar counts your due steps and the replies waiting. See Use Today.

How does this differ from Apollo / ZoomInfo / Clay?

Section titled “How does this differ from Apollo / ZoomInfo / Clay?”

Apollo and ZoomInfo are primarily contact databases — you query an existing index of millions of companies and people. LeadHunter is the layer that decides which of those accounts to work first: you bring (or discover) your own lists, and LeadHunter ranks them against your specific product’s fit criteria, then tracks the conversations, next steps, costs and value that follow. Clay is closer in shape but skews heavily towards programmatic data pipelines; LeadHunter skews towards small teams who work each relationship themselves with strong AI assistance. The three are complementary more than competitive.

Why is the data called Account but the product is called LeadHunter?

Section titled “Why is the data called Account but the product is called LeadHunter?”

The product is named for the verb — hunting leads, finding leads, lead generation is the discovery activity. The noun that gets stored is an Account (one row per organisation, neutral about whether it’s a prospect, client, partner, press, supplier, etc.). Calling the row “Lead” baked a sales-only assumption into a model that needs to span every kind of relationship. The product kept its name because the verb-phrase is still accurate.

Hosted. LeadHunter runs as one hosted product at leadhunter.humans2agents.com; there’s no self-hosted edition to install. The AI and data-provider keys (the AI models, Google Maps, Tavily) are configured and managed by LeadHunter, and there are no plans or billing tiers inside the product: what each project spends on those providers is tracked and shown on Insights → Usage (see Usage and costs).

What happens when I try to create an account that already exists?

Section titled “What happens when I try to create an account that already exists?”

It isn’t created. LeadHunter checks for the same business (Google Place ID, imported ID, name + city, phone, website domain, similar name in the same city) before creating an account. The new account form shows you the existing account instead of saving a copy; a file import skips rows that match on Place ID, imported ID or name + city, without copying their values into the existing account. Rows that only share a phone, a website or a similar name are imported, and you merge them with Find duplicates — nothing is merged without your confirmation. When you do merge, every unique field from every duplicate is preserved on the survivor and merge_history records the audit trail. See Merge duplicates.

Not automatically. The absorbed accounts are deleted at the end of a merge; merge_history records snapshots of them, so you can read what was on each side, but restoring them is a manual rebuild. Bias toward spot-checking AI-suggested merges before bulk-approving large lists.

Not directly. Projects are isolated by design — even two projects of the same organization. If you really need to move data, export from the source project (CSV) and re-import into the target — the dedupe machinery handles the rest. Accounts, custom fields, saved views, campaigns, expenses all need to come over separately.

Yes. On the Accounts list, Export in the More menu downloads what the list shows as CSV. Filtering first lets you scope the export to whatever subset you need; the full database is one click away when no filter is applied.

Cancelling closes the account but doesn’t immediately purge the data. Contact support to request a final export and a confirmed deletion timeline; both are on the operational roadmap as self-serve actions but aren’t first-class UI buttons yet.

What happens to a deleted custom field’s values?

Section titled “What happens to a deleted custom field’s values?”

The schema is removed (the field stops showing on account forms and the import wizard refuses new mappings for it), but existing values stay on the underlying account rows. Re-creating a field with the same key brings the values back into view. The trade-off is deliberate: cheap to re-add a field, expensive to recover deleted history. If you genuinely want the values gone, ask support for a one-off cleanup. See Custom fields → Adding, renaming, deleting.

No. Rank on the Accounts list scores whatever the list shows (or a sample of it) against a product’s fit criteria for one purpose, with an estimate first and a budget cap. Follow it under Runs → Ranking, then add the best accounts to a campaign when you’re ready to reach out. See Rank a list without a campaign.

How do I rescore everything after editing the fit criteria?

Section titled “How do I rescore everything after editing the fit criteria?”

Edit the fit criteria (Settings → Products → the product’s Fit criteria → the purpose) and Save: that’s a new version, and every score made with the older one gets an old criteria badge. Rescore them where you need them: Rank the list again with Rescore accounts already scored with the current criteria ticked, or click Rescore on a campaign’s Review tab when it says some scores were made with older fit criteria. Both show the cost first. Scores are shared by every campaign of that product and purpose without its own scoring brief, so one rescore updates them all. See How scoring works → When to rescore.

Can I score remaining accounts on all my campaigns at once?

Section titled “Can I score remaining accounts on all my campaigns at once?”

Yes. The Campaigns list page (/dashboard/campaigns) has a Score remaining button in its header. Clicking it dispatches AI scoring on every eligible campaign in one shot.

The button is intentionally conservative:

  • Only non-archived campaigns are touched.
  • Campaigns without fit criteria for their purpose yet are skipped (you have to define them before scoring can run).
  • Campaigns whose accounts are all already scored are skipped.
  • Campaigns mid-scoring (one is already running) are skipped.
  • Archived campaigns are completely excluded.

A confirmation dialog shows how many accounts across how many campaigns will be scored and the estimated cost, then a summary alert reports what actually happened — including the reason for every skip (no fit criteria yet, all accounts already scored, already scoring, etc.).

Already-scored accounts are never re-scored by this button (the score is shared per product and purpose). To re-score everything after editing a brief, use the per-campaign Give feedback & rescore action on the campaign’s Review tab instead (it shows its own cost estimate first).

Scoring runs on a fast, low-cost AI model by default. A few hundred accounts typically finish in 5–15 minutes. The campaign’s Review tab and Runs show the progress, so you can keep working while it runs. Per-account cost is a fraction of a cent.

My scoring run looks stuck — how do I unwedge it?

Section titled “My scoring run looks stuck — how do I unwedge it?”

A campaign’s Review tab hides its Score N remaining and Give feedback & rescore buttons while a run is in progress so you can’t double-spend AI quota. If a run wedges (rare — a deploy interrupted mid-batch, the model API stalled, a worker recycled), you’ll see the “Scoring in progress…” banner stay frozen.

The Review tab carries a Cancel run button in the header while a run is active, and so does the run’s row under Runs → Campaign scoring (a ranking run has its own under Runs → Ranking). Clicking it confirms and then flips the run back to a clean state — the Score N remaining button reappears immediately so you can retry. Already-scored accounts aren’t re-charged (the fit score is kept per product and purpose, so a retry only picks up the unscored tail).

Cancel is not instant — the worker stops at the next safe checkpoint, never mid-LLM-call. Typical latency:

  • Scoring a batch: ~10–30 seconds (one batch of ~10 accounts finishes).
  • Scraping account websites (the “Preparing accounts” phase): ~15 seconds (one in-flight HTTP request finishes).
  • AI-filling missing business fields (rare deep-fill phase): up to ~3 minutes worst case (one stuck AI call’s timeout).

Whatever scores or scraped content the worker had already produced land normally — they’re cached, so a retry skips them.

If a scoring run wedges in a way the cancel button can’t reach (an underlying worker crash that prevented any state from being written), an hourly safety-net sweep on the server flips wedged runs back to “failed” automatically. It judges a run by its signs of life, not its age: a running job reports in about once a minute — after each batch of ~10 accounts it scores, and while it prepares accounts (scraping websites, filling missing fields). A run that has not reported for 30 minutes is treated as wedged. A large ranking that takes several hours is never flipped while it keeps reporting; a run that keeps “preparing accounts” far longer than its size explains is flipped too.

The sweep also runs immediately on every server restart, so a deploy clears wedged runs without delay. After it flips the row, the Score N remaining button reappears for retry.

Same action is also available via API for scripted recovery:

POST /api/campaigns/{id}/cancel-scoring/

Idempotent: running it on a campaign that isn’t actively scoring is a safe no-op.

Deep research goes beyond the standard Quick mode (which scrapes the home page and extracts the business name + sector + language). It additionally crawls the about / team / staff / contact pages of the website and runs an LLM extraction to pull out 1–3 decision-maker contacts (name, title, sometimes email). Use it for high-value accounts where you’d otherwise hand-research the buying group; the cost per run is meaningfully higher than Quick so it’s not the default.

Why are my first batch of scores reading vague?

Section titled “Why are my first batch of scores reading vague?”

Almost always one of three causes:

  1. The Product description is too thin. One line of positioning isn’t enough to anchor sharp fit criteria. Two paragraphs is the minimum.
  2. No example URLs. The 2–3 good and bad example URLs on the Product are the single biggest scoring lever after the fit criteria themselves. Skipping them produces middling scores with weak reasons.
  3. No website on the account. Phone-only or name-only accounts can be scored, but the model is leaning on structured fields alone — scores cluster in the middle, reasons stay vague. Let auto-enrichment discover the website, or look the account up again with Deep research (Accounts → Add Account → From URL → Deep research).

Will scoring improve as I use LeadHunter more?

Section titled “Will scoring improve as I use LeadHunter more?”

Yes — every Shortlist or Not a fit you mark on a single account in a campaign (on the Review tab or in the account’s panel) is a calibration signal. Once a product and purpose cross ~10 of them, your verdicts start feeding back into the scoring prompt as concrete “what good looks like here” examples, and subsequent batches get sharper. Bulk decisions (a whole band, the top N) never count. The signal stays within one product and purpose — decisions on Product A don’t leak into Product B’s scoring, nor press decisions into sales scoring. See How scoring works → The feedback loop.

Any of the major languages the underlying LLM supports — English, Spanish, Catalan, French, German, Italian, Portuguese, Dutch, Polish, and many more. Set the account’s language field to the language they read (or let the campaign default win); the AI drafts outbound and translates inbound into your reading language. See Messaging → Language resolution.

Why do scores read Strong fit / Poor fit instead of good / bad?

Section titled “Why do scores read Strong fit / Poor fit instead of good / bad?”

The words beside a score describe fit, not quality. Poor fit means “the AI thinks this account doesn’t match this product’s fit criteria” — which is useful information even if the account is a great business. Beside a number the app names four bands: Strong fit (8–10), Good fit (6–8), Weak fit (4–6) and Poor fit (below 4); an account without a score reads Not scored yet. The API’s stored label keeps its three values, excellent / moderate / mismatch, which the app shows as Strong fit / Good fit / Poor fit.

How do I track an account that came in through Google Ads?

Section titled “How do I track an account that came in through Google Ads?”

Set the Acquisition channel to adwords when you create the account (or later, under Source channel on the account’s Profile tab). Channel-specific data — UTM parameters, the gclid, the ad campaign id — goes in the account’s acquisition metadata, listed under Details on that card. Inbound channels auto-promote the account from prospect to contacted because it has already reached out to you. See Track inbound accounts.

Can a single account be in multiple campaigns?

Section titled “Can a single account be in multiple campaigns?”

Yes. Same account in three campaigns of the same product and purpose gets scored once (unless a campaign has its own scoring brief, which gives it its own scores); what is per campaign (review decision, outreach status, override score, chosen contact, board stage) stays with that campaign. Same account in campaigns of different products, or different purposes, gets one score per product and purpose. The account’s Campaigns card lists them all, and Add to campaign in its header adds another.

Can one campaign target multiple products?

Section titled “Can one campaign target multiple products?”

No — each campaign points at exactly one Product. If you need to push two products to the same audience, run two campaigns. The constraint exists because the score is per product, and a campaign that mixed products wouldn’t have a coherent score column.

What does the funnel on Insights actually count?

Section titled “What does the funnel on Insights actually count?”

Distinct accounts, not messages. A campaign that sends three follow-ups to the same account counts as one initiated, not three. Replied counts the account once on its first inbound; closed reads the account’s status-history for any transition to customer. Cohort-attributed back to the initiation date — see How LeadHunter works → Phase 5.

What’s the difference between API costs and Campaign expenses?

Section titled “What’s the difference between API costs and Campaign expenses?”

Two completely different cost surfaces:

  • API costs are auto-tracked — every LLM call, Google Maps lookup, Tavily search the platform fires on your behalf. You don’t enter these; LeadHunter records them.
  • Campaign expenses are user-entered — Adwords spend, agency fees, labor hours, software, content, events. You log them against the campaign they’re paying for.

Together they give the full cost of running a campaign. CAC on Insights → Breakdown is computed from the user-entered side. See Usage and costs and Track campaign costs and CAC.

Will LeadHunter stop running operations if I hit a usage limit?

Section titled “Will LeadHunter stop running operations if I hit a usage limit?”

No project-wide spending cap stops your work. Three things do exist:

  • Monthly budget alerts. Set a monthly budget for a project on Insights → Usage and project members get an email when spending crosses your threshold and again at 100%. Alerts only — nothing is blocked. See Usage and costs.
  • A budget cap on each ranking run. You set it before the run starts. The run checks its spend before every AI call (website lookups and scoring batches) and stops when the cap is reached, keeping what it scored. Calls already in flight finish, so the final spend can go a little over the cap, typically by less than one batch; several chunks run in parallel, so the overshoot can be up to one call per running chunk. Campaign scoring runs show their estimated cost and wait for your confirmation.
  • A rate limit on AI actions. Actions that call the AI or a paid data provider (drafting and translating messages, generating fit criteria, scoring and ranking, looking up or enriching accounts, starting a research) share a limit of 60 per minute per user. It exists to stop a runaway script, not to slow normal work down; past it, the action answers “too many requests” and works again a minute later.

Can I run LeadHunter against my own API keys?

Section titled “Can I run LeadHunter against my own API keys?”

No. Provider keys (the AI models, Google Maps, Tavily) are managed by LeadHunter and can’t be set per project. What each project spends on them is tracked on Insights → Usage. If you need to run on your own keys, get in touch.

Why is the Cost column on my campaigns list empty?

Section titled “Why is the Cost column on my campaigns list empty?”

Two possibilities. Either no expenses have been logged for that campaign yet (the Cost column reflects user-entered campaign expenses — Adwords, agency, hours, etc.), or expenses have been logged but in mixed currencies. The headline column shows the primary currency total; a small + next to it indicates other currencies are present. To log expenses, open the campaign’s Settings & costs tab and use the Costs & expenses panel, or click the Log expense icon on the campaign’s row in the campaigns list. See Track campaign costs and CAC.

Why is my campaign’s CAC showing as null?

Section titled “Why is my campaign’s CAC showing as null?”

Two common cases. Either the campaign has expenses in multiple currencies (LeadHunter doesn’t carry an FX layer, so CAC isn’t computed across currencies — you’ll see a per-currency total and a cac_unavailable_reason explanation), or no outreach has happened yet (CAC = total ÷ count; the denominator is zero). Normalise the campaign to one currency and log at least one outbound message; the CAC math will appear.

What’s the difference between archive and delete?

Section titled “What’s the difference between archive and delete?”

Archive soft-hides an item (Product, Campaign, or Account) from default lists but keeps every conversation, score, expense, and audit-trail entry intact. Use it for “completed but I want the history” — or, on an Account, “this business closed / merged / pivoted out, but I want the relationship history.” Accounts can also carry a free-text archive reason that shows up on the account header and audit trail.

Delete is permanent — Products are protected if any campaign references them (archive instead), Campaigns require typing the exact name to confirm (or DELETE N CAMPAIGNS for a bulk delete), and Accounts require typing the exact account name to confirm and cascade to every related campaign row, score, and conversation. Underlying Accounts are never affected by campaign delete.

Access is granted per project, with three roles — owner, admin, member — all with the same data access. Owners invite teammates by email, change roles and remove members from Settings → Team (with a last-owner guard); admins and members read and write all the project’s data. An invite only takes effect once the invitee has confirmed their email address; someone who already has a LeadHunter account with a confirmed address is added straight away. Organizations have the same three roles: owners and admins can create projects in the organization. See Team, projects and organizations.

Several audit-trail surfaces:

  • Account status history — every status change (manual or auto-promoted) records who triggered it, when, with what reason and source. Listed under Status history on the account’s Admin tab.
  • Conversation log — every message records created_by and timestamp. Threads are visible per campaign and on the account page.
  • Merge history — the survivor of any merge carries merge_history JSON with snapshots of the absorbed rows, who ran the merge, when, and the field-winner decisions.
  • Research records — created_by + executed_by per record; listed under Runs → Imports, enrichment and searches.
  • Review decisions — every Shortlist / Defer / Not a fit records who made it, when, its reason and whether it was a bulk change (hover the decision on the Review tab); Recent bulk changes lists the last bulk changes with who made them.
  • Fit criteria versions — the Versions list on a fit criteria page keeps what each version said.

No single unified “team activity” view today — different audit trails live on the entities they describe.

Can two teammates edit the same account at the same time?

Section titled “Can two teammates edit the same account at the same time?”

Yes — there’s no row-level locking, and the last save wins. In practice this is rarely a problem because teammates usually work different campaigns or different review queues. Bulk review changes check that the set hasn’t changed since you counted it, and ask again if it has. If you do hit a conflict (e.g. one person changes status while another edits notes), the second save overwrites — refresh and merge manually.

The sign-in page tells you which of these it is:

  • “Invalid email or password” — check the address and password, or use Forgot password? next to the Password label to get a reset link by email.
  • “Email address not verified. Check your inbox for the confirmation link.” — click the confirmation link LeadHunter emailed you when you signed up; you can’t sign in before that. Check your spam folder if it isn’t in your inbox.
  • “Too many sign-in attempts.” After 10 attempts in a minute from the same network, sign-in pauses briefly. Wait a minute and try again.
  • “Could not reach the server. Check your connection and try again.” — a network problem on your side or ours; try again in a moment.

When your session expires while you’re working, LeadHunter sends you to the sign-in page and brings you back to the page you were on afterwards. Logout (in the account menu) ends the session on the server too (the token stops working everywhere) and clears the data the app cached on that device.

Can I use LeadHunter from a script or an AI agent?

Section titled “Can I use LeadHunter from a script or an AI agent?”

Yes, through the same REST API the app uses (https://leadhunter.api.humans2agents.com/api). Get a token with POST /api/auth-token/ ({"username": "<your email>", "password": "…"} → {"token": "…"}) and send it as Authorization: Token <token>. POST /api/auth-token/logout/ revokes it. The same rules as the app apply: your email must be confirmed, and you only see the projects you belong to.

Limits, all answering 429 Too Many Requests when exceeded:

WhatLimit
Sign-in (/api/auth-token/)10 per minute per IP address
AI and data-provider actions60 per minute per user
Everything else, signed in200 per minute per user
Everything else, anonymous300 per hour per IP address

A 429 response says how many seconds to wait; back off and retry after that. Client Pulse event ingestion isn’t counted against these; it has its own per-key limit.

A few fields only change through their dedicated actions, so every change keeps its history: an account’s status goes through POST /api/accounts/{id}/change-status/ and its per-purpose opt-outs through POST /api/accounts/{id}/record-dnc/ (a plain update ignores both). An account’s, product’s or custom field’s project can’t be changed after creation. A logged message’s direction is fixed once logged, and turning a draft into a sent message runs the same do-not-contact checks as logging a new one. The endpoints by area are on API for agents.

Where do I report bugs or request features?

Section titled “Where do I report bugs or request features?”

Through the contact form on humans2agents.com, or tell the person who set up your LeadHunter access. Bugs with clear reproduction steps and feature requests with a concrete use-case get the fastest response.