Inspiration
Small operators do the work of a whole team: inbox, follow-ups, LinkedIn, YouTube. The tools they already pay for (Gmail, YouTube Studio, LinkedIn) do not draft in their voice, do not decide what actually needs them, and do not wait for a human before sending. We wanted one product that runs that daily work with AI, then stops for approval.
Automaticus is that product: AI agents for inbox and social, sold as a subscription, running in production at https://www.automaticus.us.
What it does
Inbox. Connect Gmail (and Outlook). Sync mail. Gemini classifies each message as Needs You, Routine, or Junk. It drafts a reply in the user’s writing voice, learned from sent mail. The user hits Approve & Send. Delete in Automaticus moves the Gmail copy to Trash only. We never call Gmail messages.delete.
Social. LinkedIn drafts from a topic, with Gemini Google Search grounding so posts are not invented facts. YouTube: connect, sync, generate a draft, upload after approval. “Delete on YouTube” opens YouTube Studio. Automaticus does not API-delete published videos.
Billing. Stripe subscriptions. Inbox from about $9/month; suites are higher.
Humans stay in the loop. The agents do not silently send mail or publish.
How we built it
- Frontend: Next.js, TypeScript, Tailwind CSS. Dashboard for inbox, social, billing, settings.
- Backend: Flask. Agents under
web/backend/app/agents(inbox, social). Scheduler for sync. - AI: Google Gemini.
gemini_service.pycalls GeminigenerateContentfor classification, drafts, vision tagging, LinkedIn/YouTube copy, Google Search grounding, and thumbnail images (gemini-2.5-flash/gemini-2.5-flash-image). - Google Cloud / Google APIs: Gemini API (AI Studio), Gmail API, YouTube Data API, Google OAuth 2.0.
- Data / auth / payments: Supabase (Postgres, auth, storage), Stripe.
- Hosting: Railway for the API; the app is live on automaticus.us.
Gmail scopes in production: openid, email, profile, gmail.readonly, gmail.send, gmail.modify. YouTube: youtube.readonly, youtube.upload.
Challenges
OAuth and trust. Restricted Gmail scopes need a real justification, a consent screen that matches the product, and delete behavior that matches gmail.modify (Trash, not permanent delete). YouTube write APIs are narrower than the UI people expect; playlist writes and API-delete are not in this build.
Classification quality. “Needs you” vs marketing is the whole product. Prompts, redaction, caching, and daily call limits keep Gemini cheap enough to run on every sync without dumping the mailbox into ads.
Approve-and-send. Drafting is easy. Sending only after a click, matching Gmail threads, and not losing the user’s voice took more work than the first model call.
Search without hallucination. LinkedIn posts that invent companies or numbers get people in trouble. Topic research now goes through Gemini with Google Search grounding; if search returns nothing, the model is told not to invent specifics.
What we learned
A small-business AI product is not a chatbot. It is sync, permissions, billing, and a human gate. Gemini is the reasoning layer. Gmail and YouTube are the systems of record. If the scopes, Trash behavior, or send path are wrong, the model quality does not matter.
We also learned to keep one model path. Splitting classification, drafts, vision, and thumbnails across vendors made the product harder to operate. One Gemini client is simpler to ship and simpler to explain.
What’s next
Keep Inbox as the paid wedge. Tighten Google verification. Add more of the operator’s day (calendar, follow-ups) behind the same approve-before-act rule.
Built With
- ai
- apscheduler
- flask
- gmail-api
- google-ai-studio
- google-cloud
- google-gemini
- next.js
- nextjs
- oauth
- postgresql
- python
- railway
- react
- saas
- stripe
- supabase
- tailwindcss
- typescript
- vercel
- youtube
Log in or sign up for Devpost to join the conversation.