# TedProspect - B2B Prospecting & Sales CRM

> A full-stack CRM I built for my own agency to automate local business discovery, AI-powered lead enrichment, website auditing, and personalized outreach.

**Published:** 2026-01-31

---
## The Need

My outbound sales process at [Tedbin](https://www.tedbin.com) was entirely manual. Finding potential clients meant searching Google Maps by hand, copying contact details into spreadsheets, and crafting individual pitch emails one at a time. There was no systematic way to assess whether a prospect actually needed web services, no pipeline tracking once outreach began, and no follow-up automation. I was spending more time on research and admin than on actual selling.

## The Approach

I built [TedProspect](https://www.tedprospect.com), an end-to-end CRM that automates every stage of my outbound sales pipeline, from discovering prospects to closing deals.

- **Automated geographic prospecting:** A grid-based Google Maps crawler discovers businesses by category and location, with configurable API budget controls to manage costs.
- **AI-powered contact enrichment:** OpenAI and Claude with web search find emails, LinkedIn profiles, social accounts, and business descriptions for discovered companies, eliminating hours of manual research.
- **Website performance auditing:** Integrated Google PageSpeed Insights checks (mobile and desktop) identify prospects with underperforming sites, giving every pitch concrete data to reference.
- **AI proposal generation:** The system auto-selects relevant services from my catalog and generates personalized pitch emails per prospect based on their business profile and website scores.
- **Multi-channel outreach:** Email sending via configurable providers plus WhatsApp deep-link sharing, with click tracking and automated follow-up reminders to ensure no lead goes cold.
- **Centralized inbound lead capture:** A public API endpoint that any external website can POST to, funneling contact form submissions from multiple client sites into a single CRM inbox with status tracking and notifications.
- **Cross-channel interaction tracking:** Tracks prospect behavior across two channels: email link clicks (interested, later, do not contact) from proposal emails, and website visitor activity via an embeddable tracking endpoint. All interactions feed into a dedicated analytics dashboard.
- **Full CRM pipeline:** Lead status management from discovery through to signed contract, with interaction tracking and dashboard analytics replacing spreadsheets entirely.
- **Built for reuse:** What started as an internal tool quickly proved useful beyond my own agency. I generalized the platform so any digital services business can deploy it with their own branding, services catalog, and API keys. Learn more at [tedprospect.com](https://www.tedprospect.com).
- **Onboarding wizard:** A 6-step setup flow for mail configuration, branding, services, and API keys gets a new team up and running in minutes.
- **Real-time updates:** WebSocket broadcasting for async job progress on crawls, enrichments, and PageSpeed checks.
- **Multi-language support:** English, French, and Portuguese throughout the entire UI.

## Tech Stack

**Backend**

- **Runtime:** [PHP](https://www.php.net/), [Laravel](https://laravel.com/)
- **Auth:** [Laravel Jetstream](https://jetstream.laravel.com/), [Sanctum](https://laravel.com/docs/sanctum) (API tokens), [Fortify](https://laravel.com/docs/fortify)
- **Real-time:** [Laravel Reverb](https://reverb.laravel.com/) (self-hosted WebSocket server)
- **Queue/Cache:** [Redis](https://redis.io/)

**Frontend**

- **Framework:** [Vue](https://vuejs.org/), [Inertia.js](https://inertiajs.com/) (with SSR)
- **Styling:** [Tailwind CSS](https://tailwindcss.com/)
- **Visualization:** [Chart.js](https://www.chartjs.org/), [Leaflet](https://leafletjs.com/) (maps)
- **Routing:** [Ziggy](https://github.com/tighten/ziggy) (named routes), [vue-i18n](https://vue-i18n.intlify.dev/) (translations)

**AI and Integrations**

- **LLMs:** [OpenAI API](https://platform.openai.com/) (gpt-5-mini with web search), [Anthropic Claude API](https://docs.anthropic.com/) (claude-haiku-4-5 with web search)
- **Location data:** [Google Places API](https://developers.google.com/maps/documentation/places) (Nearby Search + Place Details), [Nominatim](https://nominatim.org/) (geocoding)
- **Auditing:** [Google PageSpeed Insights API](https://developers.google.com/speed/docs/insights/v5/about)
- **Email providers:** Gmail SMTP, Outlook/Exchange SMTP, [Amazon SES](https://aws.amazon.com/ses/), [Resend](https://resend.com/), [Postmark](https://postmarkapp.com/), [MailerSend](https://www.mailersend.com/), [Brevo](https://www.brevo.com/) (configurable per deployment)

**Database and Storage**

- **Database:** [MySQL](https://www.mysql.com/), [Spatie Eloquent Spatial](https://github.com/spatie/laravel-eloquent-spatial) (geo queries)
- **Storage:** [AWS S3](https://aws.amazon.com/s3/), [Cloudflare R2](https://www.cloudflare.com/r2/), [Spatie Laravel Backup](https://spatie.be/docs/laravel-backup)

**Infrastructure and Quality**

- **Containerization:** [Docker Compose](https://docs.docker.com/compose/) (PHP-FPM, [Nginx](https://nginx.org/), MySQL, Redis, [Mailpit](https://mailpit.axllent.org/))
- **Local dev:** [Laravel Herd](https://herd.laravel.com/)
- **CI/CD:** [GitHub Actions](https://github.com/features/actions) (tests, formatting/static analysis, security audits, automated weekly dependency updates)
- **Monitoring:** [Sentry](https://sentry.io/) (error tracking), [Laravel Nightwatch](https://nightwatch.laravel.com/) (APM)
- **Testing:** [Pest](https://pestphp.com/) with [Playwright](https://playwright.dev/) browser tests, [Larastan](https://github.com/larastan/larastan)/[PHPStan](https://phpstan.org/), [Rector](https://getrector.com/), [Pint](https://laravel.com/docs/pint), [ESLint](https://eslint.org/)

## Outcomes

- **Lead discovery at scale:** A single location crawl surfaces hundreds of businesses from Google Maps in minutes, replacing hours of manual searching.
- **Automated contact research:** AI enrichment finds emails, LinkedIn profiles, social accounts, and business descriptions without any manual work.
- **Personalized outreach at volume:** AI drafts tailored proposals per prospect using their actual business data and website performance scores, turning what was a per-lead writing task into an automated pipeline.
- **Data-driven pitches:** Every prospect gets a PageSpeed score before outreach, giving the sales conversation concrete proof points instead of generic claims.
- **Consistent follow-up:** Automated reminder emails and one-click response buttons (interested, later, do not contact) ensure no lead goes cold and prospects can self-qualify directly into the CRM.
- **Full pipeline visibility:** End-to-end funnel tracking from discovery through signed contract, with dashboard analytics replacing disconnected spreadsheets.
- **Single inbox for all client sites:** Contact requests from any number of external websites flow into one dashboard, eliminating the need to check multiple inboxes or forward emails manually.
- **Prospect intent signals:** Email click tracking and website visit data give real-time visibility into which prospects are engaging, informing when and how to follow up.

---

_Interested in TedProspect? Visit [tedprospect.com](https://www.tedprospect.com). For custom tools, [get in touch](/contact) or visit [tedbin.com](https://www.tedbin.com)._