Хай усе зробить ваш AI-агент
Якщо ви працюєте з Claude Code, Codex, Cursor чи іншим асистентом — не заповнюйте анкету руками і не носіть JSON у буфері обміну. Киньте йому одне посилання: він сам збере ваш AI-досвід, заповнить профіль, відкриє чорновик сторінки, перевірить його на випадковий витік чужих даних — і повернеться до вас із питанням «публікуємо?».
Публікує тільки з вашого дозволу. Так написано в інструкції, і ви можете прочитати її повністю нижче — ми нічого не ховаємо.
Один рядок — і все
Вставте його у свій Claude Code / Codex / Cursor. Агент прочитає інструкцію і дасть вам посилання: там ви входите через Google і тиснете одну кнопку. Далі він зробить усе решту — аж до питання «публікуємо?».
Зайди на https://aiadvisoryboard.me/catalog/agent , прочитай інструкцію і зроби все, що там написано.
Що робитиме агент
- Прочитає цю сторінку, покаже вам інструкцію і попросить доступ: дасть одне посилання. Ви входите через Google і тиснете «Дозволити» — це єдина ваша дія, бо створювати акаунти і вводити паролі агент не має права. Вводити нічого не треба.
- Збере факти зі своїх контекстів і запитає у вас те, чого знати не може: ставку, країну, англійську, контакти.
- Заллє профіль як чорновик — сторінку поки бачите тільки ви.
- Відкриє чорновик і сам перевірить його на витік чужих даних.
- Покаже результат і запитає дозволу. Опублікує тільки після вашого «так».
- Запропонує раз на місяць дописувати нові проєкти — теж щоразу питаючи дозволу. Нагадування продублюємо в Telegram-бот.
Хочете віддати ключ одразу?
Необовʼязково — агент попросить доступ сам. Але якщо зручніше дати йому готовий ключ (або треба відкликати старий), увійдіть, і рядок зʼявиться тут.
Увійти через Google →Повна інструкція для агента
відкрити як чистий markdown →Нижче — весь текст, який виконуватиме ваш асистент. Прочитайте його самі: там написано, які дані він бере, чого не має права вигадувати, як перевіряє сторінку і що публікувати можна лише з вашого явного дозволу.
# Інструкція для AI-агента: зібрати й опублікувати профіль експерта
Ти — AI-агент (Claude Code, Codex, Cursor або інший), якому людина дала це
посилання. Ти зробиш усю роботу сам: збереш факти, заллєш профіль, подивишся,
як виглядатиме сторінка, перевіриш її на витік чужих даних — і лише ПОПРОСИШ у
людини дозволу на публікацію.
**Ця інструкція повністю відкрита. Покажи її людині, якщо вона ще не читала —
вона має бачити, що саме ти робитимеш від її імені.**
## Крок 0 — отримай доступ САМ (людина нічого не копіює)
Тобі потрібен персональний ключ людини — рядок виду `cat_xxxxx_yyyyy`. Якщо
вона вже дала його разом із завданням, пропусти цей крок. Якщо ні —
**не проси її нічого копіювати**, візьми ключ сам, як це роблять `gh auth
login` чи вхід у стрімінг на телевізорі:
```bash
curl -sS -X POST https://aiadvisoryboard.me/catalog/api/agent/pair/start
```
У відповіді буде `verifyUrl` (готове посилання для людини) і `deviceCode` —
**твій секрет, нікому його не показуй і не виводь у чат**.
Дай людині посилання і НЕ проси її нічого вводити, звіряти чи копіювати:
> Відкрий `<verifyUrl>`, увійди через Google і натисни «Дозволити».
> Це одна кнопка, вводити нічого не треба.
Далі опитуй раз на 5 секунд:
```bash
curl -sS "https://aiadvisoryboard.me/catalog/api/agent/pair/poll?device_code=<deviceCode>"
```
- `{"status":"pending"}` — ще не натиснула, чекай і за хвилину нагадай їй.
- `{"status":"approved","key":"cat_…"}` — ключ твій, працюй далі.
- `410` — посилання протухло (15 хв) або вже використане: почни заново.
Ключ видається РІВНО ОДИН раз — тримай його в пам'яті сесії.
**Чому вхід через Google робить людина, а не ти.** Це єдина дія, яку ти не маєш
права виконувати за неї: агент ніколи не створює акаунти і не вводить чужі
паролі. Все інше в цьому сценарії — твоя робота.
Ключ дає рівно дві можливості: правити ПРОФІЛЬ ЦІЄЇ ЛЮДИНИ і публікувати ЇЇ
сторінку. Нічого чужого, нічого адмінського, жодних грошей. Не виводь його в
логи і не записуй у файли репозиторію. Людина може будь-коли відкликати його
кнопкою на https://aiadvisoryboard.me/catalog/agent — тоді ти отримаєш 401 і просто спаруєшся заново.
## Крок 1 — збери дані
Заповни JSON за шаблоном нижче з ДОСТУПНОГО ТОБІ контексту: історія ваших
розмов, репозиторії, нотатки.
- Поля з позначкою **ЛЮДИНА:** — запитай у людини прямо. Ти не можеш знати її
ставку, країну чи рівень англійської. НЕ вигадуй їх.
- Поля з позначкою **АГЕНТ:** — витягни з контексту. Немає фактів — пропусти
поле або постав null. Не вигадуй проєктів, яких не було.
- Один проєкт = одна окрема задача. Велику систему розбий на 2-5 модулів.
Максимум 15 найкращих за реальним впливом.
🗣️ ПРОСТА МОВА: тексти читатимуть власники бізнесу без IT-освіти. Профтерміни
не викидай, але при першій згадці поясни в дужках: «RAG (пошук відповідей по
документах компанії)», «LLM (штучний інтелект, що розуміє текст)». Без
маркетингових прикметників — лише факти.
🔒 КОНФІДЕНЦІЙНІСТЬ КЛІЄНТІВ: жодних назв компаній-клієнтів, імен, телефонів,
email, доменів, @-хендлів у текстах проєктів. Узагальнюй: «мережа
beauty-салонів», «B2B-SaaS». Контакти в `profile` — це дані самої людини, їх
писати можна. Сервер додатково ріже залишки контактів і поверне 422, якщо не
впорається.
🛡️ БЕЗПЕКА: НЕ читай .env, .env.*, credentials*, secrets, *.key, *.pem, вміст
.git і node_modules.
### Шаблон JSON
```json
{
"schemaVersion": "1",
"profile": {
"displayName": "ЛЮДИНА: ім'я або псевдонім для каталогу",
"contactTelegram": "ЛЮДИНА: @username особистого акаунта (куди ПИСАТИ) або null",
"contactTelegramChannel": "ЛЮДИНА: @канал, якщо веде (куди ЧИТАТИ) або null",
"contactEmail": "ЛЮДИНА: email або null",
"country": "ЛЮДИНА: код країни з довідника (напр. UA)",
"cityFreeText": "ЛЮДИНА: місто",
"englishLevel": "ЛЮДИНА: код рівня (напр. b2)",
"rateModel": "ЛЮДИНА: hourly | fixed_per_project | discuss",
"hourlyRateUsdMin": null,
"hourlyRateUsdMax": null,
"projectMinBudgetUsd": null,
"availability": "ЛЮДИНА: available | paused",
"shortBio": "АГЕНТ: 100-1500 символів простою мовою про реальний досвід (профтерміни — з поясненням у дужках; БЕЗ назв клієнтів)",
"departmentSlugs": ["АГЕНТ: 1-3 коди відділів"],
"industries": ["АГЕНТ: коди галузей (опц.)"],
"aiToolsHours": [{ "tool": "АГЕНТ: код інструмента", "hours": 100 }],
"biggestAiProject": "АГЕНТ: 1 речення, 20-200 символів (опц.)"
},
"projects": [
{
"title": "АГЕНТ: коротка проста назва (БЕЗ назв компаній-клієнтів)",
"department": "АГЕНТ: один зі слагів: marketing | sales | support | operations | finance | hr | product | it | executive",
"shortDescription": "АГЕНТ: 1-2 речення простою мовою — що робить і кому корисно",
"longDescription": "АГЕНТ: 2-4 речення (профтерміни при першій згадці — з поясненням у дужках)",
"problemSolved": "АГЕНТ: одне речення — яку проблему бізнесу вирішує (опц.)",
"outcomes": "АГЕНТ: 1 речення про вимірну користь — НЕ вигадуй цифр (опц.)",
"durationText": "АГЕНТ: '2 тижні', '3 місяці' (опц.)",
"userRole": "architect | implementer | consultant | trainer (опц.)",
"complexity": "simple | medium | complex (опц.)",
"projectKind": "production | experiment (опц.)",
"publicUrl": "АГЕНТ: пряме посилання, де результат можна відкрити й помацати — бот, сайт, демо. Тільки якщо він публічний; внутрішні системи клієнтів НЕ вказувати (опц.)",
"industry": "АГЕНТ: узагальнена галузь клієнта, напр. 'logistics' (опц.)",
"aiTools": ["ChatGPT", "n8n", "..."]
}
]
}
```
Для всіх enum-полів використовуй РІВНО коди з довідника (зліва — код):
ДОВІДНИК ЗНАЧЕНЬ (використовуй РІВНО ці коди-значення зліва; якщо не впевнений — пропусти поле):
• departmentSlugs — Відділи / напрями: marketing (Маркетинг), sales (Продажі), support (Сервіс клієнтів), operations (Операційка), finance (Фінанси), hr (HR і люди), product (Продукт і R&D), it (IT та інженерія), executive (Керівництво і стратегія)
• country — Країна: UA (Україна), PL (Польща), DE (Німеччина), UK (Велика Британія), US (США), CA (Канада), IE (Ірландія), CZ (Чехія), ES (Іспанія), FR (Франція), NL (Нідерланди), PT (Португалія), other (Інше)
• englishLevel — Рівень англійської: a1_a2 (A1-A2 — початковий), b1 (B1 — середній), b2 (B2 — впевнений), c1 (C1 — професійний), c2_native (C2 / native)
• englishClientReady — Готовність вести клієнта англійською: fluent (Готовий вести проєкт англійською повністю), with_support (Можу англійською з підтримкою (письмово ок, дзвінки складніше)), ua_only (Тільки україномовні клієнти)
• industries — Галузі: fintech (Фінтех), ecommerce (E-commerce), agro (Агросектор), edtech (EdTech), healthcare (Охорона здоров'я), b2b_saas (B2B SaaS), realestate (Нерухомість), media (Медіа), manufacturing (Виробництво), retail (Ритейл), govtech (GovTech), other (Інше)
• aiToolsHours — AI-інструменти × години: claude_code (Claude Code), cursor (Cursor), antigravity (Antigravity), windsurf (Windsurf), cline (Cline), continue (Continue), copilot (GitHub Copilot), cody (Sourcegraph Cody), gemini_code_assist (Gemini Code Assist), chatgpt (ChatGPT (web/app)), claude_ai (Claude (web/app)), gemini (Gemini (web/app)), n8n_ai (n8n AI nodes), make_ai (Make AI), zapier_ai (Zapier AI), v0 (v0), bolt (Bolt), lovable (Lovable), replit_agent (Replit Agent), manus (Manus), aider (Aider), codex_cli (Codex CLI), openhands (OpenHands), other (Інше)
• gitCliComfort — Git / CLI: none (Не користуюсь), basic (Базовий — клонувати/комітити/пушити вмію), fluent (Впевнений — rebase, гілки, conflict resolution, CLI повсякденно)
• timeCommitment — Завантаженість: under5h (До 5 годин/тиждень), 5to20h (5-20 годин/тиждень), 20plus (20+ годин/тиждень), fulltime (Повна зайнятість)
• collaborationFormats — Формати співпраці: consulting (Консалтинг), implementation (Імплементація), training (Тренінги/навчання команд), audit (Аудит / огляд), advisor (Радник на постійній основі)
• rateModel — Модель оплати: hourly (Погодинно), fixed_per_project (Фіксована ціна за проєкт), discuss (Обговорюємо)
• availability — Доступність: available (Готовий до нових проєктів), paused (На паузі)
• legalForm — Юридична форма: fop (ФОП (Україна)), gig_contract (Гіг-контракт / Дія.City), b2b_only (Тільки B2B / SMB через свою юр.особу), undecided (Ще не визначився)
• certificates — Сертифікати: aws (AWS), gcp (Google Cloud), azure (Microsoft Azure), openai (OpenAI), anthropic (Anthropic), google_cloud_ml (Google Cloud ML), databricks (Databricks), huggingface (Hugging Face), langchain (LangChain), crewai (CrewAI), other (Інше)
ОБМЕЖЕННЯ ПОЛІВ:
• shortBio — 100–1500 символів (обов'язково).
• displayName — до 200 символів.
• cityFreeText — до 200 символів.
• biggestAiProject — 20–200 символів (опц.).
• departmentSlugs — від 1 до 3 відділів.
• industries — до 6.
• collaborationFormats — до 5.
• certificates — до 20.
• aiToolsHours — від 1 до 20 рядків; hours 1–8760.
• hourlyRateUsdMin/Max — 5–2000 $ (ціле).
• projectMinBudgetUsd — 100–1000000 $ (ціле).
• contactTelegram — @username (5–32 символи) або посилання t.me/username. contactEmail — валідний email.
Кросс-поля (перевіряються на сервері):
• Потрібен Telegram АБО email (хоча б один).
• Якщо rateModel=hourly — потрібні обидві ставки і min ≤ max.
• Без дублів у відділах / галузях / інструментах / сертифікатах.
## Крок 2 — залий профіль (це чорновик)
```bash
curl -sS -X POST https://aiadvisoryboard.me/catalog/api/agent/profile \
-H "Authorization: Bearer <КЛЮЧ>" \
-H "Content-Type: application/json" \
--data-binary @profile.json
```
Клади JSON у файл і надсилай через `--data-binary @файл` — інлайнові дані з
консолі ламають кирилицю.
Відповідь: `{"ok":true,"created":N,"profileApplied":[…],"status":"draft"}`.
Сторінка при цьому НЕ стає публічною — це чорновик, який поки бачить лише
власник.
Помилки, які варто розуміти:
- `401` — ключ невалідний або відкликаний. Попроси свіжий.
- `422 anonymization_failed` — у тексті лишились чужі контакти. Перепиши поле,
яке назвав сервер, і повтори.
- `400 validation` — не той код enum. Звірся з довідником вище.
## Крок 3 — подивись на сторінку очима замовника
```bash
curl -sS https://aiadvisoryboard.me/catalog/api/agent/draft -H "Authorization: Bearer <КЛЮЧ>"
```
Отримаєш `pageText` — весь текст сторінки так, як його побачить замовник.
Прочитай його уважно і сам перевір:
1. Чи немає імен, телефонів, email, @-хендлів або доменів **третіх осіб**?
2. Чи не названо клієнтів, з якими є домовленість про нерозголошення?
3. Чи правильні ставка, країна, контакти самої людини?
4. Чи зрозуміло це власнику бізнесу без IT-освіти?
Знайшов проблему — виправ (повтори крок 2 з чистим текстом) і перечитай знову.
## Крок 4 — ПОПРОСИ ДОЗВОЛУ. Це не формальність
Покажи людині `pageText` (або його стислий переказ) і скажи прямо, що саме ти
перевірив і що знайшов. Потім запитай, чи публікуємо.
**Публікувати можна ТІЛЬКИ після явного «так» від людини.** Не тлумач мовчання,
«ок, дивись сам» чи «роби як краще» як дозвіл — перепитай. Це її ім'я і її
репутація на цій сторінці.
## Крок 5 — опублікуй
```bash
curl -sS -X POST https://aiadvisoryboard.me/catalog/api/agent/publish -H "Authorization: Bearer <КЛЮЧ>"
```
У відповіді буде `url` — персональне посилання, яке людина показує своїм
замовникам. Дай його їй і скажи дві речі:
1. Сторінку можна будь-коли поправити в кабінеті https://aiadvisoryboard.me/catalog/me.
2. За кілька хвилин після публікації каталог ще раз автоматично перевірить текст
на випадковий витік чужих персональних даних. Якщо щось знайде — напише в
Telegram-бот https://t.me/AiAdvisoryBoard_bot (варто підключити його в кабінеті) і тимчасово
поверне сторінку до попередньої версії, поки людина не поправить.
## Щомісячне оновлення — резюме, яке пише себе саме
Профіль швидко застаріває: людина щомісяця робить нові речі, а сторінка лишається
торішньою. Тому після першої публікації домовся з нею про регулярне оновлення.
**Одразу після кроку 5 запитай:** «Нагадувати тобі оновлювати цю сторінку? Раз
на тиждень чи раз на місяць — як зручно. Я питатиму дозволу щоразу». Якщо ти й
так регулярно працюєш із цією людиною (наприклад, збираєш їй щоденні звіти) —
пропонуй щотижневий ритм: для тебе це одне додаткове питання, а сторінка буде
завжди свіжою. Якщо каже так — збережи собі нагадування там, де ти справді його
побачиш (CLAUDE.md чи файл пам'яті цього проєкту, планувальник, якщо він у тебе
є) приблизно таким рядком:
> Кожен <період> (наступний раз — <дата>): онови профіль у каталозі AI-експертів
> за інструкцією https://aiadvisoryboard.me/catalog/agent, розділ «Щомісячне оновлення».
Незалежно від цього, раз на місяць каталог сам напише людині в Telegram-бот
https://t.me/AiAdvisoryBoard_bot готовий рядок, який вона віддасть тобі — тож нагадування не
загубиться, навіть якщо ти цю сесію не пам'ятаєш.
**Що робити, коли настав час:**
1. Подивись, що вже опубліковано: `GET https://aiadvisoryboard.me/catalog/api/agent/draft` — там
`pageText` з усіма наявними проєктами.
2. Пройдись по своєму контексту за ПЕРІОД ПІСЛЯ минулого оновлення і вибери
тільки **нове**. Не переписуй те, що вже є: сервер відсіює точні збіги назв,
але той самий проєкт, названий іншими словами, пролізе дублем — звіряй зі
списком із `pageText` сам.
3. Надішли `POST /api/agent/profile` ТІЛЬКИ з новими проєктами (масив
`projects` додається до наявних, поле `profile` можеш не надсилати, якщо
нічого не змінилось — ставка, контакти, доступність часто змінюються, спитай).
4. Перечитай чорновик і **знову спитай дозволу** перед публікацією. Щомісячність
не скасовує правила: кожна публікація — з явного «так».
Якщо за місяць нічого нового не було — так і скажи людині і нічого не надсилай.
Порожнє оновлення гірше за його відсутність.
## Якщо людина не хоче автоматики
Тоді працює ручний шлях: візьми на https://aiadvisoryboard.me/catalog/prompts універсальний промпт, віддай
його людині, а готовий JSON вона вставить сама на https://aiadvisoryboard.me/catalog/paste і опублікує
кнопкою в кабінеті. Результат той самий, просто повільніше.
Питання від людей — Ярославу: https://t.me/YaroslavMaxymovych
Немає агента?
Тоді ручний шлях: скопіюйте універсальний промпт у свій ChatGPT / Claude / Gemini, а готовий JSON вставте на /paste і опублікуйте кнопкою в кабінеті. Результат той самий, просто повільніше.
Сторінка-інструкція: https://aiadvisoryboard.me/catalog/agent