סקיל ל-Claude Code ול-Codex שמכין מודעת יד שנייה מלאה, מנקה את תמונת המוצר, מנסח שתי גרסאות אנושיות ומכין טיוטות בקבוצות פייסבוק. הסקיל עוצר לפני הפרסום הסופי.
גיא כהן יצר את הסקיל. גיא מייעץ ומפתח פתרונות AI בישראל.
- אוסף מותג, מידה, מצב, מחיר, אזור איסוף ותיאור חופשי.
- מנסח שתי גרסאות בעברית בלי להמציא עובדות.
- מנקה את רקע התמונה ויוצר תמונת קטלוג באמצעות Gemini.
- מחפש קבוצות מכירה רלוונטיות שהמשתמש כבר חבר בהן.
- מזין את הטקסט והתמונה בתיבת הפוסט.
- עוצר לפני הלחיצה על "פרסם" ומחייב בדיקה אנושית.
הסקיל לא לוחץ על "פרסם". המשתמש בודק כל טיוטה ולוחץ בעצמו. הסקיל לא שולח הודעות, לא מתקשר למפרסמים ולא שומר סיסמאות או עוגיות. הוא מתחבר ל-Chrome פתוח דרך CDP ומשתמש בחיבור הקיים של המשתמש.
npx skills add guycoful/secondhand-listing -g -a claude-code -yאחרי ההתקנה פותחים שיחה חדשה ומפעילים:
/secondhand-listing
npx skills add guycoful/secondhand-listing -g -a codex -yאחרי ההתקנה פותחים משימה חדשה ומפעילים:
$secondhand-listing
npx skills add guycoful/secondhand-listing -g --all- Python 3
- Chrome
- חשבון Facebook מחובר ב-Chrome
- מפתח Gemini API עבור ניסוח ועיבוד תמונה
אפשר לעבוד בלי מפתח Gemini אם מכינים את הטקסט והתמונה מראש ומשתמשים במצב Keyless.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtGEMINI_API_KEY=your_key_hereאסור להעלות את .env, את .env.secrets או מפתח אמיתי ל-GitHub.
סוגרים את כל חלונות Chrome ופותחים אותו עם פורט ניפוי שגיאות:
& "$env:ProgramFiles\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222python scripts/generate_listing.pyאפשר גם להעביר את כל הפרטים בפרמטרים:
python scripts/generate_listing.py `
--brand "IKEA" `
--size "120x80" `
--condition "מצב טוב" `
--price "250" `
--location "רמת גן" `
--description "איסוף בלבד"python scripts/generate_image.py product.jpg -o catalog.jpgהסקריפט שולח ל-Gemini את הפרומפט הקבוע הבא:
תשנה את תמונת המוצר לתמונת קטלוג מקצועית בסגנון אמזון. דרישות: רקע לבן נקי (#FFFFFF) · תאורת סטודיו רכה ומפוזרת משני הצדדים עם צל עדין וטבעי מתחת למוצר · המוצר ממורכז ותופס 85% מהפריים · זווית 3/4 שמראה עומק · חדות מלאה בלי טשטוש · איכות קטלוג מסחרי פוטוריאליסטי · מראה נקי ומינימליסטי · שמירה על הצבעים המקוריים · סגנון מאקרו · מראה פרימיום מלוטש · 32k UHD · תשמור על אותו מוצר בדיוק עם אותם צבעים ופרטים ותשדרג רק רקע, תאורה וקומפוזיציה.
python scripts/facebook_post.py --text-file listing_draft.txt --image catalog.jpgבמצב Keyless מעבירים טקסט מוכן ותמונה מוכנה:
python scripts/facebook_post.py --text "נוסח המודעה" --image product.jpg| פרמטר | תפקיד |
|---|---|
--brand |
מותג או סוג הפריט |
--size |
מידה או מידות |
--condition |
מצב הפריט |
--price |
מחיר מבוקש בשקלים |
--location |
עיר או אזור איסוף |
--description |
פרטים נוספים |
| פרמטר | תפקיד |
|---|---|
image |
נתיב לתמונת המקור, פרמטר חובה |
-o, --output |
נתיב לתמונה המעובדת, ברירת המחדל היא catalog.jpg |
| פרמטר | תפקיד |
|---|---|
--text |
נוסח מודעה ישיר |
--text-file |
נתיב לקובץ טקסט |
--image |
נתיב לתמונה |
--cdp |
פורט Chrome CDP, ברירת המחדל היא 9222 |
--profile |
שם תיקיית פרופיל Chrome כאשר לא משתמשים ב-CDP |
secondhand-listing/
├── SKILL.md
├── AGENTS.md
├── agents/
│ └── openai.yaml
├── scripts/
│ ├── generate_listing.py
│ ├── generate_image.py
│ └── facebook_post.py
├── requirements.txt
├── .env.example
├── .gitignore
├── README.md
└── LICENSE
- מבנה Facebook משתנה מעת לעת. אם הסקריפט לא מוצא כפתור או תיבה, מכינים את הטיוטה ידנית.
- מכבדים את כללי הקבוצה ואת תנאי השימוש של Facebook.
- לא מפרסמים את אותה מודעה בקצב שמפעיל מנגנוני חסימה. הסקריפט ממתין 30-60 שניות בין קבוצות.
- בודקים שהמחיר, המצב, המידה ואזור האיסוף נכונים לפני הפרסום.
MIT. ראו את LICENSE.