hebrew-ocr-forms

Installation
SKILL.md

Hebrew OCR Forms

Instructions

Step 0: Decide Whether This Needs OCR At All

Check for a text layer first. Most documents gov.il issues today are born-digital PDFs: the land-registry Nesach, a Form 106 exported from payroll software, Bituach Leumi certificates downloaded from the personal area. Run pdftotext -layout file.pdf - (poppler); if it prints real Hebrew, use that text and skip OCR entirely, because OCR can only lose characters that are already exact. Hebrew from some PDFs comes out in visual (reversed) order; re-order it before matching labels. Only image-only pages (scans, phone photos) go through Steps 2-3. The registry's own page states a Nesach is recognized as an original only in its digital form, not when printed, so ask for the PDF instead of re-scanning a printout.

If you can read images yourself (a vision-capable agent), you may read a page directly instead of installing Tesseract, but still run the deterministic checks from Step 6 (ID check digit, owner-share sum) on what you read.

Privacy. These pages carry ID numbers, salaries, tax and benefit data, which is personal data under the Privacy Protection Law (Amendment 13 in force since 14 August 2025, with stronger enforcement powers). Default to local Tesseract. Before sending pages to a cloud OCR or LLM API:

  • confirm the data owner allows it, and never send Bituach Leumi disability or maternity letters (medical details) without their explicit consent;
  • remember the major cloud engines may process data outside Israel, which the transfer-abroad regulations (תקנות הגנת הפרטיות (העברת מידע אל מאגרי מידע שמחוץ לגבולות המדינה)) govern, and that an office keeping such scans is also subject to the data-security regulations (תקנות הגנת הפרטיות (אבטחת מידע));
  • mask ID numbers in any field you do not need, and delete uploaded pages and intermediate images when the job is done;
  • for law and accounting offices, client documents are also covered by professional confidentiality.

The output is an unofficial transcription. Every value the scripts emit is an OCR reading, not the issuing authority's record; the JSON carries a notice field, and the Nesach CSV ends with a notice row saying the same. Never present the CSV as the Nesach itself, and give no opinion on what an entry (a caution, an attachment, an order) means for a transaction.

Installs
27
GitHub Stars
25
First Seen
Mar 18, 2026