willhaben

Create and manage listings on Willhaben.at (Austrian marketplace). Use when the user wants to sell something, create a listing, or mentions Willhaben. Handles photo uploads, generates titles/descriptions/prices, and posts via browser automation.

7 stars

Best use case

willhaben is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create and manage listings on Willhaben.at (Austrian marketplace). Use when the user wants to sell something, create a listing, or mentions Willhaben. Handles photo uploads, generates titles/descriptions/prices, and posts via browser automation.

Teams using willhaben should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/willhaben/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/benjaminorthner/willhaben/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/willhaben/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How willhaben Compares

Feature / AgentwillhabenStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create and manage listings on Willhaben.at (Austrian marketplace). Use when the user wants to sell something, create a listing, or mentions Willhaben. Handles photo uploads, generates titles/descriptions/prices, and posts via browser automation.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Willhaben Listing Creator

Create listings on Willhaben.at via browser automation.

## First-Time Setup

Check if `config/user-preferences.json` exists in the skill folder.
- If missing → run setup flow (see `references/SETUP.md`)
- If exists → read preferences and apply to all listings

User preferences include: location, shipping, description style, pricing strategy, disclaimers.

## Workflow

### 1. Receive Item Details
- User sends photos (via WhatsApp/chat)
- Optional: user provides details (condition, category, price range)

### 2. Market Research
Before suggesting a price, search Willhaben for similar/identical items:
- Search willhaben.at for the item
- Note price range of comparable listings
- Check sold prices if available
- Report findings to user:
  - **Neupreis** (new price)
  - **Marktpreis** (what similar items are listed for)
  - **Empfohlener Preis** (recommended selling price)

### 3. Generate Listing
- Analyze photos to understand the item
- Generate:
  - **Title**: Concise, searchable (German)
  - **Description**: SHORT and casual - real people don't write essays. 2-3 sentences max. Mention key facts only.
  - **Price**: Based on market research, suggest realistic price
  - **Package size**: Estimate weight category for shipping (3kg / 10kg / 31.5kg)
- Ask user:
  - Location (Bezirk) - if not in preferences
  - Any damage/issues to mention
  - If they want a more detailed description (default: no)
- Present draft for confirmation **including package size estimate**

### Listing Summary Template
Show the user something like:
```
📝 Listing Draft

Title: [title]
Description: [description]
Price: €XX VB
Location: [location]
Pickup: ✅ / Shipping: ✅

📦 Package: ~Xkg (selecting [size] package)
   → If wrong, let me know!

Photos: X attached

Ready to post?
```

If package weight is unclear (e.g., unusual item), **ask the user** rather than guessing wrong.

### 4. Post to Willhaben
See detailed browser automation steps below.

## Description Style

**Default: Casual & short**
```
Blue Yeti USB Mikrofon, schwarz. Funktioniert einwandfrei, inkl. Kabel und Standfuß. Privatverkauf, keine Garantie/Rücknahme.
```

**NOT like this (too AI/formal):**
```
Zum Verkauf steht ein hochwertiges Blue Yeti USB Kondensatormikrofon in der eleganten Blackout Edition. Dieses professionelle Mikrofon eignet sich perfekt für Podcasting, Streaming, Gaming oder Home-Office...
```

Only add detail if user explicitly asks for it.

## Language

All listings in **German** (Austrian market). Keep it natural, like a real person wrote it.

---

# Browser Automation Guide

Use `clawd` browser profile with saved Willhaben login.

## Step 1: Start Listing

1. Navigate to: `https://www.willhaben.at/iad/anzeigenaufgabe`
2. Click **"Kostenlose Anzeige aufgeben"** (link to Marktplatz free listing)

## Step 2: Fill Details Page

The form has these fields:

### Images
- **Upload method**: Use browser `upload` action with `inputRef` pointing to the "Bild auswählen" button
- Example: `browser upload inputRef=e12 paths=[...]` where e12 is the button ref
- Can upload multiple images at once via paths array
- After upload, verify images appear as thumbnails before proceeding

### Price (Verkaufspreis)
- Textbox, just enter the number (no € symbol needed)

### Title (Titel)
- Textbox with placeholder "z.B. Levi's 501 Jeans, schwarz, Größe 32"
- Keep concise and searchable

### Category (Kategorie)
- **Auto-suggests based on title** - a radio option appears
- **IMPORTANT**: Must click the category option to select it (even if it looks selected)
- If wrong category suggested, click "Andere Kategorie wählen"

### Condition (Zustand)
- Appears AFTER category is selected
- Options: Neu / Neuwertig / Gebraucht / Defekt
- Usually select "Gebraucht" for used items

### Description (Beschreibung)
- Rich text editor (contenteditable paragraph)
- Click on the paragraph area first, then type
- Keep it short!

### Contact & Location
- Pre-filled from account settings
- Shows name, email, address

## Step 3: Click "Weiter"

Proceeds to shipping options.

## Step 4: Shipping Page (Übergabe & Versand)

### Delivery Options
- **Selbstabholung**: Pickup (usually keep checked)
- **Versand**: Shipping (check if offering shipping)

### PayLivery (willhaben's shipping service)
If Versand is checked:

**Package Size (Versandgröße)** - Choose based on actual item weight!
- **Paket bis 3 kg** - Small items
- **Paket bis 10 kg** - Medium items (electronics, small appliances)
- **Paket bis 31,5 kg** - Heavy items (appliances with compressors, etc.)

Example weights:
- Ice cream maker with compressor: ~9kg → select 10kg
- Keyboard/mouse: ~1kg → select 3kg
- Monitor: ~5kg → select 10kg
- Books/games: ~0.5kg → select 3kg
- Laptop: ~2-3kg → select 3kg
- Kitchen appliance (mixer, blender): ~3-5kg → select 10kg

**⚠️ If weight is unclear**: This should have been confirmed with user in the listing summary step. If you reach this point unsure, go back and ask!

**Carrier**: Post or DPD (Post is default, fine for most)

**Sperrgut**: Check if item is oversized (>100×60×60cm) or non-rectangular

Buyer pays shipping (shown at bottom).

## Step 5: Click "Weiter"

Proceeds to upsells page.

## Step 6: Upsells Page (Zusatzprodukte)

Shows paid promotion options:
- Anzeige vorreihen (€14.99)
- Farblich hervorheben (€7.99)
- TOP Anzeige options (€21.99 - €89.99)

**Skip all** - just click **"Veröffentlichen"** to publish for free.

Shows "Gewählt: € 0" at bottom confirming no paid options.

## Step 7: Success!

Confirmation page shows:
- ✅ "Anzeige erfolgreich aufgegeben"
- Listing preview with image
- **willhaben-Code**: The listing ID (e.g., 1832624977)
- Note: "Die Veröffentlichung kann bis zu 24h dauern" (review period)

**Listing URL**: `https://www.willhaben.at/iad/object?adId={willhaben-code}`

---

# Troubleshooting

### Category not selecting
Even if the category appears, you must click on the radio/option area to actually select it. The validation error "Kategorie muss gewählt werden" means it wasn't clicked.

### Images not uploading
Use `inputRef` with the "Bild auswählen" button reference (e.g., `inputRef=e12`). Do NOT use `selector: input[type="file"]` - it doesn't work reliably on this site.

### Element refs going stale
Always take a fresh snapshot before interacting. Refs change after page updates.

### Login required
If not logged in, the profile should have saved credentials. If needed, navigate to login page or ask user to log in manually in the browser.

---

# Quick Reference

| Step | URL/Action |
|------|------------|
| Start | `https://www.willhaben.at/iad/anzeigenaufgabe` |
| Free listing | Click "Kostenlose Anzeige aufgeben" |
| Upload images | `upload` with `inputRef` pointing to "Bild auswählen" button |
| Next | "Weiter" button |
| Publish | "Veröffentlichen" button |
| View listing | `https://www.willhaben.at/iad/object?adId={ID}` |

Related Skills

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.

agora

7
from Demerzels-lab/elsamultiskillagent

Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.

surf-check

7
from Demerzels-lab/elsamultiskillagent

Surf forecast decision engine.

jinko-flight-search

7
from Demerzels-lab/elsamultiskillagent

Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.

mlx-whisper

7
from Demerzels-lab/elsamultiskillagent

Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).