Клиент — агентство зарубежной недвижимости. Объекты публиковались на 4 застройщикских сайтах; менеджеры вручную копировали в AmoCRM — 20–30 мин на объект, ошибки в цене и метражe. Задача: Python-парсер — обход catalog pages → извлечение параметров (цена, м², комнаты, район, фото URLs) → нормализация → create/update lead в AmoCRM по external_id. Расписание + diff «новый / изменилась цена». Реализация: • configurable spiders per developer site (selectors in YAML); • download images optional → S3, link in CRM; • normalize currency, area units, phone format; • AmoCRM API: duplicate check by external_id; • log: created / updated / skipped / error; • Telegram alert on parser failure or captcha; • polite crawling: delay, session, retry. Стек: Python 3.11, Scrapy или requests+BS4, PostgreSQL staging, AmoCRM API, S3, Docker cron. Приёмка: 100 objects sync, field accuracy vs manual audit. Итог: объект в CRM за минуты; менеджеры работают с лидами, не с копипастой. NDA: агентство не публикуется.