Hey Indie Hackers,
I’ve been increasingly frustrated with the state of LinkedIn. It feels like every second post starts with "In today's fast-paced world" or uses the word "delve." LLMs are great, but default prompting destroys personal branding because it doesn't know your specific syntax, formatting quirks, or vocabulary.
I didn't want to build just another OpenAI wrapper, so I engineered a different approach called Aaptics.
Instead of asking users to write complex prompts to "sound like themselves," I built a "DNA Lab."
Here is how the architecture works:
The Extraction Engine (Voice DNA):
Users paste 3-4 of their past, human-written posts. The system analyzes the text to extract specific "DNA Clues"—vocabulary frequency, sentence length variation, and formatting styles. It creates a unique profile in the database. When they generate a new post from a raw thought, the AI strictly adheres to this DNA profile.
The Tech Stack & Security:
Database: Supabase. I implemented strict Row Level Security (RLS) so users cannot manipulate their API credits or bypass the paywall via the frontend console.
Visuals: I skipped DALL-E 3 because it often ruins text rendering on images. I integrated the Recraft v3 API specifically to generate professional, text-perfect visual concepts alongside the posts.
The UI takes the user's local time and converts it to a strict UTC ISO string before storing it.
I have a custom Python worker running 24/7. It checks the DB every minute: if current_utc >= scheduled_utc, it fires the payload directly to the LinkedIn API.
I just launched the V1 and am trying to get my first 10 solid beta testers to break the system and roast the UI.
Questions for the community:
For those who built scheduling tools, is a continuous Python worker loop scalable as user count grows, or should I migrate to a message broker queue (like Redis/Celery) right now?
If you are active on LinkedIn, do you feel authenticity is still a priority, or has the market accepted robotic AI text?
Would love to hear your thoughts, and if anyone wants to test the DNA extraction, let me know!
Explore More - aaptics.in
The DNA extraction approach is clever. You're essentially encoding the author's style into a structured profile and injecting it as a separate context block in the prompt.
One thing that helped on the prompt architecture side: keeping
response_styleas its own typed block rather than embedding it in the main instruction. When style lives separately, you can swap it per platform or audience without touching the content objective. I built flompt around this idea (github.com/Nyrok/flompt), 12 typed blocks including a dedicated response_style block. Your DNA profile fits naturally as that block.Spot on. Separating the "what to say" from the "how to say it" was the biggest breakthrough for the Aaptics engine.
When you embed the style instructions directly into the main content prompt, the LLM inevitably gets confused and slowly reverts back to its default "corporate robot" tone. By keeping the Voice DNA strictly isolated as an immutable context block, the raw user thought never overrides the core formatting and vocabulary rules.
Just checked out flompt—that typed block architecture is incredibly clean. Treating prompts as structured objects rather than massive, messy strings is 100% the right direction for scaling AI apps.
Curious—when using the 'flompt' architecture, how do you handle dynamic token limits or context window overflow if the response_style (or DNA) block gets too heavy?