Help center
How can we help?
Short, practical guides to getting things done in HuntSales. Already inside the app? Open the help button and ask the assistant for instant answers.
Getting started
HuntSales is an outreach CRM for sales teams. The main areas are in the left sidebar: Dashboard (overview), Workspace (your call/follow-up queue), People Search (find new prospects), Campaigns (email sequences), Contacts and Companies (your data), Import (bring in a CSV), Analytics, and Billing. Most new users start like this: 1. Import or find contacts. 2. Connect a mailbox. 3. Build a campaign. 4. Work the queue in Workspace.
Importing contacts from a CSV
Go to Import in the sidebar, then follow these steps. 1. Upload your CSV file. You can select several CSV files at once if they share the same columns; they import together as one batch (files with different columns are skipped with a message, so import those separately). 2. Map each column in your file to a contact field (name, email, company, phone, title, and so on). Columns you do not map are skipped. 3. Run the import. 4. Review the summary of how many contacts were added and how many duplicates were skipped. Duplicates are detected automatically by email address and by normalised company name, so re-running an import to add new rows will not create duplicates of people already in your list. Imported contacts are private to your workspace and are never added to the shared prospect database. After the import, the Quick Actions panel lets you organise everything from that file in one click: assign to a team member, tag to a campaign, or add to a list. Campaign and list actions cover the whole file including rows that were already in your CRM. Assigning covers the new contacts by default; tick "Also reassign the contacts already in your CRM" to hand 100% of the file (including duplicates) to that person, for example when the list belongs to them. Tip: if you need to assign a file you imported earlier, just import the same file again; everything will be detected as already in your CRM and you can assign it all from the summary.
Finding new prospects with People Search
People Search lets you find new B2B contacts by filters such as job title, function, seniority, country, industry/company keyword, and company headcount. You can also describe who you want in plain English and the AI will set the filters for you. Revealing a contact's email spends People Search credits. Singapore is the default location if you do not pick one. Results can be saved straight into your Contacts. Every People Search is a live query, so the page is covered by the "Live Search (uses credits)" permission. It is off by default for every role until an admin grants it: searching spends credits, so you decide who on the team can do it. A teammate without it sees the People Search page explaining what to ask an admin for. Adding a contact you find into the CRM is covered separately by the "Add Prospects to the CRM" permission. Off the results grid you pay 1 credit to collect the person, plus 1 credit if a business email is found; a revealed address is not deliverability-checked at that moment, so verify it for 0.5 credits when you want a verdict. Adding from the shared pool instead is a flat 2 credits, and where that contact comes with an email address the rate covers a mailbox-level check HuntSales runs and pays for. One search, two things you can do with it. Page through the results grid, or use "Add all to CRM" to pull the whole search into a new contact list in one go (see "Adding everything that matches your search"). A search costs 1 credit and returns one page of up to 10 people. You are only charged for the people that page actually returns, so a page that comes back with three costs 0.3 credits, not a full credit. The database behind it reports no total, so the grid says "sample of your matches" rather than inventing an "N results found" figure. There is no page 2: the source we buy from returns a single page per query and does not page past it, so we removed the Next button rather than charge you again for the same ten people. To go wider, narrow your filters for a different set, or use "Add all to CRM", which pulls up to 25,000 matching people in one go. Re-running a search you ran in the last 7 days is free. (A second, premium search depth has been withdrawn while we rework how it is priced, so there is one search depth today.) Refunds differ by depth, because the two are billed differently behind the scenes. On standard search you pay for the rows you actually get, so an empty page is fully refunded - a miss never costs you. On deep search it is not: the live prospector charges us a flat fee for the page whether or not anybody matched, so an empty deep page is still charged. Narrow the filters before spending 50 credits on a page rather than after. A search shows one page, so it is not the way to work through a large result set. Use "Add all to CRM" instead, which takes the same filters and pulls up to 25,000 people in one go. See "Adding everything that matches your search". Results already in your CRM are flagged before you spend anything on them, so you never pay twice for the same person. Every control that spends credits says what it will cost before you press it: the Search button carries its own price, and so do the Prev and Next buttons. See "What a search costs, and what is free" for the three ways to explore filters without spending. Two related helpers: the Verify button next to a contact's email checks whether the address can receive mail, so you can clean a list before a campaign. It costs 0.5 credits per new address; re-checking the same address is free forever, because a verdict is only revisited when a bounce contradicts it. You mainly need it for addresses you brought in yourself, by CSV import or by typing them in, because contacts added from People Search are checked as part of the 2-credit add rate. And enriching a company (the Match ACRA button on a company panel) can fill in its missing website and industry for 1 credit, fully refunded when nothing new is found.
Find contact details in bulk
Find contact details in bulk is the companion to "Add all to CRM" on People Search: a bulk pull delivers new people with their name, job title, company and LinkedIn but no direct contact details, and this looks those details up for a whole selection in one action instead of one contact at a time. Select the contacts on the Contacts page (the header checkbox selects the whole page, or use select-all), open the Actions menu, and choose "Find contact details". This is available on the Hunter plan and above and needs the "Contact Enrichment" permission. Today this looks up the work email (2 credits each). Mobile numbers and company hotlines are not available for new lookups yet. You are shown the exact per-detail and total cost before anything is charged, and you confirm once. You are only ever charged for details we actually find; a lookup that finds nothing costs nothing. A contact that already has an email is skipped for free and never looked up again, and the window tells you exactly what was skipped and why. Small selections run instantly. A very large selection (more than 100 lookups) runs in the background instead - the credits are held up front, the window shows live progress, you can close it and carry on working, and we notify you when it finishes. Anything not found is refunded automatically. Monthly reveal allowances still apply to email lookups; if a run is bigger than what is left this month, it does as many as fit and tells you the rest were not attempted so you can run it again after the reset. There is an optional "Verify email deliverability first" step. Tick it and every email the run touches - the ones we find and the ones the routed contacts already have - is checked against the mailbox before anyone is enrolled, so a freshly-discovered address that would bounce never goes into a campaign and burns your sending domain. A check costs 0.5 credits per new address and is shown in the total before you confirm; an address that already has a verdict is free. The full flow is discover, enrich, verify, add to list. Each address is marked Valid, Unknown or Invalid on the contact. This step is ticked for you by default when the destination is a campaign (the safe choice) and left off otherwise, and you can change it either way. You can also pick a destination so the found people are added somewhere automatically when the job finishes - no manual step, no watching it. Under "Then, automatically..." choose to add the found people to a contact list, or enrol them into a drip campaign. This is completely free; the only charge is the lookup and any verification. Adding to a list needs the "Manage Lists" permission and enrolling into a campaign needs the "Campaigns, Email Setup & Replies" permission. For a campaign, only people we find a work email for are enrolled, and anyone already enrolled or on your suppression list is skipped. When verification is on, an Invalid address is held back from the campaign but kept in your Contacts, flagged, never silently dropped, and the completion notice reports how many were held. So a job you started at 5pm can have its verified results dripping into a campaign by the time it finishes, whether you were watching or not.
Account Map: browsing the people at a company
Open any company from the Companies page (or a company panel) and use "People at this company" to see who works there, then save the ones you want straight into your CRM against that company. There are two depths, both with the cost shown on the button before you spend anything. Show team lists people from a large indexed database, 10 per page, at 1 credit per page, and works on every paid plan. You confirm the credits before every page, including when you load more, so there is never a silent charge. Re-opening a company you viewed in the last 7 days is free (the results are cached) and a page that comes back empty is fully refunded. Saving people into your CRM from here spends People Search credits at the same rate as adding from anywhere else (2 credits per contact), and skips anyone already in your CRM. A team map gives you names, titles and LinkedIn profiles rather than emails, so most people saved this way arrive without an address; where one does come with the contact, the 2-credit rate covers a mailbox-level deliverability check we pay for. Tick the people you want and choose Save to CRM; they are added and linked to the company automatically.
Research brief: AI account research on a company
Open any company from the Companies page and use the Research brief section to get a one-click AI account brief: what the company does, its momentum (growth, funding, hiring, news), workplace signals from employee reviews, and 2-3 concrete talking points on how to approach it. A brief costs 10 AI credits, shown on the button and confirmed before anything is spent, and the feature is available on the Hunter plan and above. If the research cannot find enough public information about the company, you are not charged. Each workspace can generate up to 5 briefs per day. The brief is saved on the company, so your whole team sees it when they open the drawer. Press Refresh to write a new one (another 10 AI credits). The research gathered about a company is kept for 30 days, so refreshing within that window reuses it and is faster. A company with a website saved gets noticeably better research, so enrich the company first if the brief looks thin.
Filling in missing titles and companies
When you import a CSV that has names but is missing job titles or companies, the import summary offers an optional enrichment step to fill those gaps. It appears as a "Fill in missing titles & companies" panel on the final step, available on any paid plan. It tells you how many of the just-imported rows are missing a title or company, and the button shows the cost before you spend anything: 4 credits per matched contact. You are only charged for rows we can actually match to a person; rows we cannot match are free, and if nothing matches at all you are not charged anything. You confirm the total before it runs, so there is never a silent charge. Enrichment looks up each incomplete contact by their name (and email or company if present), and when it finds them it fills in the missing job title and links them to their company. It runs on the newly imported contacts from that file, up to a batch per run. It does not touch rows that already have both a title and a company.
Identifying an unknown sender in Replies
Sometimes a reply lands in your Replies inbox from an email address that is not yet a contact in your CRM. When you open that conversation, an "Identify sender" button appears in the thread header, with its 10-credit cost shown right on the button. It is available on any paid plan. Click it and confirm, and we look up who is behind that email address and, when we find them, save them into your CRM as a new contact (with their job title and company) and link the conversation to them. You are charged 10 credits only when we successfully identify the sender; if we cannot identify them, it is completely free and you can still reply to them from the inbox as usual. The cost is always confirmed before it spends, so there is no silent charge.
What a search costs, and what is free
Searching spends credits because every search is a live lookup that we pay for. What follows is exactly what costs what, and the three things you can do for nothing. The price is always on the button. The Search button says "Search - 1 credit" or "Search - 50 credits" before you press it, and that figure is the figure charged: it is worked out by the same rule that does the charging, not estimated separately. If the page is already in your recent results the button reads "free - already fetched" and no confirmation appears, because there is nothing to confirm. Prev and Next show a ceiling rather than an exact figure - "up to 50 cr". They say the most a page can cost, because whether the particular page you are moving to is one you already fetched is only known once you press it. If it was, you are charged nothing and told so. You are never charged more than the figure shown. Free thing 1: re-opening a page you already bought. Any page you fetched in the last 7 days is served again for nothing, and never re-queries the source. Paging back and forth through results you have already paid for is free. Free thing 2: the match count, once bought. On deep search the source tells us how many people match your filters, and that answer arrives alongside a page you have already paid for. We remember it against those filters for 24 hours, so running the same search again, or coming back to it tomorrow, shows the count without buying it a second time. It is always shown with its age ("4,183,665 people matched 6 hours ago (remembered, not live)") because a count is a snapshot of an index that keeps moving, and we will not pass an old number off as a current one. After 24 hours the next paid search refreshes it. Free thing 3: checking your filters. On deep search there is a "Check filters - free" button. It confirms the filter set is well-formed and shows which of your filters were understood, so you can spot one that is not narrowing anything before you spend 50 credits finding out. Be clear about what it is not: it does NOT count the matches and does NOT show you any of them. There is no free preview of results anywhere, from anyone, and we would rather say so than dress a filter check up as one. If the check cannot run, that tells you nothing about your filters and your search works exactly as normal. Why there is no free "how many match" on a brand-new filter set. The source we buy from runs a genuine live search for every request and charges for the resources it uses. It has no count-only and no sample endpoint, and is not building one. So the first search of a filter set you have never run costs a page; from then on the count is free for a day and the pages you fetched are free for a week. What each case costs, end to end. First search of a new filter set: one page, at the price shown on the button. The exact same search again within 7 days: nothing, and the count comes back free with its age. A refined filter set (you added a seniority, or changed a title): a new filter set, so one page again. Coming back to a filter set you ran earlier the same week: free for the pages you already fetched, and free for the count if it is under 24 hours old, otherwise one page refreshes it. Changing only the ORDER of your job titles, or their capitalisation, is not a new search and does not cost anything extra.
Credits: People Search vs AI
There are two separate monthly credit pools, both shown in the Usage meter at the bottom of the sidebar and on the Billing page. (1) People Search credits power contact and company lookups and email reveals. Adding a prospect from the shared pool to your CRM spends 2 People Search credits, which covers the contact record plus, where that prospect comes with an email address, a mailbox-level deliverability check we run and pay for at the moment you add, so you are never charged twice for the same person, and results already in your CRM are flagged before you spend on them. Each plan also includes a monthly email reveal allowance sized to what its credits can buy: up to 12 email reveals on Free, 125 on Scout, 750 on Hunter, and 3,000 on Apex (per seat). Within your plan credits you will never hit it; it matters mainly when spending large top-up packs on reveals. An email reveal costs 1 credit (plus 1 to collect the contact); the allowance resets on the 1st of each month, and a blocked reveal shows exactly how much is left and when it resets. Searching also uses this pool: a Live search page costs 1 credit, and re-viewing a page you fetched in the last 7 days is free. Every search control shows its price before you press it. See "What a search costs, and what is free". (2) AI credits are a separate pool that powers the AI features: the Copilot, the AI email writer, AI search parsing, and AI reply classification (which sorts your campaign replies by intent and costs 1 AI credit per reply). The two pools do not share a balance and each has its own reset date, shown under its own row in the Usage meter and on the Billing page: AI credits reset on the 1st of every month, and People Search credits reset monthly on your plan date (the day you signed up on Free, or your billing date on a paid plan). If you run out, you can wait for the monthly reset or upgrade your plan for a larger allowance. Two smaller actions to know: enriching a company's missing website or industry (the Match ACRA button on a company panel also runs this step) costs 1 People Search credit and is fully refunded when nothing new is found, and verifying a contact's email (the Verify button next to their address) costs 0.5 People Search credits per new address, with re-checks free forever: once an address has a verdict it is never re-verified on a timer, only when a bounce proves the verdict wrong. That 0.5 charge applies to any address we have not already checked, including one revealed off the People Search results grid; a pool contact that arrived with an email is already checked at no extra cost.
Connecting a mailbox
To send campaign emails you connect a sending mailbox under Campaigns / email settings. You can connect Gmail or Microsoft/Outlook accounts. Each plan allows a certain number of mailboxes (Free 1, Scout 3, Hunter 10, Apex unlimited). Connecting more than one mailbox lets you spread sending volume and protect deliverability. On Scout and above, a newly connected mailbox can be put through a warmup period that ramps its daily limit up gradually to build sender reputation; warmup is not available on the Free plan, where each mailbox sends at its set daily limit from day one.
Managed Inbox (coming soon)
Managed Inbox is a planned add-on where HuntSales provisions ready-to-send mailboxes and warms them up for you, so you can scale sending without buying and configuring your own domains and inboxes. It is not released yet; you will see it marked "Coming soon" in Email Settings. Until it ships, connect your own Gmail, Microsoft/Outlook, or SMTP mailbox under Campaigns / email settings, which is fully supported today.
Building a campaign and sequences
A campaign is an email sequence: one or more steps sent to a list of contacts over time. Create a campaign under Campaigns, choose your contacts, write the steps (you can use the AI email writer to draft them and use variables like first name and company name for personalisation), set the timing between steps, then start it. You can also restrict when emails go out with a send window (days, hours, timezone) and optionally skip public holidays for Singapore, Malaysia, Indonesia, and Philippines timezones. Replies are detected automatically and stop the sequence for that contact so you never email someone who already replied. Replies show up in the Replies tab under Campaigns, where AI sorts them by intent (interested, wants a meeting, question, not interested, and so on) so you can spot hot replies fast; each reply is classified for 1 AI credit. A/B testing and sequences are available on paid plans. For A/B testing you add a variant B to a step: the "Generate A/B" button in the email editor writes variant A (if it is empty) plus a distinct variant B in one click, or you can write variant B yourself on its own tab (the Generate, Improve and other AI buttons act on whichever variant tab you are viewing). Set the split, meaning the share of contacts who receive variant B. If you try to launch with an incomplete variant B (a subject but no body, or a body but no subject) the app warns you first, because that group would otherwise fall back to variant A's content; you can fix variant B or choose to launch anyway. Once a step has enough sends you can declare a winning variant, and the rest of the audience receives the winner. When you launch a large campaign the campaign goes live immediately and its contacts are enrolled in the background over the next minute or two, so the Launch button confirms right away instead of waiting for every contact; a smaller campaign enrols instantly and shows the exact count. Either way, actual sending then starts on the campaign's normal schedule and send window. Follow-up steps can also target by engagement: when adding or editing a step (from step 2 onward), "Send this step to" lets you choose Everyone (default), only openers of previous steps, only clickers, only repliers, or only contacts who did NOT open previous steps (useful for a different-angle retry). Contacts who do not match simply skip that step and continue to the next one. The repliers option is special: normally a reply ends the sequence for that contact, but if a later step targets repliers, a contact who replies branches to that step instead of stopping. The email body has two views, Text and HTML. For a designed template the Text view is the rendered email itself: click into it and edit the wording directly, and the layout, styling and images stay exactly as they are. The HTML view shows the markup underneath for finer control. A plain typed email edits as normal text in the Text view. The step editor shows a live preview beside the email as you write it, with your variables filled in from a real contact (use the arrows, or search an address, to preview against someone specific). The preview renders the email in its own frame, the way a mail client does, so a designed template keeps its own layout and its styling cannot affect the rest of the app. Because the column is narrower than a desktop window, a responsive template shows its narrow-screen version there. Click "Full size" above the preview to see the email at 640 pixels on a white background, the way the recipient opens it, whatever theme the app is set to.
Skipping public holidays in a campaign
Each campaign can skip sending on public holidays. Turn on "Skip public holidays" in the campaign's Settings tab (in the Send Window section) or when creating a campaign. The holiday calendar follows the campaign's send window timezone: Singapore, Malaysia, Indonesia (Jakarta), and Philippines (Manila) are supported; for any other timezone the toggle has no effect and shows as disabled. When a send would land on a public holiday, it is deferred to the next allowed day at the start of the send window, so nothing is lost. The setting is off by default on every campaign, and the built-in calendar currently covers 2026 holidays.
Per-day send times and saved schedule presets
A campaign's send window (in the Settings tab, Send Window section) can use a different time range for each weekday. Turn on "Different time per day" and set a start and end for each selected send day — for example Monday to Thursday 09:00 to 17:00 but Friday only 09:00 to 12:00. Days you leave untouched use the campaign's main start and end time. When it is off, one window applies to every day, exactly as before, so existing campaigns are unchanged until you opt in. You can also save the whole schedule — days, hours, timezone, and any per-day times — as a named preset with "Save current" in the same Send Window section, then re-apply it to any campaign later from either the Settings tab or the launch dialog. Presets are shared across the workspace. Emails due outside a day's window are never dropped; they are held and sent at the next allowed time.
Sending limits
Only the Free plan has an enforced monthly send cap (200 emails a month, and up to 50 a day across the workspace). When you reach the monthly cap the queue holds the rest rather than dropping it, the workspace admins get one notification explaining this with an upgrade prompt, and sending resumes on its own on the 1st of the next month; nothing queued is lost. Paid plans (Scout, Hunter, Apex) have no monthly or workspace-wide daily account cap, so your volume follows your own mailbox limits rather than a platform throttle. To protect your sender reputation, each mailbox still has its own daily safe-send limit (set per mailbox under Email Settings, with optional warm-up that ramps it up gradually). Spreading sends across multiple mailboxes and warming them up helps deliverability. Each mailbox also has a Send interval (a minimum and maximum number of seconds between sends): instead of firing its whole batch at once, the mailbox waits a random gap in that range before each next send, which looks more human to inbox providers and protects deliverability, especially on new or warming mailboxes. The default is 90 to 180 seconds and you can change it per mailbox under Email Settings. Because each mailbox paces itself, using several mailboxes on a campaign still sends quickly overall while no single inbox bursts.
Verified opens, bounces, and the recipients list
The campaign Analytics tab shows Total Sent, Open Rate, Click Rate, Reply Rate, Bounce Rate, Unsubscribed, and Stopped. Click any of those cards to see exactly WHO is behind the number: the recipients list shows each person, when they engaged, how many times they opened, which link they clicked, their reply intent, bounce type, or unsubscribe reason, plus which teammate's mailbox sent to them, and clicking a person opens their contact record. Open and click rates show a second "manual" figure: opens and clicks by real recipients acting themselves. Email providers and security tools generate automated activity (corporate scanners pre-click every link, some services pre-load images), so the raw number can overstate real interest. Every open and click is classified: manual actions count toward the manual figure; automated hits from security scanners and instant prefetches are excluded; opens through Apple's Mail privacy relay are shown separately as "privacy proxy" because Apple pre-loads emails for every Apple Mail user whether or not they actually opened (no email tool can confirm those). A click or a reply from a real person is the strongest signal of genuine interest. Bounces are detected on both sending paths: platform sends report bounces directly, and connected mailboxes (Gmail, Microsoft, SMTP) have their bounce-back "mail delivery failed" messages read from the inbox by the reply sync. A hard bounce (address does not exist) automatically marks the contact's email invalid, adds them to the unsubscribe list, and stops their sequence so dead addresses never receive follow-ups; a soft bounce (mailbox full, temporary issue) is recorded and sending continues, up to a point: three soft bounces in a row on the same address, with no successful delivery in between, suppress it the same way a hard bounce does. See "Soft bounces and the three-strike rule". Below that limit the contact is still yours to judge: open Contacts, then Filters, then Bounced, and pick "Needs a decision" to list every contact that bounced without being suppressed, or pick a specific bounce type. From there you can retry them, verify the address, or suppress them yourself. Out-of-office auto-replies do not count as replies (or opens) and do not stop the sequence, but they DO confirm delivery: the person is just away, so follow-ups continue as scheduled and the send is marked delivered. A reply that asks to unsubscribe is honoured automatically: the contact is added to the opt-out list, not just labelled. One connection note: a Gmail mailbox connected via Google sign-in is send-only (Google restricts inbox reading), so replies and bounces are not synced back for it. Connect Gmail with an app password instead to get full reply + bounce sync.
Why a contact stopped receiving a campaign
The campaign Analytics tab has a Stopped card. Click it for the list of everyone who stopped receiving the sequence, and why. It is a count of people, not a rate, and it is not the same as Unsubscribed or Bounce Rate: each of those answers one cause, while Stopped covers all of them together. Each person shows a coloured label and one sentence. Bounced: the address rejected the message outright, so it was suppressed and will never be emailed again. Repeatedly undeliverable: three deliveries in a row failed with no successful send in between, so the address was suppressed to protect your sending reputation. Invalid address: the address was confirmed undeliverable before sending, so the step was skipped. Unsubscribed: they opted out, and the rest of the sequence was cancelled. Suppressed: they are on your suppression list. Marked as spam: they reported the message as spam, so the address is suppressed permanently. Replied: the sequence stopped so a person can take over the conversation. Stopped by a user: a teammate removed them from the campaign. Campaign stopped: the campaign itself was stopped. Replied is shown in green on purpose. A reply is the goal, not a failure, so a campaign with a lot of stops can be a healthy one. Read the reasons, not just the number. A stop we do not have a name for is still listed rather than hidden, so nothing disappears. You can export the list to CSV with each person's reason, if you have the Export Contacts permission and are on Scout or above.
Send priority when the daily cap is reached
Each campaign has a Send priority setting that decides which emails go out first when you run out of daily send allowance and cannot send everything that is due. Set it when creating a campaign or later in the campaign's Settings tab (in the Send Window section). There are three modes: "Even (oldest first)" is the default and sends whatever has been waiting longest, treating first-touches and follow-ups equally; "New contacts first" pushes brand-new first emails ahead of follow-ups, so you keep reaching fresh prospects; "Follow-ups first" pushes later sequence steps ahead of new first emails, so you finish conversations you have already started before opening new ones. This only changes anything on days when your daily send limit binds and some emails have to wait until tomorrow; if you have plenty of allowance, everything sends regardless and the order does not matter. The setting is Even by default on every campaign, so existing campaigns behave exactly as before unless you change it.
Pipeline, statuses and logging calls
The Pipeline board tracks prospects across statuses: Prospect, Contacted, Follow-Up, Appointment Scheduled, Converted, Not Interested, Do Not Call, and Invalid. The Workspace is the day-to-day view of contacts that are due for a call or follow-up, so telemarketers and reps can work a focused queue. There are two ways to change a contact's status, and they do different things. 1. Log a Call (on the contact's panel). Use this whenever you have just spoken to or tried to reach the prospect. Pick the outcome and save: the status updates automatically, and the call, your notes and the follow-up date are recorded on the timeline. The follow-up date is optional: use the +1d/+3d/+7d shortcuts, pick any date, or choose None if no follow-up is needed (the contact then leaves the follow-up queue). This is the path that feeds call analytics, Team Pulse and conversion goals, so always log real calls here rather than changing the status by hand. 2. The status dropdown (top right of the contact's panel). This changes the status only; no call is recorded. Use it for changes that happened off the phone: a prospect who booked a meeting by email, correcting a wrong status, a cancelled appointment, or reactivating an old contact. There is also a Follow-up section on the contact's panel where anyone can set or change the next follow-up date without logging a call: pick a date, use the +1d/+3d/+7d shortcuts, or choose None if no follow-up is needed (the contact then leaves the due queue and won't show as overdue). Rule of thumb: if it happened on a call, log the call and let the status follow. If it happened off the phone, set the status from the dropdown and the next step in the Follow-up section.
Contacts, companies and lists
Contacts and Companies hold your data. You can organise contacts into Lists (for example by campaign, territory or segment) from the Contacts page, and superadmins can share a list with specific teammates. Edits to a contact's email or phone may require approval depending on your role. Exporting contacts to CSV is controlled to protect your lead data: it requires the "Export Contacts" permission, which is off by default for EVERY role including Super Admin (grant it per role under Team in the Permissions tab; admins can grant it to their own role), and it is available on the Scout plan and above (the Free plan cannot export). The same rule covers exporting list views, People Search results, the suppression list and campaign engagement exports (on an email campaign's Contacts tab you can export the Openers, Clickers or Repliers as CSV), and every export is recorded in the audit log with who exported and how many rows. Report exports (such as the activities report) are controlled by the separate "Export Reports" permission.
Adding team members and seats
Invite teammates under Team. Billing is per seat: the first user is included and each additional user is charged. The Free plan includes 1 user, plus one co-admin you can invite during workspace setup; paid plans allow more, one seat per user. When you add or remove a user, your subscription updates automatically. Roles (superadmin, consultant, telemarketer) control what each member can see and do, and the fine-grained permissions behind each role are managed under Team in the Permissions tab, where the matrix is grouped to mirror the sidebar. Two permissions worth calling out: "Automations" lets a role build, edit and run workflow automations on the canvas, including AI agent steps, connectors and scheduled triggers; because running automations can send email, edit contacts and spend AI credits, grant it deliberately. "Watchlists & Signals" lets a role subscribe to signal-catalog presets and create or run watchlists, whose scheduled runs may add companies and contacts and send notifications. Also note the permission formerly named "Workspace" is now "Workspace & Call Queue": it covers both the Workspace (lead stages and follow-ups) and the Call Queue page that works a contact list one call after another. Workspace-wide customisation lives on the Settings page (Admin section of the sidebar, at /settings/workspace): restricting prospects to their assignee, allowing multiple assignees per contact, the organisation timezone used to bucket report hours, the default tab a contact opens on, notification preferences that mute chosen alert types for the whole workspace, revenue forecast defaults, the Fireflies meeting-sync integration, and pointers to the other options you can tailor (signal groups on the Signals feed, conversion goals, data contribution to the shared contact pool, and each member's light or dark theme). Everyone also has a personal section there with browser notification reminders and a product tour replay; the workspace section is admins only.
Control who can spend credits
You decide which team members are allowed to use each feature that spends credits, so credits are not burned by accident. Open Team, then the Permissions tab, and look at the Credit usage category in the matrix. Every credit-consuming feature has its own switch there, granted or removed per role: Email Verification (0.5 credits per new address), AI Research Brief (10 AI credits per brief), Account Map deep scan (50 credits per page), and Contact Enrichment (fill a missing email or phone, enrich imported contacts, and identify inbound senders, priced per enriched contact). Turn a switch off for a role and members with that role can no longer start that spend; the feature's buttons explain they do not have access instead of charging. Two more credit-spending capabilities live in their own categories: People Search Live reveals and searches sit under the Discover category (the "People Search Live" switch), and subscribing to or running signals and watchlists, including the paid market and LinkedIn signals, sits under the "Watchlists & Signals" switch. If your plan supports per-member overrides you can also grant or remove a capability for one person without changing their whole role. Super Admins and the workspace owner always keep access. Because these switches gate who can spend, review them when you add a new teammate so a new rep starts with exactly the credit-spending features you intend.
Plans and billing
Plans are Free, Scout, Hunter and Apex, billed monthly or annually (annual is cheaper per month). You can change plan or manage payment under Billing. During the launch there is a discount and contacts are unlimited on every plan. Higher plans include more mailboxes, more People Search and AI credits, higher or unlimited send caps, and more advanced features. Changing plan part-way through a month works differently in each direction. Upgrading takes effect immediately: you are charged the price difference for the days remaining in the current cycle, and the extra People Search credits for exactly those days land in your balance straight away rather than waiting for the renewal. Upgrade twice in the same cycle and you are topped up to the higher tier each time, never paid twice for the same tier. Downgrading takes effect at your next renewal date instead: nothing is charged or refunded now, and you keep the plan, the features and the credits you have already paid for until the cycle ends, at which point the cheaper price and its allowance begin. Your renewal date never moves in either case.
Using the AI Copilot
The Copilot is the floating assistant inside the app. It can answer questions about your own CRM data and help you take actions (for example summarising a contact, checking your queue, or drafting a campaign), asking you to confirm before it changes anything. Each Copilot message spends AI credits. The Copilot is different from this support chat: this support chat answers how-to questions about using HuntSales. The Copilot can run your outreach end to end. It can build contact lists (including adding leads from People Search, which spends People Search credits), create draft campaigns, write and edit sequence steps, set the sending mailbox and send window, enrol a whole contact list into a campaign, pause or resume a campaign, and launch it. It can also do live research beyond your CRM: ask about a company's background, recent news, or a market, and it looks the answer up on the spot. Research lookups are included in the normal Copilot message price (no extra charge) and are limited to 3 lookups per message. Anything that spends credits, enrols contacts, or starts real sending shows you a summary and waits for your explicit confirmation first. Draft creation and step edits are low-risk because a draft never sends anything until you launch it. One step stays manual: connecting a mailbox (the Google, Microsoft, or SMTP sign-in) is always done by you under Email Settings; the Copilot then works with whichever mailboxes are already connected.
Connect your own AI (MCP keys)
You can connect your own Claude, ChatGPT, or any MCP client to HuntSales with an API key and have it run your CRM for you. This is separate from the built-in Copilot: here you bring your own AI and point it at HuntSales over MCP (Model Context Protocol). Full setup steps are at /docs/mcp. How to connect: open Admin, then Developer, and create an API key. Every member can do this, the page is not admin-only. Give the key a name, copy it (it is shown once), and add it to your AI client. You can revoke your own keys any time from the same page. Keys are personal and inherit your role. A key can do exactly what YOUR role can do in the app, no more: there is no scope picking at creation, and every API call re-checks your CURRENT role permissions. If an admin changes your role, all your keys follow immediately; if a member is removed from the team, their keys stop working entirely. Admins (superadmins) see every key in the workspace under Developer with its owner, and can revoke any of them. A superadmin's own keys can do everything. What the role ceiling means in practice: searching prospects and revealing their emails/phones over the API needs the Live Search permission (reveals spend People Search credits). Adding People Search prospects needs Add Prospects to the CRM, and each add spends 2 People Search credits. Creating and updating contacts, moving pipeline stages, and building lists needs Edit Contacts. Building campaigns, enrolling contacts, and launching needs Campaigns, Email Setup & Replies. Managing webhook endpoints over the API needs Automations. Reading your contacts, pipeline, contact lists, connected mailboxes, and credit balances is available to every member's key, but if your role lacks View All Contacts, your key reads only the contacts assigned or co-assigned to you plus unassigned ones, exactly as in the app. Mailbox reads cover the address, provider, status, and daily limit only; credentials are never exposed. Safety model: the tools that add, spend, or start real sending (adding prospects, creating a list from a filter, enrolling a list, launching a campaign, and resuming a paused or editing a live one) run a dry-run preview first and then wait for your explicit confirm before doing anything. Creating a draft campaign, adding contacts to a list, and editing a draft apply straight away because a draft never sends until you launch it. Revealing prospect contact details spends credits on each call over the API. Per-call caps apply: adding is capped at 500 prospects per call and enrolling individual contacts at 2,000 per call. Launching checks the campaign has at least one step, a sending mailbox, and enrolled contacts, then only flips it live; your normal mailbox warm-up, daily and monthly send caps, and send window still pace the actual sending exactly as they do in the app. Connecting a mailbox stays a manual step you do in Email Settings; the AI can list your connected mailboxes but never sees their credentials. Writes fire your automations and webhooks exactly as the same action in the app would, so moving a contact's stage over the API can trigger any automation you have set up for that stage change. Every write the AI makes is recorded in the audit log, and revoking the key cuts access immediately. A typical end-to-end ask, if your role includes the adding and campaign permissions, is something like: find HR managers in Singapore in People Search, add 200 into a new list, draft a 2-step campaign on your connected mailbox, enrol the list, preview the launch, and launch it once you confirm.
Automations (the canvas builder)
Automations are in beta and still under active development, so the canvas builder will keep changing while we refine it. Automations run a sequence of steps automatically when something happens in your CRM. Build them on a visual canvas at Workflows in the sidebar. Available on the Hunter and Apex plans. The Automations page has two tabs. "Your automations" lists what you have built, grouped by status (Active, Paused, Drafts) with run counts. "Recipe catalog" is a gallery of ready-made automations grouped by job (Popular, Notifications, Follow-ups, Deliverability, Scheduled, Sync and connectors, AI plays), for example "Reply, then stop campaigns for that contact", "Deal won, then log to Google Sheet", or "Every Monday 9am, then pipeline review task". Click "Use this" and it drops a fully wired draft you can tweak and activate. Each recipe card shows small app icons for the tools it touches (Slack, Discord, Telegram, WhatsApp, Google Sheets, Calendar, a webhook, a schedule, or the AI agent) plus a cost chip: green "Free" for recipes with no AI step, or the estimated AI credits per run for AI plays, so cost is visible before you pick one. A search box at the top of the catalog filters every recipe by app or keyword, so typing "google sheets" surfaces every recipe that writes to a sheet. How to build one from scratch: open Workflows, click New automation, then drag nodes from the left palette onto the canvas and connect them top-to-bottom. Every automation starts with one Trigger (for example "Reply received", "Deal won", "Contact created", an Incoming webhook, or a Schedule), then flows into Logic and Action steps. Click any node to configure it in the right-hand panel. Click Save to keep a draft, or Save & activate to turn it on. Node types: Triggers start the automation (16 CRM events, an incoming webhook URL you can POST to, or a Schedule that fires daily, weekly, or monthly at a Singapore time you pick, for example every Monday 09:00). Logic nodes shape the flow: Branch (an if/else with a true and a false output), Filter (stop unless a condition holds), and Delay (wait minutes, hours, or days before continuing). Action nodes change your CRM: set a pipeline stage, assign a teammate, add or remove from a list, add to suppression, stop campaigns, enrol the contact in another campaign (the engine behind "openers or repliers flow into my next campaign" loops; suppression and stop-on-reply still apply), create a task, or send an in-app notification. Connector nodes reach other tools: Slack, Telegram, Discord, ClickUp, WhatsApp Business, Google Sheets (append a row to a spreadsheet), Google Calendar (create an event, optionally inviting the contact), and a generic HTTP request node. Slack, Telegram, Discord, ClickUp, and WhatsApp are connected by pasting a webhook URL or token once via the Connections button in the editor (stored encrypted). Google connects with one "Connect Google" sign-in in the same Connections dialog; a single Google connection powers both the Sheets and Calendar steps. WhatsApp specifics: the WhatsApp step uses your own Meta Cloud API credentials (an access token and phone number ID from developers.facebook.com, pasted once as a connection, plus an optional default recipient). It sends either a free-form text, which Meta only delivers inside the 24-hour window after the recipient last messaged your WhatsApp number, or a template message, which works any time using a template you have approved in your WhatsApp Manager (the node fills the template's first placeholder; Meta bills your Meta account per template message, roughly a few US cents). HuntSales itself charges nothing for the step. Variables: in any text field you can insert values from the trigger with double curly braces, for example {{trigger.contactName}} or {{trigger.contactEmail}}; the editor shows one-click chips (Name, Email, Company, Deal size) under each message box so you don't have to type them. On the Google Sheets step, click "Load columns from sheet" and the editor reads your sheet's own header row and shows one labelled box per column, so you map data to your real column names exactly like Make or Zapier; "Edit as list" switches back to the raw one-cell-per-line view. Runs are durable: each run is checkpointed, so a delay resumes later and a failed step retries a few times before pausing the run for your attention. See every run, its steps, and retry a failed one under Run history. Each plan includes a monthly run allowance (Hunter 2,000, Apex 10,000). AI steps: add an AI agent node to have an assistant read your CRM context and draft or decide, then an Approval node to pause for your yes or no before anything is sent. The agent runs on a hard per-run budget and spends AI credits (a small base plus a step charge, capped per run), and is available on the Hunter and Apex plans. Only AI agent steps cost credits — every other step (actions, connectors, logic) is free — and the editor header shows the estimated AI-credit range for the whole workflow before you run it. Anything that leaves your CRM (an email, a booking) always waits for your approval. Test run: while editing an automation, click Test run to send a synthetic trigger signal through the whole flow once and see the result. It runs against your most recent contact so the steps have a real target, executes every step for real (so a Slack or Google Sheets step actually posts, which confirms the connection is wired), does not use up your monthly run allowance, and reports pass or fail with the failing step if any. See the full run under Run history.
Webhooks (connect n8n, Zapier, Make)
Webhooks let HuntSales send an HTTP POST to a URL you own the moment something happens in your CRM, so you can trigger n8n, Zapier, Make, Slack, or your own service. Set them up in Settings, then Developer, under Webhooks: paste an https URL, tick the events you want, and save. The signing secret is shown once when you create the endpoint, so copy it then. Events you can subscribe to: reply received, contact created, contact stage changed, contact assigned, campaign launched, campaign completed, email opened, email clicked, email bounced, contact unsubscribed, call completed, meeting scored, deal created, deal won, watchlist match, and credits low. Every event carries a small JSON payload with the ids and key display fields for that event (never full contact notes). Each delivery is signed so you can trust it came from us: the request carries an X-HuntSales-Signature header holding an HMAC-SHA256 of the exact body using your endpoint secret, plus an X-HuntSales-Event header naming the event. Verify by recomputing the HMAC on your side and comparing. Deliveries are reliable, not fire-and-forget. If your endpoint is down or returns an error, we retry up to three times with a growing back-off before giving up. Open the Deliveries view on any endpoint (Settings, then Developer, then Webhooks) to see the recent deliveries with their status codes and attempt counts. Prefer to manage endpoints from code (for example an n8n trigger node)? An API key can create, list, and delete your webhook endpoints over the API, so a workflow can register its own endpoint automatically. Keys are personal, so this works when the key's owner holds the Automations permission (superadmin keys always can). Note: task due-date events are not available yet.
Suppression list and deliverability
The Suppression List holds addresses that should never be emailed (unsubscribes, hard bounces, addresses that were repeatedly undeliverable, addresses you marked undeliverable from Email Review, spam complaints, and do-not-contact). Contacts on it are skipped by every campaign. Superadmins can also add do-not-contact rules by exact email, by company name, or by domain. A domain rule like "abc.com" blocks that whole domain; a rule starting with a dot, like ".gov.sg", blocks that domain and every subdomain (moe.gov.sg, iras.gov.sg, and so on), and applies to future contacts too. Keeping a clean list, warming up mailboxes, and stopping on replies all protect your sender reputation and deliverability. Some entries can be taken back off, and some cannot, and the page tells you which is which. Anything YOUR OWN team put there can be removed: a manual block you added by hand or by import, and an address somebody marked undeliverable with "Never send" on the Email Review page. Those rows carry a tick box and a Remove button. Removing one lifts the block completely - the address comes off the suppression list AND the contact's email stops being marked Invalid, so campaigns can reach them again. What was recorded automatically from the RECIPIENT cannot be removed by anyone: an unsubscribe, a spam complaint, or a bounce. Those rows have no tick box, and the rule is enforced by HuntSales itself rather than by hiding the button, so there is no way round it. That is deliberate - resuming mail to somebody who asked to be left alone is a compliance problem, and a bounce is a fact about the address rather than an opinion about it. If you select a mix and press Remove, the removable ones go and you are told how many were refused. One exception to the reversal: if the address has bounced since it was suppressed, the contact stays marked Invalid even though the suppression row goes, because a bounce is evidence that outranks the earlier judgement. Removing needs the Campaigns, Email Setup and Replies permission, and every removal is recorded in the consent log next to the original decision.
Soft bounces and the three-strike rule
A soft bounce means "not now" rather than "never": a full mailbox, a busy server, greylisting. One or two of those are not worth losing a real prospect over, so nothing is suppressed on the first or second. Three CONSECUTIVE soft bounces on the same address, with no successful delivery in between, suppress it. Consecutive is what makes this safe: a successful delivery resets the count to zero, so an address whose mailbox fills up three times across a year, with good sends in between, is never suppressed. Only three in a row escalates. The third strike does what a hard bounce does: the address goes on your Suppression List with the reason "repeatedly undeliverable", the contact's email is marked Invalid, their active sequences stop, and anything already queued to them is cancelled. It is recorded under its own reason so you can tell it apart from an address that never existed. You will see it on the campaign's Stopped card as "Repeatedly undeliverable", and on the Suppression List. Below three strikes nothing is suppressed and the contact is still yours to judge: Contacts, then Filters, then Bounced, then "Needs a decision" lists everything that bounced without being suppressed. A bounce we cannot classify never counts as a strike. The count is yours alone. A mail server refusing your messages three times says something about your sending to that server, not about the address itself, so nothing is written anywhere another HuntSales customer could read. Both sending paths feed the count: platform sends, and the bounce-backs read from a connected Gmail, Microsoft or SMTP inbox.
Verify email addresses before sending
You can have HuntSales check that each recipient address is real before a campaign sends to it, to reduce bounces and protect your sender reputation. Turn it on under Email Setup, Email Settings, "Verify email addresses before sending" (an admin with the Manage team permission or the workspace owner controls the toggle; it is off by default and applies to the whole workspace). Before the setting is saved you are shown exactly what it will cost: how many campaign addresses are queued to send right now, how many of those have never been checked, what that comes to in credits, and the ongoing rate of about 500 credits per 1,000 new recipients. Only campaign mail is counted, because only campaign mail is checked - one-off sends and replies are never verified and never charged. Turning it on is your go-ahead for those checks to run automatically at send time, which is why the number is shown up front - the send itself never stops to ask. If the queue is very large we may not be able to work the total out inside that click; when that happens we say so and you can still turn it on, because the rate does not change and a cost estimate failing is not a reason to leave your sending unprotected. Turning it off again costs nothing and takes effect immediately. Once it is on, two things spend without asking again, and they behave differently. Read them apart, because only one of them has a ceiling. The first is the background pre-check. To get ahead of a campaign, HuntSales checks addresses already queued for a later send, in the background, so the send itself is not held up. That part is bounded and reports back: it never spends more than 200 credits a day for your workspace, it never runs at all unless this setting is on, it stops rather than take your balance below zero, and when it uses credits the workspace owners get a notification, at most once a day, saying how many addresses were checked and what it cost. If a check fails on our side the credits go back on your balance; the usage log lists the original charge rather than a separate refund line. Anything above that daily ceiling is simply checked later, at send time, or on the Email Verification page where you see the count and the total before you click. The second is the check at the moment of sending, for anything the background pass did not already cover. That one has no spending ceiling: it costs 0.5 credits for every new address you send to, however many that is, and it is disclosed rather than limited. Every check we charge for appears in your credit usage log, and the workspace owners get a notification, at most once a day, when these automatic send-time checks pass 200 credits. If you want a hard ceiling on verification spend, turn this setting off and verify on the Email Verification page instead, where every run shows its count and total before you click. What it will never do is skip the check and send anyway: if a check cannot run - no credits, no answer from the checking service, a setting we cannot read - that email is held rather than sent. The single exception is a platform-wide incident in which HuntSales switches checking off for everyone to keep mail moving; that is a deliberate, temporary step, never a silent one, and it is the only circumstance in which a campaign email leaves unchecked. Nothing is wasted under either, because an address is only ever paid for once. When it is on, each recipient's address is checked before the send. A new address is sent for checking the first time it comes up and the email waits for the answer, held rather than sent; the answer usually comes back within minutes, and the email goes out on the next sending run. A check costs 0.5 credits per new address, and an address is only ever checked ONCE: a verdict never expires on a timer, so re-sending to the same person is always free. It is revisited only when a bounce proves the old verdict wrong, and in that case the bounce itself supplies the new verdict at no charge. A pool contact that arrived with an email was already checked when you added it, at no extra cost beyond the 2-credit add rate, so this step finds it cached and charges nothing. The charge applies whether the address turns out valid or not. If an address comes back clearly undeliverable, that send is skipped and the contact's email is marked invalid, so you never bounce on it. If the check cannot reach a verdict at all - a catch-all domain, or a mail server that will not answer - the send is HELD rather than sent, and appears under Email Review for you to approve or reject. Those are the addresses most likely to bounce, so they are not waved through. Nothing is lost: approving one puts it straight back in the queue, and the decision is remembered for that contact's later steps. Rejecting one marks the address undeliverable for your workspace only and cancels the held email. Deciding needs the Campaigns, Email Setup and Replies permission, and a later confirmed bounce still overrules an approval. See "Email Review: approving held sends". You can also check a single contact any time from the Verify button on their email in the contact drawer, at the same 0.5 credits per new check (cached re-checks are free). Two things to know. First, an address is never sent to unchecked. If a check cannot run at all - your credit balance is too low to pay for it, the checking service is not answering, or a run has already used its share of checks - that email is HELD instead of sent. It is retried automatically: every fifteen minutes when the checking service is the problem, and hourly when it is a credit shortage, so a top-up is picked up within the hour. It goes out by itself the moment a check succeeds. Held emails are listed on the Email Review page marked "Re-checking" so you can see exactly what is waiting and why, and you can push any of them through from there without waiting. If an address is still unconfirmable 24 hours later it stops retrying and becomes a decision for you on that same page - from that point a top-up no longer releases it, because it is now waiting on your answer rather than on the check. This is a deliberate trade: your campaign can pause, but it will not send to an address nobody has confirmed. Second, verifying an address confirms the mailbox can receive mail; it does not guarantee your email lands in the inbox rather than spam. Inbox placement still depends on your sender reputation, warm-up, content, and authentication.
Email Review: approving held sends
Email Review (sidebar, under Outreach) is where campaign emails wait when the deliverability check could not resolve the address. It only appears when "Verify email addresses before sending" is on for your workspace, and it only applies to campaign sends. The link shows for roles with the Campaigns, Email Setup and Replies permission, and the same permission is needed to decide, because releasing mail is a sending decision. Rows arrive in one of two states, and each row is labelled so you can tell them apart at a glance. "Waiting on you" is an address the check looked at and could not confirm either way: most often a catch-all domain, where the mail server accepts every address so the specific mailbox cannot be checked, or a mail server that did not answer in time. Nothing will move it until you decide. Those are the addresses most likely to bounce, which is why they are held rather than waved through. "Re-checking" is an address the check could not run on YET - the checking service was not answering, your credits ran out, or the run had already used its share of checks. There is nothing you need to do: it is retried automatically - every fifteen minutes when the service is the problem, hourly when it is a credit shortage - and it sends by itself the moment a check succeeds. If you do not want to wait, each of those rows has its own "Send without waiting" link, which sends that one email without a check. It is deliberately one row at a time, and it is not covered by the select-all box, because these are addresses nobody has looked at yet. If a row is still unconfirmable 24 hours later it stops retrying and moves to "Waiting on you", so nothing sits here forever without being asked about. Each row shows the reason in plain words. Nothing is lost while an address waits: the email is held, not deleted and not failed, and it resumes the moment a check succeeds or you approve it. Send anyway releases that email back into the sending queue. For a "Waiting on you" row it also records the decision against the contact, so later steps of any sequence to that person send without asking again; that decision does not expire, and the page says so before you click. For a "Re-checking" row it applies to that one email only - nobody judged that address, so nothing about it is remembered. One thing overrules an approval either way: if a later bounce proves the address undeliverable, that confirmed verdict wins. Approving means "we could not tell", never "this is confirmed good". Never send marks the contact's email Invalid, adds the address to your workspace's suppression list so no campaign can reach it again including ones the contact is not in yet, and cancels the held email. That decision stays inside your workspace and never affects any other HuntSales customer. You can tick several "Waiting on you" rows and decide in one action. "Re-checking" rows cannot be ticked - they need no decision, and most resolve themselves within the hour - so if you want one of those sent now, use its own "Send without waiting" link. None of this costs credits: for a "Waiting on you" row the 0.5-credit check already happened, and a "Re-checking" row is either waiting on a check that has already been paid for or has not been charged for at all. A campaign CAN pause here, and that is deliberate. If your balance is too low to pay for a check, or the checking service is down, the affected emails wait rather than going out to addresses nobody has confirmed. While they are still "Re-checking", topping up or the service coming back releases them on the next run with nothing for you to do. Once a row has moved to "Waiting on you" - 24 hours of failed checks - that no longer applies: it is waiting on your answer from then on, and only Send anyway or Never send will clear it. Send anyway and Send without waiting work even while the checking service itself is down. That is the point of them: the decision is recorded on the email, so the next send run honours it instead of holding the address again. The only thing that overrules it is a confirmed undeliverable verdict. Workspace owners get an email while addresses are held, at most once a day, with a link straight to this page and a count of how many are waiting on a decision versus still being re-checked. That count leaves out the addresses that are only waiting their turn in the next run's checking budget - they clear themselves within minutes, and counting them would mean an email nearly every day about nothing. They are still listed on this page. You can turn the email off under notification preferences ("Addresses awaiting review"); turning it off does not release the held emails.
Email Verification page and bulk verify
The Email Verification page (in the sidebar under Data) checks a whole list of addresses at once so you can clean it before a campaign. Verification never runs on its own and never spends credits without your say-so: you pick an existing contact list or upload a CSV of emails (uploading only builds the list, it does not verify), and then HuntSales shows an exact cost estimate before anything is charged. The estimate tells you how many addresses are new checks (0.5 credits each), how many already have a verdict (free), and your current balance. Nothing is spent until you click Verify; if your balance is short, the page shows Top up and Upgrade buttons and keeps Verify disabled. A single run sends up to 40 new addresses for checking and the page reports back as the answers land, usually within minutes; for anything larger the page offers to run it in the background instead, and you can close the page while it works. The background button always carries the credit figure, and it is priced against the WHOLE run, not one batch of it: if your balance will not cover every remaining check, the page says so before you start and tells you how many checks your credits actually pay for, so a run that will stop short never starts as a surprise. A balance too small for even one check (0.5 credits) cannot start a background run at all. The number on that button is also a hard limit on the run, not a guess: a background run will never check more addresses than the figure you clicked, so topping up while it is going does not quietly let it spend more than you agreed to. When it reaches that number it stops and says so, and starting another run picks up the rest at a fresh, freshly-quoted price. Background runs show live progress and a valid/invalid/unknown breakdown, and one workspace can have one background run going at a time. If you run out of credits partway, the run stops cleanly, keeps everything it already checked, and tells you so - and everything checked stays free to re-use, so topping up and starting another run only pays for what is left. Every contact carries a single email deliverability status, shown as a coloured chip with exactly three possible values: Valid (green, the address accepted mail when we checked it), Unknown (gray, not checked yet, or the check could not give a clear yes or no, for example a catch-all domain), and Invalid (red, undeliverable). There is no fourth status. A Valid chip means the address accepted mail at the moment we checked it. It does not mean a person reads that inbox, and it does not guarantee inbox placement over spam. The same three chips appear on contact rows and in the contact drawer, and you can filter the Contacts list by deliverability status. Very large lists are verified in batches; when a run hits the per-run limit it tells you how many are left and offers Verify remaining, which shows a fresh estimate and asks you to confirm again before spending. You can also verify a selection straight from the Contacts list: tick some contacts, open Actions, and choose Verify emails, which shows the same estimate and confirm step. Bulk verification is available on paid plans (Free and expired trials are prompted to upgrade), while the single Verify button on one contact stays available to everyone at 0.5 credits per new check; re-checking the same address is free forever, because a verdict is only revisited when a bounce contradicts it. Three clean-up helpers sit alongside an invalid result: Move invalid to list gathers the invalid-status contacts in your selection into an "Invalid emails" list; Add to Suppression List stops every campaign from ever emailing them; and in the contact drawer an invalid address can be corrected inline and re-verified with the Verify button. Verifying confirms a mailbox is real and can receive mail; it does not guarantee inbox placement over spam. Importing or uploading contacts never verifies them on its own: you always pick an action, see the exact cost, and click to confirm before any credit is used. The one exception is adding a contact from People Search, where a mailbox-level check is bundled into the 2-credit add rate and costs you nothing on top, so those contacts arrive with a Valid status. Campaigns use the same statuses to protect your sender reputation: the "Email deliverability filter" checkboxes in a campaign's Settings choose which statuses may be enrolled and sent to (Valid, Unknown, and Invalid; new campaigns start with Valid and Unknown ticked). A contact whose status is outside your selection is skipped, never enrolled or emailed, so a known-bad address never burns your sending domain.
Workflow automation
Workflows (Hunter and Apex plans) automate repetitive CRM work with if-this-then-that rules: for example when a contact reaches a stage, create a task; when a reply is classified as interested, notify the rep or enrol the contact in a follow-up campaign. Build them under Workflows in the sidebar by picking a trigger, optional conditions, and one or more actions.
Intelligence: scoring, analytics, AI briefs
The Analytics page (Hunter and Apex plans) is the analytics suite, with five lenses: Outreach (send/open/reply performance), Pipeline (deal movement and win probability), Prospects/Market (where your contacts come from and which segments convert), Reply quality, and Team. The Intelligence page is its sibling hub, holding Signals, Audiences, the Engagement Leaderboard, the ICP Builder and an Insights dashboard. On top of the analytics dashboards: automatic lead scoring ranks contacts by engagement (replies, reply intent, pipeline stage, opens, call outcomes, website visits and recency) on a 0 to 100 scale, with the full ranked list on the Hot Leads tab of Analytics. By default a contact scoring 70 or more is Hot and 40 or more is Warm, and admins can change both cutoffs under Settings, Hot lead score thresholds (the change applies workspace-wide, including the badge in the contact drawer); anomaly alerts email your superadmins (a daily check) when a metric moves unusually, and each finding in that email says what it means, what to do about it, and what happens if you leave it, so a bounce spike is never presented like a quiet week for conversions; and AI briefs (weekly outreach brief, weekly pipeline brief, monthly market brief, 5 AI credits each) summarise what changed and what to do, and can be emailed to you on a schedule. What sets this apart from generic sales AI: it runs on your own data, not a database we sell you. The ICP learns your winning-customer profile from your own converted contacts and won deals, describes the pattern (for example "your wins cluster in computer programming, 11 to 50 staff, under 10 years old") and flags monthly when it drifts. The scores are deterministic, unit-tested math, so every deal-win-probability breaks down into the factors that moved it (stage, reply intent, engagement, close-date slip) with no invented numbers, and the briefs are built strictly from your data. It also tells you when not to send: ghost detection flags a warm contact who went silent after your follow-ups, and anomaly alerts catch a bounce spike or reply collapse early.
Signals: market triggers matched to your CRM
Signals (a tab under Intelligence, Hunter and Apex plans) watches for things happening outside your CRM and matches them to your pipeline, so you reach out, or stop, at the right moment. It pulls eight live sources today. Company risk: a company already in your CRM that ACRA shows as struck off, wound up, or cancelled is flagged so you stop emailing a dead entity before it bounces. New ICP matches: companies that just incorporated in Singapore whose sector matches your saved ICP, surfaced as fresh prospects to add before competitors do. Visitor intent: website visitors scored by how strongly they are buying (pricing-page views, repeat visits, recency, depth), so the warm ones rise to the top. Hiring and growth: companies posting roles on Singapore's MyCareersFuture jobs portal are expanding, a timely reason to reach out. Grant fit: how many of your contacts look like Singapore SMEs eligible for schemes such as PSG and EDG, linking straight to the grants reference under Resources. Engagement spike: a contact heating up on your own outreach (recent opens, clicks or replies), the warmest hand-raise you have. Prospect left: an email to one of your contacts that just hard-bounced, so you find their replacement at the company before the relationship goes cold. Deal going cold: a contact in an active pipeline stage that has gone quiet, nudging you to re-engage before it stalls. Each signal shows its reasons and a one-click next action, and the most urgent ones (like a company in your CRM going struck off) also push a bell alert so you never miss them. You can tailor which of the eight groups appear: anyone with the Manage team permission sees a Manage signals button at the top of the tab, opening a panel to show or hide each group. The choice applies to the whole workspace, and a hidden group is skipped entirely (not computed), so hiding Hiring, say, also drops that group from everyone's feed until it is turned back on.
Watchlists: tell HuntSales what to monitor
Watchlists (under Intelligence, Hunter and Apex plans) let you decide what to watch in the market, and HuntSales checks it for you and feeds you the matches. The page has two tabs: My signals (work the matches from what you already watch: run, expand, auto-add) and Signal catalog (browse and subscribe, filtered by category). The fastest way is the Signal catalog: a set of ready-made, pre-tuned signal cards you Subscribe to, grouped into New businesses, Growth & funding, Hiring, Buying signals, Government, Brand & IP, and Your CRM (pick a category to see just that group). Nothing runs until you subscribe, so you only get the signals you actually want. Most signals are free. The three Growth & funding signals (Recently funded companies, Fast-growing companies, and Companies on a technology you choose) draw on a premium company database and cost 1 People Search credit per NEW match delivered: you are only charged for matches you have not seen before, at most 25 per run, and each card and Run button shows the price before anything is spent. These premium signals run weekly (free signals run daily). The tech-stack signal asks you for the technology to watch (for example Shopify, HubSpot, or AWS) when you subscribe. Each card shows what the signal means, who it is for, and a plain-English line on how a company or contact qualifies. Phase one signals are New company incorporation (ACRA), Companies hiring salespeople / finance / marketing / engineers (MyCareersFuture), and Your warming-up contacts (your own CRM engagement). You can also still build your own watchlist: pick a source we can reach and type free-form criteria, or describe it in plain English (for example "F&B companies hiring chefs in the east") and the AI fills in the source and filters. The sources are Companies hiring (roles on MyCareersFuture), Newly incorporated companies (ACRA, by sector keywords or all sectors), Engaged contacts (your CRM contacts above a score you set), Won a government tender (companies awarded a contract on GeBIZ, with optional agency or keyword filters), Filed a new trademark (companies that just filed a trademark with IPOS, a brand or product launch tell, with optional brand or class filters), Companies hiring fast (companies posting several roles at once, a scaling signal), and three first-party signals on your own CRM: Prospect left (a contact's email hard-bounced, so they likely changed jobs), Deal gone cold (an active-stage contact gone quiet), and At-risk companies (a company in your CRM that is struck off or in liquidation at ACRA). There are also LinkedIn-powered signals: Hiring on LinkedIn (Singapore companies advertising the roles you watch on LinkedIn job boards), LinkedIn buying signals (posts asking for vendor or service recommendations), and Pipeline contact changed jobs (a contact in your active pipeline changes jobs, so you can win them again at the new company and backfill the old account). The two LinkedIn market signals (Hiring on LinkedIn and LinkedIn buying signals) each cost 2 People Search credits per keyword every run: the card and the Run now button show the cost before anything is spent, so if you watch three keywords a run costs 6 credits. Pipeline contact changed jobs is priced separately under job-change tracking. Every subscription and watchlist runs automatically once a day, and you can press Run now any time. Switch on notifications and the workspace owners get a bell alert when new matches turn up. Matches are deduped so you only see what is new; company matches link to People Search to add to your CRM, and contact matches open straight in your Contacts. On people signals (engaged contacts, prospect left, deal gone cold) you can also set Auto-add: expand the watchlist, pick a contact list, and every new match is dropped into that list automatically, ready to enrol in a campaign. Pause or unsubscribe any time. More signals (new trademarks and others) are on the way. The Hiring category also carries Companies hiring recently (Singapore), which is free to run and covered in its own article.
Companies hiring recently (Singapore) signal
Companies hiring recently (Singapore) is a signal in the Hiring category of the Signal catalog (Watchlists, under Intelligence, Hunter and Apex plans). It tells you which Singapore companies have just started hiring, which is one of the clearest signs a business is spending, growing a team, and open to a conversation. How it works. Every day HuntSales reads new job postings from MyCareersFuture, Singapore's public government jobs portal, and groups them by the employer behind each posting. Each employer is then matched to the ACRA company register on its UEN, so you are looking at a real, identifiable Singapore entity rather than a name on a job ad. Postings placed by a recruitment agency on behalf of a client are excluded by default, so a staffing firm is never mistaken for the company that is actually hiring. Because both sources are public and refreshed daily, matches are usually a day or two behind the real posting. What it costs. The signal is free. It runs on free government data, so there is no per-match credit charge and no cap on matches: it is included with your plan (Hunter and above, the same as every watchlist) rather than metered. Subscribe to it, run it as often as you like, and none of it touches your credit balance. The one paid step is optional and always asks first, see below. What you can set. When you subscribe you can narrow it by how recently the roles were posted (14 days by default), the role categories to watch, the seniority levels, a minimum monthly salary, industry or SSIC keywords, and a minimum number of new roles per company if you only want companies hiring at pace rather than filling a single seat. What you see. Each match is a company with a short derived summary: how many new roles it posted in your window, when the most recent one went up, the role categories and seniority levels involved, the salary band, and its ACRA standing (for example live on the register and the year it was incorporated). We deliberately do not reproduce the job listings themselves, so you will not see job titles, descriptions, or advertisement text: the terms of the jobs portal do not allow republishing listing content, and the insight is what matters for prospecting anyway. From a match you can jump into People Search to add the company to your CRM. Finding the decision-maker. Each match has a Find decision-maker button. This looks for the senior person who owns the function the company is hiring for (a sales hire points at the sales leader, and so on), then reveals their work contact details and saves them into your Contacts against the same company. This step is the only part that costs credits, and it is charged at the normal People Search reveal rates: 2 People Search credits for the work email. Mobile phone is not available for new lookups yet. The exact cost is shown before you confirm, and nothing is charged if we cannot find a decision-maker or the reveal comes back empty.
Grant schemes your SME clients can tap
HuntSales keeps every main Singapore SME support scheme in one place under Resources, Grants in the sidebar, so you can see what your business is entitled to without trawling agency sites. Adopt and upgrade: the Productivity Solutions Grant (PSG, up to 50% on pre-approved IT and equipment, capped S$30k a year) and the Energy Efficiency Grant (EEG, up to 70% on energy-efficient equipment for SMEs in the eligible sectors, with an all-sector expansion announced for 2026). Build capabilities: the Enterprise Development Grant (EDG, up to 50% on core-capability, innovation or market-access projects, with sustainability projects up to 70%; "up to 80%" is not an official rate). Go overseas: Market Readiness Assistance (MRA, rising to 70% from 1 Apr 2026, capped S$100k per market). Train and convert talent: the Career Conversion Programme (CCP, up to 90% salary support, up to around S$45k per trainee, the scheme BizGrants Consulting runs end-to-end for you) and the SkillsFuture Enterprise Credit (SFEC, a S$10k credit that stacks on other grants, expiring 30 Nov 2026). Startups and deep tech: Startup SG Tech (proof-of-concept up to S$400k, proof-of-value up to S$800k) and Startup SG Founder (a capital grant up to S$50k, matched 1:1 to the founder's own capital, for first-time founders). Tax incentives: the Enterprise Innovation Scheme (EIS, up to 400% tax deductions on R&D, IP and training). Note that PSG, EDG and MRA are being consolidated into a single EDGE grant in the second half of 2026. Figures are indicative and change, so confirm current terms on the agency pages before quoting a client. The Signals tab under Intelligence also surfaces how many of your contacts look like Singapore SMEs (roughly 200 staff or fewer, live on ACRA) as a ready shortlist that links straight to this reference. There is no public feed of who actually received a grant, so this is a targeting and timing hook, not a per-company award alert.
Website visitor tracking
Website Visitors (under Intelligence in the sidebar) shows the people from your CRM who are browsing your website. Install the small tracking snippet on your site (instructions on the page). Identification happens when a visitor submits a form carrying their email: that visit is matched to the contact, the pages they viewed are kept on the record, and they can be dropped into a re-engagement list. Visitors who never identify themselves stay anonymous, so this does not name companies from IP addresses. Visits that match contacts or ICPs in your CRM are flagged so reps can follow up while interest is hot, and high-intent visit patterns also raise a bell notification.
ICP targeting
ICP & Targeting (under Intelligence) lets you define ideal customer profiles: title, industry, company size, country and more, with autocomplete from your own data. You can also let the AI draft an ICP from your converted customers in one click. Every new prospect is automatically tagged with the ICPs it fits, match lists are ranked by engagement, and a monthly drift check tells you when your winning profile is changing shape.
Suggested Audiences: who to target
Suggested Audiences (the Audiences tab under Intelligence) is the forward-looking partner to ICP targeting. ICP matches the contacts already in your CRM; Suggested Audiences tells a newer customer who to go after when they have no win history yet. From your industry, your SSIC, and a short "what do you sell" line, it recommends the buyer personas worth targeting, expressed as the job titles and seniorities that prospect search can actually find (for example a training provider gets L&D and HR managers; a cybersecurity vendor gets IT managers, CISOs and CTOs). Each card shows the personas, why they are the buyer, and a live count of how many matching people are in your market. Previewing that count is always free. When you like an audience, Build list adds those people into a brand-new contact list (this spends People Search credits, 2 per contact, including a mailbox-level deliverability check on every address that comes with a contact), ready to enrol in a campaign. The free count is drawn from the APAC contact pool HuntSales has already collected, which is a subset of the market. Each card also has a "Find more in People Search" link that opens People Search pre-filtered to that audience to discover people beyond that pool; that path spends People Search credits, and nothing is charged until you run the search. The first suggestions are generated for free from a curated map of common Singapore industries; the "Suggest more (AI)" button asks the AI for extra, more tailored audiences and costs 2 AI credits. The AI can only pick from the same fixed menu of job functions and seniorities, so every audience it suggests is one you can actually search and build. Set your industry and what you sell in onboarding (or Settings) for the sharpest suggestions; with nothing set you still get three safe default audiences (founders, finance and operations leaders).
Engagement Audiences from post engagers
Engagement Audiences is paused right now while we change data sources, and you are not charged for it. When it is available, here is how it works. Engagement Audiences (the Ad Audiences tab under Intelligence, on any paid plan) turns the people who reacted to or commented on a LinkedIn post into a reusable contact list. Paste the post's link, give the list a name if you like, and Build audience. The people found are saved as a new contact list linked in your Contacts, ready to enrol in a campaign or export. It costs 1 credit per engager found, and you only pay for engagers we actually return: the cost is settled to the real number every time. If the post has no public engagement, nothing is saved and nothing is charged. Because the number of engagers is unknown before we look, you confirm an upper limit first (up to 250 engagers per post), then you are only charged for what comes back. Saving those people into your CRM as a list does not cost extra, and anyone already in your CRM is matched to their existing record rather than duplicated. Want their emails too? Reveal them from People Search or the contact panel the usual way once the list is built.
Ad Audience Export (hashed emails)
Ad Audience Export (the Ad Audiences tab under Intelligence, on any paid plan) turns one of your contact lists into a file of SHA-256 hashed emails you can upload as a custom audience on Meta, Google, or LinkedIn Ads. The file contains only the hashes, never names, emails, or any personal data, so you can match your audience to an ad platform without sharing raw contact details. Pick a contact list and choose Export hashed audience. Contacts that already have an email are hashed on the spot for free. Matching contacts that have no email is not available right now, so only contacts that already have an email are included in the export. The download is a single-column CSV of hashes, deduplicated. Exports are limited to 2,000 contacts per run, so split very large lists first.
Adding everything that matches your search
There is one search on People Search and one bulk action on it. Set your filters, look at the sample of matches, and click "Add all to CRM" to pull everyone matching those filters into a brand-new contact list. It is available on the Hunter plan and above and needs the "Bulk Pulls" permission. The window tells you how many people match your filters before you spend anything, because that count is free to run. You then choose how many to pull, anything from 50 up to 25,000. If you ask for more than match, you only pay for the ones we deliver, and we never hold credits for more people than actually exist behind your filters. This is also the way past the browse ceiling. Paging 10 rows at a time cannot walk a search that matches hundreds of thousands of people, however many match your filters. A pull takes the same filters and brings up to 25,000 in one action instead. 25,000 is the hard cap per pull; if your filters match more than that, tighten them (a narrower industry, headcount band or seniority) and run more than one pull rather than expecting a single one to return everything. The price is 2 credits per person we actually add. (A pull delivers no email address, so no deliverability check is run or charged for here; that happens when you reveal or verify an address.) The window shows the exact number of credits held, your balance, and what your balance will be while it runs, before anything is spent - and if the spend is more than half your balance you are asked to type the number to confirm it. Anyone already in your CRM is skipped and costs nothing; you never pay twice for the same person. Everything unused is refunded automatically when the pull finishes, and if nothing matches, nothing is charged. A pull brings names, job titles, companies and LinkedIn profiles. Emails are NOT included - that is the one difference from adding a person straight off the results grid, where a business email is revealed when one exists, for 1 credit on top of the 1-credit collect. Once the list lands, use "Find contact details" on the Contacts page to look up emails for the whole list in one action, charged only for the ones we find. It runs in the background, so you can leave the page. A strip at the top of the results tells you a pull is running, and the people go to a new list in Contacts, not to the results grid - do not re-run the search looking for them. When it finishes you get a notification that opens the new list directly and states how many people were added, how many were skipped as already yours, and how many credits were charged and refunded. Two limits worth knowing. Pulling the exact same search again within half an hour is refused, because the same filters deliver the same people and you would be paying to re-import contacts you already have. And there is a daily ceiling on how many credits one workspace can commit to pulls, so an accidental repeat cannot drain a balance while nobody is watching.
Job-change tracking (Champion Tracker)
Job-change tracking is paused right now while we change data sources, and you are not being charged for it. When it is running, here is how it works. Job-change tracking (on any paid plan) keeps an eye on a contact's LinkedIn profile and alerts you when they move to a new company, so a champion who leaves becomes a warm lead at their new employer and a fresh contact to make at the old one. It is opt-in for the whole workspace. Go to Watchlists, open the Signal catalog, and subscribe to "Pipeline contact changed jobs". Until you subscribe, nobody in your team can start tracking anyone, so there is no way to switch on a recurring charge by accident. Once subscribed, open that signal in your list and expand it. The Tracked contacts panel is where you choose who to watch: search your contacts by name, hit Track next to the ones worth watching, and Stop to drop them. The panel always shows how many contacts are tracked and what that costs you a month. Contacts need their LinkedIn profile saved, because that is what the watch is keyed on. Subscribing is free. Each tracked contact then costs 2 credits per month, charged monthly, with the next charge date shown next to the name. When the person changes jobs, a match appears under the signal and in your alerts. Stop tracking any time to end future charges. Unsubscribing from the signal stops tracking every contact at once. Tracking runs on a monthly cadence only. If your credits run out when a monthly charge falls due, we stop watching that contact and tell you: the subscription for that person is removed rather than suspended, so topping up alone does not bring it back. Top up, then Track that contact again to restart it. Nothing is charged while they are not being tracked.
Low calling credit alerts and auto top-up
Calling credit is your prepaid balance for talk time, inbound calls and AI call transcription. Dialling pauses when it hits zero, so it is worth knowing before you get there. Set an alert: go to Calling, Numbers. Under the balance, tick "Email me when calling credit drops below" and set the amount. Workspace owners get an email and an in-app alert once when you cross that line, and again only after the balance goes back up, so it cannot nag you daily. Only the workspace owner can change it. Auto top-up (where available): tick "Top up automatically when I run low", choose the trigger, the amount and how many times a month you will allow it, then accept the terms. We charge the card you last topped up with. You need to have topped up manually at least once, because that is how we get a card on file and know it works. Safety limits that always apply, whatever you set: at most one charge every 6 hours, at most 10 a month, and never more than US$1,000 a month. The minimum auto top-up is US$25, because card fees eat small repeated charges. Three declines in a row turns auto top-up off and emails you. If your bank asks for extra verification we do not retry silently, we email you a link to approve that payment. Refunds and disputes remove the matching credit again, and a dispute turns auto top-up off. Turn either off at any time in the same place.
Light and dark mode
The CRM ships in a dark theme by default. To switch, tap the sun/moon toggle in the top bar: it flips the whole app between light and dark in one tap. Your choice is saved on the device you're using, so each team member can pick what suits them without changing it for anyone else. The public marketing site stays light; only the signed-in CRM follows your toggle. The product tour points the toggle out on your first visit, and you can switch back any time.
Per-rep conversion goals and Team Pulse
Managers can define what counts as a conversion per role or per member (for example a telemarketer's conversion is an appointment secured, a closer's is a deal won). Configure this under Team in the Permissions tab; each member can also have an individual override. The Team Pulse view then measures every rep against their own goal, so telemarketers and closers are compared fairly.
Calling: softphone, numbers and talk time
Calling lives under Outreach in the sidebar and is included on the Hunter and Apex plans, with one calling seat per user on your subscription. It has three parts. Numbers. Under Calling, open the Numbers tab to buy a local number (Singapore, Hong Kong, Australia, UK or US; call Malaysia from a Singapore number) without leaving the CRM: search live availability, pay a one-time activation plus a monthly rental per number via secure Stripe checkout, then allocate the number to a rep as their caller ID. Number prices vary by country: Singapore is US$7.50 one-time + US$7.50/month, and UK and US local numbers start from US$1.50. Before your first number, your workspace completes a one-time calling verification: business details, a photo or scan of the authorised person's NRIC or passport, a signed liability acknowledgement (you are responsible for all calls on your numbers and indemnify HuntSales and BizGrants Consulting Pte Ltd for misuse). The BizGrants team then reviews the submitted document and approves your workspace, usually quickly; once approved you can buy numbers freely. Buying is blocked until verification is approved. The first time you buy a number you accept a short calling acceptable-use policy (call responsibly, comply with the Do Not Call registry and telemarketing law, no spam or fraud); this is a one-time acknowledgement per workspace. Your team can hold as many numbers as it has users. Releasing a number stops its monthly charge. Calling lines. Up to 10 outbound calls can run at the same time across the platform, and up to 5 at once within a single workspace (inbound is unlimited). If every line is busy you'll see a brief "all lines are busy, try again in a moment" message; this limit is raised as volume grows. Talk time. Calls are prepaid: top up calling credit (presets or any amount from US$10) on the Numbers tab and calls deduct by the minute. The rate card is published right there, for example Singapore is US$0.047 per minute, billed in 1-minute blocks. The card shows your balance, a low-credit warning, and a recent-activity list of every top-up and call deduction. When credit hits zero, dialing pauses until you top up. Making calls. Reps sign in to the softphone (the phone button at the bottom left) with their allocated number as caller ID. Call any contact with the Call button next to their phone number, or key/paste a number into the softphone's dial box. Singapore numbers work without the country code (for example 9123 4567); other countries need the code (for example +60 12 345 6789). You can dial Singapore, Malaysia, Indonesia, the Philippines, Thailand, Vietnam, Hong Kong, Macau, Taiwan, China, Japan, South Korea, India, Australia, New Zealand, the United Kingdom, Ireland, the United States and Canada, Germany, France, the Netherlands and the UAE; premium-rate and satellite numbers are blocked for fraud protection, and any other destination can be switched on if you ask support. When a call ends the rep tags the outcome (Connected, Voicemail, Callback, No answer, Not interested) and notes. Give an unanswered call 15 seconds to ring. On an outbound call that has not been picked up, the Hang up button is greyed out for the first 15 seconds and counts down - "Hang up in 9s" - then turns red and works normally. That is roughly three rings. It is not a bug and there is nothing to fix: hanging up after one or two rings is the pattern carriers score as abandoned dialling, and it is what gets a number tagged "Spam Likely", then blocked, then useless for everyone on the team. The wait applies to nothing else. The moment the other person picks up, the button is live. An inbound call can always be ended immediately. A call that failed to connect at all can always be ended immediately. And the block expires by itself after 15 seconds whatever else happens, so it can never trap a rep on a live call. Taking notes while you are on the call. The softphone and a contact's card work at the same time. Opening a contact no longer puts the phone out of reach: the softphone stays on top of the card, so you can mute, key an extension or hang up without closing anything first. A note you have half typed is kept while you look something up, so you can switch to the contact's Activity tab to read an older note, switch back, and carry on where you left off. Closing the card, or jumping through to a related contact, still clears an unsaved note, so save it first. On a screen narrower than about 1264 pixels the softphone shrinks to its round button when you open a contact, so the two do not sit on top of each other; click it to open it again, and it opens by itself when a call comes in or you start one. Answering inbound calls. When someone calls one of your numbers, the softphone rings in the browser of the rep that number is allocated to, showing the caller's name if they match a contact. Answer picks up; Decline hangs up and the call is logged as missed, exactly as it was before. Ringing goes only to the allocated rep and never falls back to the workspace owner, so allocate a number in Calling → Numbers to whoever should be picking up. To receive calls the rep must be signed in to the softphone with that browser tab open: signing in once does not make you reachable forever, and closing the tab, going to sleep or losing the network takes you offline within about two minutes. If the number has nobody allocated, the rep is not signed in or is offline, or the workspace is out of calling credit, the phone does not ring and the call is logged as a missed call with a notification instead. Nobody answers within 25 seconds and it becomes a missed call too. Answering costs the same inbound rate as any inbound call (US$0.02/min). Call Log and recordings. Every call lands in the Call Log under Calling: agent, contact, duration, what it cost, the outcome, and a recording. Reps see their own call history; owners see the whole team. Hearing recordings is a separate permission, "Listen to Call Recordings", which is OFF by default: members see their call history but cannot play recordings unless an admin ticks that permission in Team to Permissions. A member with it hears only their own calls' recordings; the Super Admin can always hear every recording. Calls are recorded automatically. Inbound calls to your numbers are logged too: if the caller matches one of your contacts you'll see who called by name, and the rep holding that number gets a missed-call notification in the bell. Inbound talk time is billed per minute (US$0.02/min). Call activity summary. Above the Call Log table sits a summary of the whole filtered set, grouped by the question each figure answers. "How much did we dial?" gives Outbound and Inbound, with the total alongside. "How many did we reach?" gives Answered (with the answer rate), No answer and Voicemail. "What came of it?" gives Not interested, Callback, Connected and the average call length. A quiet line underneath gives talk time and billed minutes. Today, Yesterday and Last 7 days buttons set the dates in one click. The figures are counted in the database over every matching call, not over the rows on screen, so they stay right however many calls there are. Billed minutes sits next to talk time because they differ: the carrier rounds every call up to a whole minute, so a hundred forty-second calls is about 67 minutes of talking but 100 billed minutes. Answered and Connected are different numbers on purpose, and it is normal for them to be far apart. Answered is what the CARRIER reported: the call was picked up. It counts answering machines and receptionists as well as prospects, which is why it runs high. Connected is what the REP ticked in the wrap-up form after the call. Everything under "What came of it?" - Not interested, Callback, Connected - comes only from that wrap-up form: nothing is inferred from the recording, the transcript or the AI summary. No answer is counted from either side, because a rep can tick "No answer" and the carrier also records it when nobody picks up. The Answered figure used to be labelled "Connected", which put two different meanings of the word side by side; the label changed, the arithmetic did not. Click any figure to narrow the table below to exactly the calls behind it, and click it again to clear. The bar that appears says what is being shown, how that outcome splits between inbound and outbound, and where the figure comes from in plain words. There is also a Direction filter (All, Outbound, Inbound). Those three controls - search, direction and the clicked figure - filter the ROWS only; the figures above always cover every call in the date range, and the screen says so when they differ. The table shows 50 calls a page, newest first, with Newer and Older buttons underneath and a line saying which rows you are looking at out of the total. A figure above can therefore be larger than the rows on one page; the screen says so. Owners with more than one rep calling get a "By agent" button that opens a per-rep table of calls, outbound, inbound, answered, answer % and talk time; reps see only their own figures, exactly as they see only their own calls. AI call summaries. With auto-summary on (toggle in Calling → Numbers, on by default), answered calls over 30 seconds are automatically transcribed and summarised into the contact's timeline with a buying-temperature read. Four outcomes: Hot (they asked to move forward or a specific next step was agreed), Warm (the prospect themselves engaged and showed interest but committed to nothing), Cold (reached and not interested), and Not reached (a phone menu, receptionist or other gatekeeper, voicemail, wrong number, or a call cut short before anything was discussed). The read is based only on what the PROSPECT said: a polite call with no rejection is not a warm lead, and where the evidence is thin the cooler label is chosen on purpose, because a false warm lead wastes the follow-up and hides the real ones. You can also summarise any call by hand from the Call Log using the Summarise button. Each summary costs 2 AI credits plus per-minute call transcription (US$0.011/min) drawn from your calling credit.
Calling: network and firewall requirements
Most people never need this page. Home broadband, mobile hotspots and ordinary office wifi all work with no setup. Read on only if calls fail to connect, connect with no sound one way, or drop after a few seconds, and only on a corporate or school network. How the call actually travels. When a rep places or answers a call, the audio goes straight from their browser to our telephony carrier. It does not pass through HuntSales servers. That is why call quality tracks the rep's own internet connection rather than anything in the CRM, and why a network that blocks the carrier stops calls even though the rest of HuntSales works perfectly. What a restrictive network has to allow. All of it is outbound from the rep's computer; nothing needs to be opened inbound, and no port forwarding is involved. - Secure WebSockets over TCP 443 for call signalling, the same port normal HTTPS uses. A network that allows ordinary web browsing usually allows this already. - UDP for the audio itself. This is the one corporate firewalls most often block. When UDP is blocked the call falls back to a relay (TURN), which is what the IP range below is for. - The relay range 64.16.246.128/26, which covers 64.16.246.128 to 64.16.246.191. The relay range is changing on 14 September 2026. Our carrier is widening it. If your IT team allowlists the old ranges 64.16.246.96/27 or 64.16.246.128/29, they must move to 64.16.246.128/26 before that date or relayed calls will start failing. The old /29 sits inside the new /26, so the new range is a superset: allowlisting it is safe to do today and needs no coordination with us. Nothing inside HuntSales has to change, and if your network does not filter outbound traffic there is nothing to do at all. Symptoms that point at the network rather than at us. The softphone signs in and shows Ready, but calls never connect. Or the call connects and one side hears nothing. Or every call drops at roughly the same number of seconds. Those three are the classic signature of blocked UDP with no working relay. By contrast, if the softphone cannot sign in at all, or shows Connecting and stays there, that is usually signalling or credentials, not media. Other things worth checking first, because they are far more common than a firewall. The browser needs microphone permission, which it will only ask for over HTTPS. The tab has to stay open to receive inbound calls. And a headset selected in the operating system but not in the browser is the usual cause of "they cannot hear me". Still stuck? Send your IT team this page, then contact support with the rep's location, the time of a failed call and the number dialled. Every call attempt is logged with a reason, so support can normally tell you which of the above it was rather than guessing.
Call Queue (telemarketing mode)
The Call Queue lives in the sidebar under Main and is built for working calls one contact after another. It has two tabs. Work a list is telemarketing mode. Pick one of your contact lists from the dropdown and the queue loads every member with a callable number: the contact's own phone or mobile (badged "direct"), or their company's office line (badged "office") when the person has no direct number. Members with no number at all, suppressed contacts, and Do Not Call contacts are left out, and the counts above the queue show how many were excluded. Hit Start dialing to begin at the top of the list. For each contact you see their name, title, company, stage and number, with these actions: Call (dials through the softphone), Log outcome (record the call result and notes, which updates the contact's pipeline stage exactly like logging a call anywhere else), Skip (move on without calling), Open profile (the full contact panel in a side drawer), and Stop session. Auto-advance keeps you moving: when you save a call outcome for the current contact (in the softphone wrap-up after a call, or via Log outcome), the queue marks them as called and moves to the next contact after a 3-second countdown. Press Pause during the countdown if you need a moment, then Next contact when you are ready. The session header tracks how many you have called and skipped and how many remain. No calling plan? You can still work a list. Without the softphone (no take-calls permission, or a plan without calling) the number becomes a tap-to-dial link for your desk phone or mobile, and you record each result with Log outcome; auto-advance works the same way. Follow-ups due is the second tab: your assigned contacts due or overdue for a follow-up, grouped by urgency (overdue, due today, upcoming), with quick actions to log a call, snooze, skip, or mark not interested. Note: the dialing session itself is not saved. The called/skipped progress lives only in the open browser tab, so finish a session before closing or refreshing the page. Every logged call, outcome and note IS saved to the contact as you go; only the position in the queue is temporary.
Welcome reward (homepage spin wheel)
New visitors to the HuntSales homepage can spin a sure-win welcome wheel. Every spin lands on a real prize: +500, +250 or +200 People Search credits, +100 AI credits, or a 2x multiplier on your first credit top-up. How it works. Spin, sign up for a free account, then upgrade to any paid plan (Scout or higher) within 7 days of signing up. The reward is delivered automatically the moment that paid plan starts. You do not need a code: credit prizes are added to your account when the subscription goes live, and the top-up multiplier applies to your first credit top-up after that. The rules. One reward per customer. A paid plan is required to claim it; the reward is never delivered on the free plan. The 7-day window starts at signup and cannot be extended, and once it lapses the reward expires. We send reminder emails while the reward is still claimable, and a banner appears on your dashboard with a countdown. The wheel prizes are credits, not discounts, so they never affect or stack with our launch promotion. Full terms are at /welcome-terms.
Still stuck?
Inside the app, click the help button in the bottom corner to chat with the assistant or leave a message for our team.
Get started free