"It started with digitizing my supplier catalog so I could actually understand my costs. It ended with a platform and an AI assistant that let me spend my day on jobs instead of paperwork. I have insight into my business I've never had before. JobKit is basically the operating system of my business now."
The Challenge
It started somewhere smaller than where it ended. A specialty trades contractor wanted to digitize his supplier catalogs so he could finally see what a job actually cost him. He was quoting by hand, tracking customers in his head, and losing work to follow-ups that never happened.
Understanding costs turned out to be the doorway rather than the destination. Once the catalog was real data, quoting, scheduling, invoicing and customer history all became things software could do, and the job became building the platform a contracting business runs on instead of a calculator that prices gutters.
What I Built
A full-featured quoting platform with 10 modules and a deeply integrated AI agent that can run nearly the entire business through natural language.
The AI Agent
The centerpiece is an AI agent with 27 tools that operates as a hands-on business partner:
- Quote building via conversation. “200 feet of 5-inch K-style, white, 4 downspouts, for the job on the corner lot” triggers catalog lookups, line item creation, customer field population, and a running total, all in one response.
- Hybrid catalog search. Keyword matching plus vector embeddings against the contractor’s own uploaded pricing from three distributors, with automatic best-price comparison.
- Photo analysis. The contractor sends a job site photo. The agent identifies gutter runs, downspouts, elbows, and end caps, estimates linear footage, searches the catalog for each component, builds the quote, and attaches the photos to the record.
- Weather-aware scheduling. Finds open calendar slots, cross-references weather forecasts, and recommends dry-weather windows for outdoor work. Flags upcoming jobs on bad-weather days and offers to reschedule.
- Full quote lifecycle. “We got the job” marks it won. “That one’s done, need to invoice” updates status. “They paid” marks it paid. All through natural language.
- Proactive business insights. A cron-triggered pipeline analyzes quote history across all users, computes win rates, revenue trends, stale sent quotes, and outstanding invoices, then generates specific recommendations (“follow up on that quote, it has been sitting for 12 days”).
- Two personality modes. A professional “business buddy” persona and a toggleable “smartass” mode that talks like a gutter guy with 20 years in the trade (“Missing sealant and hangers. You want leaky gutters or do you want to do this right?”).
- Deep domain expertise baked into the system prompt: sizing rules, spacing and hanger standards, slope calculations, regional material pricing, failure modes, and the applicable state building code.
The agent streams responses in real time via SSE, executes tool calls client-side against the Zustand store, and supports multi-turn agentic loops (up to 10 iterations) for complex multi-step operations.
The Platform
- Quote Builder. Line-item editor with per-supplier pricing, markup, tax, and totals.
- Quote History. Searchable archive with status tracking (draft, sent, won, invoiced, paid) and deep links.
- Supplier Catalog. CSV upload pipeline that normalizes pricing across three distributor formats, with vector embedding for semantic search.
- Price Comparison. Side-by-side supplier cost analysis.
- Reports Dashboard. Revenue, margin, win rate, and top-customer analytics with Recharts.
- Customer Management. Contact book with quote history, lifetime value, and agent-driven enrichment.
- Calendar. Scheduling with contractor feed integration and a weather overlay.
- Shareable Quotes. Short links (
/q/:id) for sending estimates to customers, with a public acceptance flow. - Settings. Company name, address, tax rates, markup defaults, and per-user preferences.
- Offline Support. Optimistic saves with reconnection handling and an offline banner.
Technical Highlights
- 27-tool agentic loop with streaming SSE, client-side tool execution, and multi-turn conversations
- Hybrid search combining keyword tokenization with Voyage AI vector embeddings via Supabase pgvector RPC
- Row-level security isolates each user’s data; the shared catalog uses a most-recent-upload strategy
- Cron-driven insight pipeline that produces actionable business recommendations per user
- Serverless API on Vercel Functions for agent, catalog search, quote acceptance, price extraction, and embedding
- White-label ready, with company name and location injected into system prompts at runtime