TL;DR: I’m Tom Landry—a 36-year trade veteran turned software developer. I built EasyAccurate.com and Dar AI to solve a problem that has plagued field contractors for decades: inaccurate job estimates, complex pricing models, and software built by people who have never spent a day on a job site. Here is how I’m bridging field experience with full-stack engineering, complete with code snippets, architecture breakdowns, and future goals.
🛠️ From the Job Site to the TerminalI didn't start my career sitting in front of an IDE. I spent 36 years in the trades—handling real work, dealing with real clients, and wrestling with real operational headaches. For years, software sold to contractors fell into two flawed categories:Overly bloated enterprise platforms requiring a degree in database administration just to send a basic proposal.
Generic calculators that completely ignore field variables, localized labor rates, material supply chain fluctuations, and trade-specific margins.
When you miscalculate a bid in the trades, it doesn't just mean a bug in a log file—it means working for free or losing a job to a lower bidder. I got tired of seeing independent contractors struggle with tools designed by tech execs who never touched a tape measure.
So, I learned full-stack engineering and decided to build the platform I always needed.
đź’ˇ What is Easy Accurate? EasyAccurate.com is built on a simple premise: trade-specific technology should be lightning-fast, dead-accurate, and accessible.
Rather than creating another generic SaaS dashboard, EasyAccurate operates as an integrated ecosystem for trade contractors across 14 supported fields (painters, plumbers, electricians, HVAC, roofers, concrete, drywall, etc.):
Trade-Engineered Estimators: Dynamic quote engines tuned to actual field variables, localized ZIP-code pricing matrices, and real-time vendor material costs. Zero-Bloat Architecture: Fast-loading PHP backends paired with decoupled JavaScript/React frontends—built to work seamlessly on mobile devices in the field. Integrated Business Hub: Combining website engines, structured JSON-LD schema SEO, automated customer proposals, and local lead routing into one unified ecosystem.
🤖 Enter Dar AI:
Dar The Autonomous Field Estimator Estimating shouldn't require coming home after a 10-hour workday to spend three more hours crunching numbers. That’s why I created Dar AI—a standalone plugin and autonomous field-estimating assistant engineered explicitly for home service and commercial contractors. Dar AI isn't just another wrapper around an LLM. It's a multi-agent workflow engineered to handle real field conditions:
Contextual Measurement & Vision Processing: Takes job site photos, floor plans, and spatial measurements, processing them directly through vision-capable models. Local Rate Adjustments: Automatically references real-time local supplier pricing tables and applies ZIP-code cost multipliers (classified into high-cost, standard, and low-cost regional indexes). Autonomous Ticket Generation: Communicates with clients via interactive web chat or field hubs ([dar_field_hub]) to qualify job requirements, calculate square footage, generate detailed line-item scope-of-work tickets, and output print-ready PDF proposals instantly.
đź’» Under the Hood: Code & ArchitectureUnder the hood, we run a hybrid setup built for modularity, low latency, and offline/mobile durability:
Core & Backend: PHP 7.4+ / WordPress REST API, Python (FastAPI), Google Cloud Run. AI Engine & Workflows: Claude Managed Agents (claude-sonnet-4-6 or claude-opus-5) and Google Gemini (gemini-2.5-flash), with custom JSON-LD schema generators. Security: AES-256-GCM encrypted API key storage using WordPress salts.
- Claude Managed Agents Toolset PayloadWhen initializing a trade-specific agent turn, Dar builds an explicit toolset configuration to grant search, fetch, and file tools:
PHP/**
- Build the toolset payload expected by the Managed Agents API.
- @param string $trade_slug
-
@return array
*/
function dar_managed_agents_tools_payload( $trade_slug = '' ) {
$configs = array();
$enabled = dar_managed_agents_toolset( $trade_slug );
$available_tools = array( 'bash', 'read', 'write', 'edit', 'glob', 'grep', 'web_fetch', 'web_search' );foreach ( $available_tools as $tool ) {
$configs[] = array(
'name' => $tool,
'enabled' => in_array( $tool, $enabled, true ),
);
}return array(
array(
'type' => 'agent_toolset_20260401',
'configs' => $configs,
),
);
}
- Localized Professional Matching ContextWhen a user provides a 5-digit ZIP code during a chat session, Dar injects geocoded local contractors into the context window without inventing data:
PHP/**
- Contextual injection of local directory pros into agent turns.
- @param string $text Raw message
- @param string $trade_slug Active trade
-
@return string Prompt context addition
*/
function dar_managed_agents_professional_context( $text, $trade_slug ) {
if ( ! preg_match( '/\b([0-9]{5})(?:-[0-9]{4})?\b/', $text, $match ) ) {
return "\n\nProfessional matching is enabled, but no 5-digit ZIP code was found. Ask for the ZIP code before recommending local professionals.\n";
}$geo = dar_map_geocode( $match[1] );
if ( is_wp_error( $geo ) ) {
return "\n\nProfessional matching could not locate ZIP {$match[1]}. Ask the customer to verify the ZIP.\n";
}$pros = dar_map_search_pros( $geo['lat'], $geo['lon'], $trade_slug );
if ( empty( $pros ) ) {
return "\n\nNo directory-listed {$trade_slug} professionals were found near ZIP {$match[1]}.\n";
}$lines = array();
foreach ( array_slice( $pros, 0, 5 ) as $pro ) {
$lines[] = '- ' . $pro['name'] . ' (' . $pro['miles'] . ' mi); phone: ' . $pro['phone'];
}return "\n\nLOCAL PROFESSIONAL MATCHING CONTEXT (near ZIP {$match[1]}):\n" . implode( "\n", $lines ) . "\n";
}
🚀 Future Goals: What’s Next for Dar & Easy Accurate?We're just getting started. Here is what I’m currently engineering for the platform:
Multi-Agent Field Networks: Evolving Dar AI into a multi-agent state machine where independent agents handle specific operational tasks—one agent managing client intake, another running material takeoff calculations, and a third generating localized SEO landing pages for the contractor automatically.
Direct Supplier API Integrations: Expanding real-time API integrations with local trade suppliers so material pricing updates dynamically based on live distributor inventory.
Open Developer Ecosystem: Releasing modular plugins (like the ScopeQuote Estimator and Dar Field Hub) to allow developers to build specialized trade estimators for local business clients without re-inventing the backend logic.
Let’s Talk Tech & Trade Solutions
I joined the Dev.to community to share technical breakdowns on building multi-agent AI systems, decoupling WordPress with API-first architectures, and solving real-world domain problems with code.
Are you building AI agents for specific real-world industries?
How are you handling localized real-time data fetching in your LLM workflows?
Drop a comment below or connect with me—I'd love to exchange ideas on modern web architectures, AI workflows, and bootstrapping product systems!
Top comments (0)