Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate a premium mockup website for a prospect using the buildinamsterdam.com template style. Use when user asks to design a website, create a mockup, or build a prospect website.
.claude/skills/bilal140202-design-website/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -32% | 0% |
Generate a polished, single-page HTML website mockup for a prospect's business. The website matches the buildinamsterdam.com aesthetic: bold typography, off-white backgrounds, editorial grid layouts, terracotta accents. Used to pitch web design services.
The script maps these columns (case-insensitive, flexible matching): | Column | Maps To | |---|---| | company_name / company | Business name (hero, nav, footer) | | description / about | About section + hero subtitle | | keywords / services | Services grid (comma-separated) | | phone / phone_number | Contact section | | email / contact_email | Contact section | | address / full_address | Contact section | | city, state, country | Location info | | industry / category | Unsplash image search queries | | first_name, last_name | Owner attribution | | title / role | Owner role |
scripts/read_prospect.py — Read a single prospect row from Google Sheets → JSONscripts/generate_website.py — Generate HTML website from prospect JSONbashpython3 .claude/skills/design-website/scripts/read_prospect.py \ --url "SHEET_URL" \ --row ROW_NUMBER \ --worksheet "WORKSHEET_NAME" # optional
Outputs JSON to stdout.
bashpython3 .claude/skills/design-website/scripts/read_prospect.py \ --url "SHEET_URL" --row 1 | \ python3 .claude/skills/design-website/scripts/generate_website.py
Or with a JSON file:
bashpython3 .claude/skills/design-website/scripts/generate_website.py < prospect.json
Open the generated file in browser:
bashopen .tmp/website_*.html
.tmp/website_{company_slug}.html — Self-contained HTML file, viewable in any browserUNSPLASH_ACCESS_KEY in .env — Required for stock photos. Get free key at https://unsplash.com/developers#F2EFE6, Black #000, White #FFF, Terracotta #C38133| Name | Type | Required | Description | |------|------|----------|-------------| | sheet_url | string | Yes | Google Sheet URL with prospect data | | row | integer | Yes | Row number (1-indexed, excluding header) | | worksheet | string | No | Worksheet name (default: first sheet) |
| Name | Type | Description | |------|------|-------------| | html_file | file_path | Self-contained HTML file at .tmp/website_{slug}.html |
| Name | Source | |------|--------| | UNSPLASH_ACCESS_KEY | .env (optional, falls back to picsum) |
Skills that chain well with this one: scrape-leads, gmaps-leads
Free (Unsplash free tier)
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-18 | fail→pass | 7,274 | 3,489 | -52% | 1 | 1 | 0% | 1,218 | 1,466 | +20% | 0 | 0 | — |
case-01 | fail→fail | 18,617 | 5,614 | -70% | 1 | 1 | 0% | 4,294 | 1,361 | -68% | 0 | 0 | — |
case-02 | fail→fail | 19,635 | 5,809 | -70% | 1 | 1 | 0% | 4,319 | 1,387 | -68% | 0 | 0 | — |
case-03 | fail→fail | 14,771 | 8,754 | -41% | 1 | 1 | 0% | 3,402 | 1,486 | -56% | 0 | 0 | — |
case-04 | fail→pass | 9,604 | 2,462 | -74% | 1 | 1 | 0% | 1,952 | 1,504 | -23% | 0 | 0 | — |
case-05 | fail→pass | 8,475 | 2,975 | -65% | 1 | 1 | 0% | 1,648 | 1,587 | -4% | 0 | 0 | — |
case-06 | fail→pass | 7,177 | 2,227 | -69% | 1 | 1 | 0% | 1,291 | 1,373 | +6% | 0 | 0 | — |
case-07 | fail→pass | 10,779 | 1,551 | -86% | 1 | 1 | 0% | 1,892 | 1,286 | -32% | 0 | 0 | — |
case-08 | pass→pass | 8,450 | 1,304 | -85% | 1 | 1 | 0% | 1,574 | 1,226 | -22% | 0 | 0 | — |
case-09 | pass→pass | 6,148 | 1,553 | -75% | 1 | 1 | 0% | 1,031 | 1,238 | +20% | 0 | 0 | — |
case-10 | pass→fail | 8,825 | 2,497 | -72% | 1 | 1 | 0% | 1,593 | 1,235 | -22% | 0 | 0 | — |
case-11 | fail→fail | 15,104 | 1,653 | -89% | 1 | 1 | 0% | 2,391 | 1,252 | -48% | 0 | 0 | — |
case-12 | pass→fail | 8,252 | 1,636 | -80% | 1 | 1 | 0% | 1,391 | 1,172 | -16% | 0 | 0 | — |
case-13 | fail→pass | 12,892 | 1,579 | -88% | 1 | 1 | 0% | 2,066 | 1,210 | -41% | 0 | 0 | — |
case-14 | pass→pass | 12,003 | 3,070 | -74% | 1 | 1 | 0% | 1,994 | 1,453 | -27% | 0 | 0 | — |
case-15 | pass→pass | 4,125 | 1,328 | -68% | 1 | 1 | 0% | 682 | 1,196 | +75% | 0 | 0 | — |
case-16 | fail→pass | 5,609 | 1,711 | -69% | 1 | 1 | 0% | 904 | 1,296 | +43% | 0 | 0 | — |
case-17 | pass→pass | 6,243 | 1,364 | -78% | 1 | 1 | 0% | 1,187 | 1,235 | +4% | 0 | 0 | — |
case-19 | pass→pass | 7,009 | 7,965 | +14% | 1 | 1 | 0% | 1,315 | 2,486 | +89% | 0 | 0 | — |
case-20 | pass→pass | 5,268 | 10,147 | +93% | 1 | 1 | 0% | 871 | 2,560 | +194% | 0 | 0 | — |
case-21 | pass→pass | 11,940 | 5,744 | -52% | 1 | 1 | 0% | 2,245 | 2,102 | -6% | 0 | 0 | — |
case-22 | fail→pass | 9,773 | 2,888 | -70% | 1 | 1 | 0% | 1,915 | 1,578 | -18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 19 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.