Contractor Lead Refund Automation: Recover Angi & HomeAdvisor Credits
Contractor lead refund automation that files Angi, HomeAdvisor, Bark, and LSA credits from call transcripts — recover bad-lead spend without the support queue.
A roofing shop in Phoenix buys Angi, Thumbtack, HomeAdvisor, Bark, and Google Local Services Ads the way a restaurant buys produce: every week, on autopilot, because the trucks have to stay full. The bill lands between $2,000 and $10,000 a month. Then the phone rings for a water-heater swap when they only do roofs, a job 40 miles outside the service area, a disconnected number, a homeowner who already hired someone last Tuesday. Each of those leads still posts to the invoice. Filing a credit means a different portal, a different deadline, a different evidence packet, and a support queue that treats the dispute as a favor.
Built for Small Business Owners, Solo Founders.
LSA CPL $50.46 (2023) → $60.50 (2024), +20%. PipelineOn citing SearchLight and LocaliQ. Contractor LSA adoption ran from the high 20s toward about 70% in the same window.
Suggested stack: Next.js (App Router) + Vercel, CallRail webhooks + Twilio recordings, Whisper, Claude, Playwright / browser automation, Stripe Billing. Weekend scope: about 12 hours.
The Problem
A roofing shop in Phoenix buys Angi, Thumbtack, HomeAdvisor, Bark, and Google Local Services Ads the way a restaurant buys produce: every week, on autopilot, because the trucks…
The Solution
Refundra is not another lead scorer. CallRail already classifies. LeadTruffle already books. Refundra takes the CallRail or Twilio transcript, decides whether the lead is…
Market Research
LSA CPL $50.46 (2023) → $60.50 (2024), +20%. PipelineOn citing SearchLight and LocaliQ. Contractor LSA adoption ran from the high 20s toward about 70% in the same window.
Competitive Landscape
Tack Tools Pro — Fair Credit launched May 13, 2026. AI drafts Thumbtack refund requests in the six official categories in about 30 seconds. Built by a working Thumbtack pro.…
Business Model
Refund Audit ($0) — 90-day scan across Angi, HomeAdvisor, Bark, Thumbtack, LSA. One number in 48 hours. No card. The lead magnet.
Recommended Tech Stack
Next.js (App Router) + Vercel — Audit dashboard, recovery reports, webhook receivers. One repo.
AI Prompts to Build This
Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.
1. Project Setup
Build the weekend MVP of "Refundra": a contractor uploads 90 days of paid leads with call transcripts and gets a dollar number for leads that look refundable, plus a ready-to-send claim for each one. It does not file anything on the platforms. Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the Anthropic API to classify each lead against a platform's refund reasons. Leads come in by CSV with a transcript column. Deploy on Vercel. Tables (Row Level Security on, scoped to the account that owns the rows): - accounts(id, user_id, business_name, trade) - platform_rules(id, account_id, platform, window_days, reason_labels jsonb) platform is angi, homeadvisor or bark; the owner fills the values from each platform's own policy page - leads(id, account_id, platform, external_lead_id, charged_at, amount_cents, service_type, zip, transcript) - classifications(id, lead_id, category, confidence, quotes jsonb, model, prompt_version) - claims(id, lead_id, reason_text, window_closes_at, status, credit_cents) status is draft, filed, approved or denied Screens: /login, /import (CSV), /leads (the dollar number and the list), /claims. Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), ANTHROPIC_API_KEY. Do not build: billing, plans or a recovery fee, browser automation or Playwright filing, CallRail or Twilio connections, audio transcription, Thumbtack, Google Local Services reconciliation. Done when: npm run dev starts, you can sign in, and the five tables exist with Row Level Security on.
2. Core Feature
Build the one feature that proves Refundra: find the leads that look refundable and draft the claim from the call itself. 1. Import a CSV with columns platform, external_lead_id, charged_at, amount, service_type, zip, transcript. Show the rows that failed to parse and why. 2. For each lead, send the transcript and the platform's reason_labels to the Anthropic API with a strict JSON schema { category: "wrong_service" | "out_of_area" | "disconnected" | "duplicate" | "already_hired" | "not_refundable", confidence: number from 0 to 1, quotes: string[] }. 3. Check every quote in code: it must appear word for word in the transcript. Drop any category that has no valid quote and mark that lead not_refundable. 4. Work out window_closes_at as charged_at plus the platform's window_days. If window_days is empty, show "Check this platform's policy" instead of a date. Never guess a window. 5. /leads shows one number at the top: dollars on leads that look refundable with the window still open. Under it, the list with category, confidence and the days left. 6. For each refundable lead, create a draft claim: the lead's details, the category, the quoted lines and a short reason text in plain words. The contractor copies it into the platform's own form. A status control lets them mark it filed, approved or denied and enter the credit amount. 7. Show recovered dollars (approved credits) beside the total spent on leads. Rules: never promise a cash refund; say credit unless the platform pays cash. Never claim a platform has a dispute API. Empty state: with no leads, show the CSV columns and a sample file to download. Done when: a 20-lead sample file produces categories with quoted lines, the top number matches the sum of the eligible open-window leads, and marking a claim approved with a credit updates the recovered total.3. Landing Page
Build a one-page landing site for Refundra, which finds refundable leads for home-service contractors. Hero: "Your Angi and HomeAdvisor credits, found before the window closes." Sub: "Upload 90 days of leads and calls. Get one dollar number and a claim written for each lead." One button: Join the waitlist for the free Refund Audit. Sections: a sample audit result card with one big number marked as an example, how it works in four steps (upload, classify, claim, track), a placeholder for a real recovery story to replace with yours, and an FAQ on why you file the claim yourself, credits versus cash and how your call data is handled. Waitlist: store the email in a waitlist table in Supabase. No other service. Style: Geist, an off-white background, near-black type, one lime accent. Done when: the page renders on a phone and a submitted email appears in the waitlist table.
4. Branding Package
Use a design or image tool for this one. A coding agent cannot draw a logo. Brand for Refundra: a wordmark and a small mark that reads as a receipt stamp, not a phone. Colors: near-black, one lime chip and two warm grays. Type: Geist, with tabular numbers for dollars. Deliverables: wordmark, stamp icon, an audit result card, three sample audit emails that open with one number marked as an example, and a one-page brand sheet with three do-not-say rules: no "AI-powered", no "set and forget", never promise cash when the platform pays credit. Done when: each deliverable is saved in one folder and the stamp is still readable in one color.