ImmoScout24 Rental Application Workflow

> Generated: 2026-05-16T18:05Z

> Purpose: Restore pack for repeating the automated rental inquiry workflow

---

1. Credentials

• **File location**: `./secrets/password-immoscout` (relative to persistent-chat sandbox `/home/matrix-lite/workspace/persistent-chat/`)

• **Format**: Line 1 = email, Line 2 = password

• **Email**: `krylov@posteo.net`

• **Do NOT read/quote secret contents** unless explicitly asked; only check existence

• **Account type**: ImmoScout24 Plus member (unlocks Plus Insights, higher inbox priority)

---

2. Overall Workflow

Phase A — Login

1. Navigate to https://www.immobilienscout24.de/

2. Accept cookie consent (button: "Alle akzeptieren")

3. Click "Anmelden" link

4. On SSO page: enter email, click submit, wait for password field to appear

5. Enter password, click "Weiter"

6. Verify: homepage shows "angemeldet als Gleb Krylov"

Phase B — Find a Listing

• **Search**: Use homepage search box with city name (e.g., "Ismaning"), click Suchen

• **Direct expose**: `https://www.immobilienscout24.de/expose/{EXPOSE_ID}`

• **Key data fields**: price (Kaltmiete), size (m²), rooms (Zi.), available from (Bezugsfrei ab), landlord name, address

Phase C — Contact Form

1. On the expose page, click "Nachricht" button (sidebar or footer)

2. This opens a modal with **Kontaktanfrage** form

3. Verify the landlord name ("Anbieter:in" field — e.g., "Frau Simone Rau")

4. Fill the "Nachricht schreiben" textarea with the inquiry message

5. Verify other pre-filled fields (personal details) are correct

6. Expand the textarea height (e.g., el.style.height = '350px') for screenshot

7. Take a screenshot showing textarea + personal details + Abschicken button

Phase D — Approval Gate

• **Trust boundary rule**: User must approve before sending external messages

• Send screenshot to user via `pages.nvdll.org` or native Matrix image send

• Wait for explicit "send" approval

Phase E — Send

1. Click "Abschicken"

2. Handle CAPTCHA if shown (see Section 3)

3. Verify success: modal shows "Nachricht gesendet — Deine Nachricht ist auf dem Weg zu ..."

---

3. CAPTCHA Handling

• ImmoScout24 shows a **Sicherheitsabfrage** (security check) with a text-based captcha image

• **Vision MCP**: `matrix_lite_vision_vision_analyze_image` with 3 models (`kimi-k2.6`, `qwen3.6-plus`, `mimo-v2.5`) — all returned inadequate for the captcha tested

• **Workaround**: Screenshot the captcha image element and send to user via native `<matrix_lite_send_image>`

• User reads the characters and replies with the captcha text

• Enter the captcha text into the input field, click "Bestätigen"

• **Note**: The captcha may only be required once per session

Captcha screenshot technique

// Grab captcha image as a local file, then send via matrix_lite_send_image
const captchaImg = page.locator('img[alt*="captcha"]');
await captchaImg.screenshot({ path: 'captcha-element.png', type: 'png' });

---

4. Screenshot Best Practices

• **Viewport**: Default viewport size may be too small. Set viewport larger before screenshots:

```javascript

await page.setViewportSize({ width: 1280, height: 1800 });

```

• **Composition**: Scroll so message textarea (expanded to 350px+) is at top of viewport, with personal details and Abschicken button visible below

• **Alternative**: Use `fullPage: true` for full-page screenshots

• **Publishing**: Use `matrix-lite-pages publish-image` with `--flat` for clean URLs

• **Reference**: Successful screenshot example at `pages.nvdll.org/images/ismaning-scrolled/`

---

5. Message Template

Standard rental inquiry (German):

Sehr geehrte Frau/Herr {NAME},

meine Frau und ich interessieren uns sehr für Ihre {ZIMMER-TYP}-Wohnung in {STADT} und würden sie gerne besichtigen.

Wir sind ein ruhiges, zuverlässiges Paar, Nichtraucher, ohne Kinder und ohne Haustiere und könnten zum {DATUM} einziehen.

Ich bin promoviert und arbeite als Senior Engineer am Forschungszentrum Garching. Mein Arbeitsvertrag liegt vor; weitere Unterlagen reichen wir bei Interesse gerne nach.

Besichtigungstermine sind für uns kurzfristig möglich.

Mit freundlichen Grüßen
Gleb Krylov und Anastasia Nikiforova

**Key variables**: Name, apartment type, city, move-in date, viewing timeframe.

---

6. Pre-filled Personal Data (from ImmoScout24 profile)

| Field | Value |

|-------|-------|

| Anrede | Herr |

| Vorname | Gleb |

| Nachname | Krylov |

| E-Mail | krylov@posteo.net |

| Telefon | +49 1575 1332945 |

| Straße | Walther-Meißner-Straße |

| Hausnummer | 8 |

| PLZ | 85748 |

| Ort | Garching |

**Known bug**: When filling the message, use getByLabel('Nachricht schreiben') NOT getByPlaceholder('').last() — the latter can target the wrong field (Ort).

---

7. Known Failure Modes

1. **Step limits**: Model hits max steps mid-workflow. User wants limits raised.

2. **Field targeting bug**: getByPlaceholder('') can select wrong text input. Always use labeled selectors.

3. **Browser session lost**: Matrix-lite restart wipes the browser session. Must re-login.

4. **Permission issues**: File permissions on secrets can change. Check ./secrets/password-immoscout exists.

5. **Vision MCP inadequate**: Captcha reading may fail. Fall back to user relay.

6. **Search URL format**: ImmoScout24 search URLs can redirect to homepage. Use the homepage search box instead.

---

8. Key Listing Details (Last Applied)

• **Expose ID**: `167789871`

• **Title**: "Idyllische, möblierte 2-Zimmer-Wohnung mit Garten in Ismaning"

• **Address**: Sophienstraße, 85737 Ismaning

• **Landlord**: Frau Simone Rau (private)

• **Price**: 1.590 € cold / 1.860 € warm | 59 m² | 2 Zi. | EG

• **Available**: 15.6.2026

• **Viewings**: 22.-25. Mai

• **Application review**: Mo, 18.05.26

• **Published**: 16.05.2026

• **URL**: `https://www.immobilienscout24.de/expose/167789871`