BANTify
After every discovery call, Sales Development Representatives spend 10 or more minutes manually typing notes into Salesforce. Every rep does it differently, important details get lost, and Account Executives walk into meetings with incomplete information. Time spent typing is time not spent selling, and inconsistent records damage the handoff between the SDR and the AE, which is where deals are won or lost.
- Accepts a call two ways. Upload a recording or paste a transcript into a plain text area.
- Extracts BANT. The AI pulls Budget, Authority, Need, and Timeline from the conversation, presented as short bullet points.
- Refuses to invent. Missing information gets one of two honest labels: "Not discussed, SDR to raise on next call" or "Raised but prospect deferred." Ambiguous statements are kept ambiguous.
- Rates the lead by rule, not opinion. A written rubric assigns Strongly Qualified (3 or more dimensions confirmed with specifics), Partially Qualified (1 to 2 confirmed, or all four vague), or Not Yet Qualified. The full rubric is published inside the app on a dedicated reference tab.
- Audits itself. After extraction completes, a second AI pass audits the extracted record against the transcript, verifying every field and attaching a supporting quote. Records that fail the audit cannot be logged until corrected.
- Flags competitors. Any competitor named on the call is surfaced in a dedicated alert, not buried in notes.
- Remembers past conversations. For returning companies, the tool shows what changed since the last call (Shifted, always with the specific fact named), what stayed the same (Same), and what was read differently across calls because the source language was ambiguous (Clarify, with the exact question the SDR should ask next).
- Requires human sign off. A four item checklist (company confirmed, fields traced, warnings resolved, rating verified) must be completed before any record can be saved or sent.
- Writes directly into Salesforce. One click creates a real Opportunity record with each part of the analysis in its own field, plus a link to view it in the CRM. The full field mapping is in Appendix A.
- Keeps a full audit trail. Every saved record includes the transcript, the judge's evidence, the comparison, and the ID of the Salesforce record it created.
| Measure | Target |
|---|---|
| Time to a logged record | Under 3 minutes (observed in testing; manual baseline about 10 or more minutes) |
| Fields accepted without SDR edits | 90% or more |
| Fabricated fields reaching the CRM | Zero, enforced by the judge audit plus the human checklist |
| One call = one database record | Always (verified; a 5x duplicate write bug was found and fixed) |
| Qualification consistency | Identical calls receive identical ratings under the rubric |
- It does not qualify or disqualify a lead on its own. The SDR always decides.
- It does not fill in information the prospect didn't give. No invented budget figures, dates, or names.
- It does not sync anything to the CRM automatically in the background. Every record passes the human checklist first.
- It does not support non English calls reliably (known limitation).
- It does not integrate with HubSpot, Dynamics, or other non Salesforce CRMs in the current build.
- Workspace membership is managed manually. Adding a user means editing the membership collection in the console by hand. Production adds an invitation flow and roles.
- Record permissions are workspace wide. Any member can read and delete any record in the workspace. Production would scope deletion to record owners.
- Extraction variance. The AI can read an ambiguous sentence differently on different runs; the comparison feature surfaces this as a "Clarify" question rather than a false alarm.
- Close date is an offset, not an extraction. The Salesforce CloseDate is set to a fixed 90 days from the logging date, not extracted from the prospect's stated timeline (which lives in BANT_Timeline__c as text).
- English only. Multilingual teams can't rely on it yet.
- The time savings number needs a pilot. The 3 minute figure is observed, the 10 minute baseline is experience based; a measured pilot would make the claim data.
- Free tier hosting sleeps when idle. The first page load after a quiet period can take about a minute while the service wakes.
- Per customer Salesforce field mapping and HubSpot support.
- Member invitation flow, user roles, and per user record scoping.
- An evaluation suite: a set of transcripts with known correct answers, run automatically whenever the AI instructions change.
- A measured pilot with a real SDR team to turn the time savings claim into data.
- Multilingual support.
At 1,000 users, total running costs are roughly $3,350/month, including the human oversight time most cost models forget. Break even lands at about $4.47 per user per month, against comparable sales tools charging $80 to $150 per seat. The product is viable with room to spare; the conditions for real deployment are the remaining productization work and staying out of regulated industries at first.
Verified character for character against both the application code and the fields created in the Salesforce org.
| Salesforce field | Content |
|---|---|
Name | The opportunity name |
StageName | "Qualification" |
CloseDate | Today plus 90 days |
BANT_Budget__c | Budget bullets, or the missing information label |
BANT_Authority__c | Authority bullets, or the missing information label |
BANT_Need__c | Need bullets, or the missing information label |
BANT_Timeline__c | Timeline bullets, or the missing information label |
Qualification_Status__c | Strongly Qualified / Partially Qualified / Not Yet Qualified |
Recommended_Next_Step__c | Next step bullets |
AE_Handover_Notes__c | Full AE briefing, including competitor context |
Historical_Opportunity_Comparison__c | Change summary vs the previous call, or "No previous opportunities for this company." |
Description | Generation stamp with date |
Competitor_Mentions__c | Competitor names, included only when competitors were detected |