Redesign Ugly Sites Cold Outreach
Finds local businesses with outdated websites, scores their design, generates a stunning replacement landing page, and sends a personalized cold email with the redesign.
Overview
This workflow is a complete lead generation and outreach pipeline for freelance web designers, agencies, or anyone selling website redesign services. It automatically finds local businesses with outdated websites, scores how ugly each site is, generates a beautiful replacement landing page, and sends a personalized cold email with the redesign attached — all on autopilot.
A built-in demo mode lets you preview everything safely before going live.
What It Does
- Searches for businesses in a specific niche and postal code area
- Extracts business names, websites, and details from search results
- Visits each website and scores it on an ugliness scale from 1 to 10
- Picks the worst offender as the outreach target
- Generates a complete, responsive HTML landing page as a replacement
- Sends a polished HTML cold email with a link to the redesigned page
What You Need
- A Needle account with access to the Workflow Builder
- A Gmail connector to send outreach emails from your Google account
- Optionally, set the
DEMO_MODEvariable totrueso emails go to your own inbox for review instead of the actual business
How the Flow Works
| Step | Node | Description |
|---|---|---|
| 1 | Webhook Trigger | Accepts a POST request with a postalCode and an optional niche. |
| 2 | Parse Defaults | Fills in any missing fields. Defaults to German market settings (country, language, and a search query combining niche and postal code). |
| 3 | Search Internet | Runs a web search for businesses matching the niche and location. Returns titles, URLs, and snippets. |
| 4 | Extract Businesses | An AI agent parses the search results and pulls out real business websites, filtering out directory listings like Yelp or Google Maps. |
| 5 | Parse Business List | Cleans the AI output into a structured array of business objects (name, website URL, description). |
| 6 | AI Website Roaster | The core of the pipeline. For each business, an AI agent browses the actual website, evaluates the design quality, and returns an ugliness score (1–10) with a detailed roast and list of key issues. Runs in parallel across all businesses. |
| 7 | Pick the Ugliest | Sorts all scored businesses by ugliness and selects the one with the highest score as the prime outreach target. |
| 8 | Generate Landing Page | An AI agent visits the target business's website again, understands their services and branding, then generates a complete self-contained HTML landing page. Includes hero section, services, about, testimonials placeholder, and contact section — fully responsive with Google Fonts, CSS animations, and a professional color scheme. Written in the same language as the original website. |
| 9 | Clean HTML | Strips any markdown code fences from the AI output so the HTML is ready to save. |
| 10 | Save as File | An AI agent saves the HTML as a downloadable file and returns the hosted URL. |
| 11 | Merge & Combine Data | Combines the file URL with the original business data (name, website, ugliness score) into a single object for the email node. |
| 12 | Send Cold Email | Composes and sends a visually polished HTML email personalized with the business name, written in the same language as the target website, with a prominent call-to-action button linking to the redesigned landing page. No price is mentioned. When DEMO_MODE is enabled, the email routes to your own inbox and the footer shows who the intended recipient would have been. |
Webhook Input
Send a POST request to the webhook URL with the following body:
| Field | Required | Description |
|---|---|---|
postalCode | Yes | The postal code to search for businesses in |
niche | No | The type of business to target (defaults to "Zahnarzt" / dentist) |
Example:
{ "postalCode": "80331", "niche": "Zahnarzt" }
Output
A fully personalized cold outreach email sent to the business (or to your inbox in demo mode) containing a link to a stunning replacement landing page you can use to start a conversation and close a deal.
Important Notes
- Set
DEMO_MODEtotruewhen testing so you don't accidentally email real businesses. The workflow behaves identically in both modes except for the recipient address. - Defaults are configured for the German market, but you can change the Parse Defaults code node to target any country or language.
- The AI picks the single ugliest website from the search results. To target multiple businesses per run, modify the "Pick the Ugliest" code node to return more than one result.
- Landing page file URLs expire after 7 days. For production use, consider hosting the generated HTML on your own domain or a service like Netlify or Vercel.
- You must connect your Gmail account as a connector before the email node can send.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
