Small agencies waste days hunting for clients. Describe your business; the agent finds matching UAE/GCC companies, reads their websites, detects problems your services fix and drafts cited outreach in English and Arabic — a human approves everything, nothing is sent.
An AI go-to-market agent for small B2B service businesses — agencies, consultants, software studios — selling to UAE and GCC SMEs. You describe what you sell; the agent proposes an ideal customer profile (ICP) for you to approve, then plans its own searches, discovers matching companies, researches each public website and keeps only the companies where it found a real, evidenced problem one of your services can fix.
Every score is explained component by component, every fact carries its source URL and observation date, and every sentence in a draft cites its evidence. A human approves every external action; this version has no sending integration at all.
The problem
Most AI sales tools buy a firmographic list and blast templated “personalised” emails. There is no proof the company needs anything, no sources behind the claims, black-box scores, English-only copy and automatic sending.
The approach
Flip it to evidence first: only a company with a concrete, checkable problem your service fixes becomes a lead, every claim links to where and when it was observed, and a person approves every message before anything leaves the app.
What it includes
- AI-assisted ICP builderProposes an ideal customer profile from your website and services; you edit and approve it.
- Step-by-step search plannerChooses one source + query at a time, validated in code (enabled tools only, no repeats, budget limits).
- Five discovery sourcesGoogle Places, Brave Search, public exhibitor lists, CSV upload and domain lists; non-company sites filtered out.
- Safe website researchrobots.txt respected, private networks blocked, size and time limits; page text treated as data, never instructions.
- Rule-based need detectionSlow mobile site (PageSpeed), no HTTPS, no Arabic version, not mobile-friendly, broken contact form, outdated tech and more.
- Explainable scoringICP fit 40 · need evidence 25 · evidence quality 20 · reachability 10 · freshness 5 — qualified only at 55+ with an evidenced need.
- Cited EN/AR draftsEnglish email, Arabic email (RTL) and a WhatsApp-style message; every claim sentence cites its source.
- Approvals, pipeline, analytics, learning journalReject reasons feed reversible scoring adjustments; analytics show their denominators.
- Sending integrationPlannedDeliberately not built — nothing leaves the app.
Role
- Sole developer: product design, agent runtime, research and scoring pipeline, UI, tests, CI and the competition documentation.
How it is put together
- Next.js appSetup, ICP, runs, leads, approvals
- Postgres job queueHeartbeat, stale-lock recovery
- Worker: agent runtimeState machine, planner, tool registry
- Research & scoringSafe fetcher, need rules, weights
- DraftingEN / AR / WhatsApp with citations
- Human approval for every external action
- SSRF-safe fetcher
- Step and cost budgets
- Tenant isolation on every query
Simplified. The learning journal feeds approved/rejected outcomes back into scoring.
Agent profile
- Objective
- Find companies that match your ideal customer profile and have an evidenced problem your services fix, then draft outreach that cites that evidence.
- Input
- A business setup (website, services, geography) turned into an ICP you approve; a run is then queued as a background job.
- Reasoning
- A planner proposes one step at a time (a source plus a query), sees how many new companies it produced and proposes the next — stopping at the company limit, when every industry/city pair is tried, or after 10 planning steps. The code validates every proposal.
- Tools
- places_search, search_companies, exhibitor list fetcher, CSV / domain import, safe page fetcher, PageSpeed Insights, tech detection, fact extraction, need detection, scoring, drafting
- Execution
- A Postgres-backed job queue and a separate worker run a persistent state machine (plan → find → research → score → draft). Every planning decision and tool call is logged and streamed to the run page; runs can be cancelled and retried.
- Safety
- Human approval for every external action and no sending integration. SSRF guard (private ranges, encoded IPs, redirects, DNS rebinding), prompt-injection handling, public business data only — no LinkedIn scraping, no guessed or personal emails, suppression lists and data deletion. Per-run and per-workspace-month cost caps enforced in code.
- Models
- Provider chosen server-side. With Anthropic: claude-opus-5-5 for planning, synthesis and drafting (EN/AR), claude-haiku-5-5 for extraction and classification. A deterministic mock provider powers tests and the offline demo; Ollama is available for local development.
Reported outcomes
- 10 / 9companies researched / qualified in the demo runSource: README — synthetic demo
- 97%need signals with a source (35 / 36)Source: README — synthetic demo
- 100%draft claim sentences cited (15 / 15)Source: README — synthetic demo
- 0messages sent — by designSource: README
Screens



