Market-intelligence startup, co-founder
AI Content Engine with a Human Approval Gate
Turns a stream of public market chatter into original, compliance-checked stories with branded charts. Nothing reaches an audience until a human approves it in Microsoft Teams, and every approval is priced into the performance record automatically.
- Headline number
- 0 posts without a human approval
- Role
- Architected and built
- Category
- AI Agents & Runtimes
- Updated
Architecture
- Public social feeds
- Pollerevery 6 min
- LLM rewritehouse voice, compliance guardsChart renderer
- Teams approval card
- Allowlisted approver
- PublisherX, DiscordPerformance trackerlive price stamp
Key takeaways
- Claude rewrites each candidate into house voice with hard guards on length, style, and compliance
- An Adaptive Card in Teams carries the draft and chart; only an allowlisted approver's click publishes
- Approval is event-driven and recorded. The click fires the publish and stamps the tracker at the live price.
- Seven market-calendar-aware schedulers, 26 test files, and no bot password anywhere
The situation
The venture is a publisher, which means an analyst must approve every public word. The plan also called for high-volume daily content from two founders. The only way both are true is a pipeline that does the drafting and a gate that makes publishing without approval structurally impossible.
What I built
One always-on Python container runs the Bot Framework handler and every scheduler as an asyncio task. A poller watches public social feeds every six minutes and writes candidates to the warehouse. Claude rewrites each one into an original story under the house-voice and compliance rules, with hard guards on length and style. A chart renderer adds a branded, watermarked image.
The draft and chart go to Microsoft Teams as an Adaptive Card. Approvers are allowlisted, and the Approve action fires an invoke that publishes to X and Discord, records who approved, and stamps the performance tracker with the live market price. The bot authenticates with a managed identity, sits behind its own edge endpoint and firewall, and carries an origin fence with tests. Source attribution never reaches members.
The outcome
Daily content ships with one analyst click per post, and the performance archive stays honest because the publish and the price stamp are the same event.
Stack
Related work
Same discipline, different system.
Need this built inside your organization?
One person, architecture to deployment. Tell me what is stuck and I will tell you where I would start.
