arrow_back Back to Works
In-house Development / Automation

Posutte - Automated Social Ad Generation & Posting for Local Businesses

A store owner sends a photo, and the system automatically generates an ad image and caption, then schedules the post to Instagram. Uses OCR + VLM fact-checking, with security CI built in. An in-house product.

Duration

In-house product

Team

1-2 people

Engineered With PythonFastAPIPlaywrightStripe

01 // OVERVIEW

Project Overview

An in-house social media ad automation service for restaurants and retail stores. Store owners simply send a photo, and within seconds gpt-image-2 generates an ad image with a caption, which is then automatically scheduled and posted to Instagram. Generated images undergo fact-checking by cross-referencing OCR-extracted text with the original photo via a VLM, preventing posts with incorrect information. The repository has CI built in with gitleaks, semgrep, and trivy.

02 // KEY FEATURES

Key Features

photo_camera

Photo to ad image and caption generation

Generates an ad-ready image from a photo submitted by the store owner using gpt-image-2, along with a matching caption. Designed to generate copy tailored to the store based on information from the store_brief (store profile sheet).

fact_check

Fact-checking via OCR and VLM

Built-in pipeline that reads the text in the generated image via OCR and cross-references it against the original photo using a VLM to verify factual accuracy. This prevents posts where prices or product names are misrepresented.

verified

Built-in security CI

CI (GitHub Actions) built into the repository with gitleaks (secret leak detection), semgrep (vulnerable code pattern detection), and trivy (dependency vulnerability scanning). Complies with security-kit standards, with ASVS L1 check records also kept in docs/security/.

03 // TECHNICAL DEEP-DIVE

Technical Highlights

Solution

Limiting the store owner's task to just sending a photo

All work - writing ad copy, scheduling posting times, and selecting hashtags - is handled by the system, so the UX is designed so the store owner only needs to send a photo. Scheduled Instagram posts are processed by worker.py via a cron job every 5 minutes.

04 // IMPACT & RESULTS

Results

Tens of seconds

From photo received to ad image generated

Fact-checked

OCR + VLM automatically verifies generated content

Built-in CI

Security checks built into the repository

Ready to Build?

Want to build something similar? Tell us about your project.

Free Consultation