{"id":1111,"date":"2025-12-18T20:48:19","date_gmt":"2025-12-18T20:48:19","guid":{"rendered":"https:\/\/ozhershco.dev\/?post_type=project&#038;p=1111"},"modified":"2026-01-07T12:13:39","modified_gmt":"2026-01-07T12:13:39","slug":"invoice-generator","status":"publish","type":"project","link":"https:\/\/ozhershco.dev\/he\/project\/invoice-generator\/","title":{"rendered":"Invoice Generator"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><\/p>","protected":false},"featured_media":1466,"template":"","class_list":["post-1111","project","type-project","status-publish","has-post-thumbnail","hentry"],"acf":{"created_at":"20210401","project_name":"Invoice Generator","project_tagline":"Ongoing development support for a product team, focused on backend tooling and automation.","project_excerpt":"Provided monthly development support for Seegnal, working alongside the internal team to build backend tools, automation workflows, and supporting infrastructure without adding full-time headcount.","project_type":"Development Support","view_project_url":"https:\/\/ozhershco.dev\/projects\/invoice-generator","card_thumbnail":1466,"role_card":"Development support (retainer)","solution_card":"Worked as an extension of the development team, delivering backend tools, automation features, and internal utilities as needed.","card_meta":"Development support \u00b7 Backend \u00b7 Private code","code_visibility":false,"repo_url":"","demo_visibility":true,"demo_url":"https:\/\/inge-demo.ozhershco.dev?returnUrl=\"https:\/\/ozhershco.dev\/project\/invoice-generator\/\"","privacy_code_text":"None","privacy_repo_text":"None","privacy_live_demo_text":"Available","private_code_note":"This demo includes a representation of the tool created. Client specific work is private due to ownership and confidentiality.","problem_page":"<p data-start=\"2287\" data-end=\"2444\">Seegnal needed additional development capacity to support side projects, internal tooling, and backend automation without hiring another full-time developer.<\/p>\r\n<p data-start=\"2446\" data-end=\"2600\">The internal team was focused on core product development, leaving limited time for experimental features, tooling, and infrastructure-level improvements.<\/p>","solution_page":"<p data-start=\"2642\" data-end=\"2764\">I joined Seegnal on a monthly retainer, working closely with the existing development team as a flexible support resource.<\/p>\r\n<p data-start=\"2766\" data-end=\"2954\">My role focused on backend-heavy tasks such as automation services, document generation workflows, and technical experiments that supported the product without disrupting the main roadmap.<\/p>\r\n<p data-start=\"2956\" data-end=\"3026\">This setup allowed Seegnal to move faster while keeping the team lean.<\/p>","solution_bullets":"\u2022 Monthly development support without long-term hiring<br data-start=\"3136\" data-end=\"3139\" \/>\u2022 Backend services and automation tooling<br data-start=\"3180\" data-end=\"3183\" \/>\u2022 PDF and image generation via headless browser workflows<br data-start=\"3240\" data-end=\"3243\" \/>\u2022 Close collaboration with the internal engineering team<br data-start=\"3299\" data-end=\"3302\" \/>\u2022 Flexible scope adapting to changing priorities","outcome_page":"<p data-start=\"3392\" data-end=\"3492\">The retainer-based setup provided Seegnal with reliable engineering support over a six-month period.<\/p>\r\n<p data-start=\"3494\" data-end=\"3661\">Key tools and backend workflows were delivered incrementally, reducing technical bottlenecks and enabling the core team to stay focused on primary product development.<\/p>\r\n<p data-start=\"3663\" data-end=\"3770\">The engagement demonstrated how development support can be an effective alternative to expanding headcount.<\/p>","key_screens_title":"Supporting Systems & Workflows","key_screens_subtitle":"Examples of tooling and workflows developed during the support period.","screen_1_image_project":1113,"screen_1_title_project":"Document Generation Flow","screen_2_image_project":1114,"screen_2_title_project":"Server-Side Architecture ","screen_3_image_project":1466,"screen_3_title_project":"Client-Side Example","screen_4_image_project":"","screen_4_title_project":"","tech_stack":"Node.js \u00b7 JavaScript \u00b7 Puppeteer \u00b7 HTML \u00b7 CSS","infrastructure":"<strong>(1)<\/strong> Backend APIs\r\n<strong>(2)<\/strong> Headless Chrome automation\r\n<strong>(3)<\/strong> Server-side rendering workflows\r\n<strong>(4)<\/strong> Internal services (private infrastructure)","project_tags":[15,14,13,17,16],"page_header_bg":"","page_header_screenshot":"","client_profile_image":"","client_company":"Company name","client_name":"Client name","paragraph_1":"Paragraph 1 text","content_image_2":"","content_image_1":"","paragraph_2":"Paragraph 2 text","client_quote":"\"This is a client quote\"","title":"Title text","introduction":"Introduction text"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Invoice Generator - OH Works<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ozhershco.dev\/he\/project\/invoice-generator\/\" \/>\n<meta property=\"og:locale\" content=\"he_IL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Invoice Generator - OH Works\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ozhershco.dev\/he\/project\/invoice-generator\/\" \/>\n<meta property=\"og:site_name\" content=\"OH Works\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/OHDevelopments\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-07T12:13:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1271\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u05d6\u05de\u05df \u05e7\u05e8\u05d9\u05d0\u05d4 \u05de\u05d5\u05e2\u05e8\u05da\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u05d3\u05e7\u05d41\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/\",\"url\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/\",\"name\":\"Invoice Generator - OH Works\",\"isPartOf\":{\"@id\":\"https:\/\/ozhershco.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png\",\"datePublished\":\"2025-12-18T20:48:19+00:00\",\"dateModified\":\"2026-01-07T12:13:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/#breadcrumb\"},\"inLanguage\":\"he-IL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ozhershco.dev\/project\/invoice-generator\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"he-IL\",\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage\",\"url\":\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png\",\"contentUrl\":\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png\",\"width\":2560,\"height\":1271},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ozhershco.dev\/project\/invoice-generator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ozhershco.dev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Invoice Generator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ozhershco.dev\/#website\",\"url\":\"https:\/\/ozhershco.dev\/\",\"name\":\"OH Works\",\"description\":\"Turning ideas into working software.\",\"publisher\":{\"@id\":\"https:\/\/ozhershco.dev\/#\/schema\/person\/fba6a1951452e2fefe68c87ebeb122d1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ozhershco.dev\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"he-IL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/ozhershco.dev\/#\/schema\/person\/fba6a1951452e2fefe68c87ebeb122d1\",\"name\":\"Oz Hershco\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"he-IL\",\"@id\":\"https:\/\/ozhershco.dev\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2023\/06\/LogoTransparent.png\",\"contentUrl\":\"https:\/\/ozhershco.dev\/wp-content\/uploads\/2023\/06\/LogoTransparent.png\",\"width\":1024,\"height\":1024,\"caption\":\"Oz Hershco\"},\"logo\":{\"@id\":\"https:\/\/ozhershco.dev\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/ozhershco.dev\",\"https:\/\/www.facebook.com\/OHDevelopments\",\"https:\/\/www.linkedin.com\/in\/ozhershco\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Invoice Generator - OH Works","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ozhershco.dev\/he\/project\/invoice-generator\/","og_locale":"he_IL","og_type":"article","og_title":"Invoice Generator - OH Works","og_url":"https:\/\/ozhershco.dev\/he\/project\/invoice-generator\/","og_site_name":"OH Works","article_publisher":"https:\/\/www.facebook.com\/OHDevelopments","article_modified_time":"2026-01-07T12:13:39+00:00","og_image":[{"width":2560,"height":1271,"url":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\u05d6\u05de\u05df \u05e7\u05e8\u05d9\u05d0\u05d4 \u05de\u05d5\u05e2\u05e8\u05da":"\u05d3\u05e7\u05d41"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/","url":"https:\/\/ozhershco.dev\/project\/invoice-generator\/","name":"Invoice Generator - OH Works","isPartOf":{"@id":"https:\/\/ozhershco.dev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage"},"image":{"@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage"},"thumbnailUrl":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png","datePublished":"2025-12-18T20:48:19+00:00","dateModified":"2026-01-07T12:13:39+00:00","breadcrumb":{"@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/#breadcrumb"},"inLanguage":"he-IL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ozhershco.dev\/project\/invoice-generator\/"]}]},{"@type":"ImageObject","inLanguage":"he-IL","@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/#primaryimage","url":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png","contentUrl":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2025\/12\/InvoiceGenerator1.png","width":2560,"height":1271},{"@type":"BreadcrumbList","@id":"https:\/\/ozhershco.dev\/project\/invoice-generator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ozhershco.dev\/"},{"@type":"ListItem","position":2,"name":"Invoice Generator"}]},{"@type":"WebSite","@id":"https:\/\/ozhershco.dev\/#website","url":"https:\/\/ozhershco.dev\/","name":"OH Works","description":"Turning ideas into working software.","publisher":{"@id":"https:\/\/ozhershco.dev\/#\/schema\/person\/fba6a1951452e2fefe68c87ebeb122d1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ozhershco.dev\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"he-IL"},{"@type":["Person","Organization"],"@id":"https:\/\/ozhershco.dev\/#\/schema\/person\/fba6a1951452e2fefe68c87ebeb122d1","name":"\u05e2\u05d5\u05d6 \u05d4\u05e8\u05e9\u05e7\u05d5","image":{"@type":"ImageObject","inLanguage":"he-IL","@id":"https:\/\/ozhershco.dev\/#\/schema\/person\/image\/","url":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2023\/06\/LogoTransparent.png","contentUrl":"https:\/\/ozhershco.dev\/wp-content\/uploads\/2023\/06\/LogoTransparent.png","width":1024,"height":1024,"caption":"Oz Hershco"},"logo":{"@id":"https:\/\/ozhershco.dev\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/ozhershco.dev","https:\/\/www.facebook.com\/OHDevelopments","https:\/\/www.linkedin.com\/in\/ozhershco\/"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/project\/1111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/types\/project"}],"acf:term":[{"embeddable":true,"taxonomy":"category","href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/categories\/16"},{"embeddable":true,"taxonomy":"category","href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/categories\/17"},{"embeddable":true,"taxonomy":"category","href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/categories\/13"},{"embeddable":true,"taxonomy":"category","href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/categories\/14"},{"embeddable":true,"taxonomy":"category","href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/categories\/15"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/media\/1466"}],"wp:attachment":[{"href":"https:\/\/ozhershco.dev\/he\/wp-json\/wp\/v2\/media?parent=1111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}