← ClaudeAtlas

geulahlisted

Extract structured data from Hebrew handwritten/scanned PDF reports (especially Ministry of Education grant reports — דוחות ביצוע מענקי שכר לימוד), payslips, BDO accountant approvals, and merge into RTL Excel summaries. Triggers — "דוחות ביצוע", "מענק שכר לימוד", "תלוש שכר עברי", "סריקה בכתב יד", "אקסל מענקים", "OCR עברי", "geulah", "גאולה". Use when user has a folder of mixed Hebrew PDFs (signed/unsigned reports, scanned tables with handwritten teacher rows, payslip PDFs with digital text) and needs a single tabular summary.
hiyabh/claude-skills · ★ 0 · Data & Documents · score 75
Install: claude install-skill hiyabh/claude-skills
# Skill: גאולה — חילוץ נתונים מקבצי PDF עבריים מורכבים מטרת הסקיל: לעבד תיקייה של עשרות PDFs בעברית (סריקות עם כתב יד + תלושי שכר דיגיטליים + מכתבי אישור) ולהפיק קובץ Excel RTL מסודר. נבנה מתוך פרויקט "גאולה" (מאי 2026) שעיבד 36 PDFs וייצר טבלה של 128 מורים מ-4 מטפלים שונים. ## מתי להפעיל - המשתמש מבקש "תבנה אקסל מהקבצים בתיקייה" כשיש PDFs עבריים - מסמכי משרד החינוך (דוחות ביצוע מענק החזר שכר לימוד, אישורי תשלום) - תלושי שכר ממערכת מיכפל 2000 - אישורי רואי חשבון BDO לעמותות - כל קבוצת PDFs עברית עם נתונים פיננסיים מובנים שצריך לאחד ל��בלה ## אסטרטגיית עיבוד — 5 שלבים ### שלב 1: סקירה ראשונית ```bash ls -la "$DIR" | sort -k5 -n # מיון לפי גודל python -c " import fitz, os for f in sorted(os.listdir('.')): if not f.endswith('.pdf'): continue doc = fitz.open(f) chars = sum(len(p.get_text()) for p in doc) print(f'{len(doc):3}p {chars:6} chars {f}') " ``` - **chars > 1000** → טקסטואלי, חילוץ דרך `fitz` ישירות - **chars = 0** → סריקה, צריך OCR ויזואלי - **שמירה לJSON UTF-8** (ולא דרך bash stdout — זה משבר עברית) ### שלב 2: רינדור סריקות לתמונות מסמכים מ-scanner-mobile מגיעים לרוב מסובבים landscape או mirrored. הקוד הסטנדרטי: ```python import fitz, os from PIL import Image, ImageOps import io # Test rotations on first page to find correct orientation doc = fitz.open(file) page = doc[0] pix = page.get_pixmap(dpi=300) img = Image.open(io.BytesIO(pix.tobytes('png'))) # Try: orig, rotate 90/180/270, mirror, mirror+rotate # Use Read tool to inspect each variant