A LinkedIn presence that posts on schedule, in the owner's own voice
Posts keep going out on a schedule, written from what the bot knows about you, and you approve each one from your phone in a tap or let it run on its own.
- 5AI providers
- 3approval channels
- 2minutes
- 85% fewer calls
Anthropic, OpenAI, Google, xAI, and Perplexity models can each write a post, or draft side by side for one final edit.
In-app, email, and your own Telegram bot, all at once. Approve from any one and the rest stand down.
Between scheduler runs, now handled inside the database instead of an outside cron service.
LinkedIn stats calls cut from about 200 a day to about 28, with every post refreshed as often as before.
The problem
LinkedIn rewards showing up consistently, and most founders don't. The posts that do go out get written in a rush between meetings, or handed to someone who doesn't sound like the founder. Scheduling tools solve the calendar but not the writing. AI writers solve the writing but sound generic, because they know nothing about the person behind the account.
Salvus had the same problem with its own presence. The ask was a bot that knows who you are, writes like you, keeps to a schedule, and never posts anything you haven't seen unless you've told it to.
What we built
Networker is a web app, live at salvus-ai-networker.vercel.app. Onboarding is a short interview plus a research pass on your company and your field. What it learns goes into a persistent memory: facts, voice notes, audience, topics, wins, goals, and things to avoid, each weighted from 1 to 5 so the writer leans hardest on what matters most. You can edit that memory directly or talk to a memory chatbot, by typing or by voice, that adds and corrects entries for you.
From there it drafts on recurring schedules you set, and each schedule picks where its post comes from: your topics, recent news in your field, an upcoming event, a competitor angle, or a voice you follow. Add an event and it can prepare a post before it and a recap after. A News tab pulls current, dated stories from your niche, and a People tab keeps a list of voices you admire so a draft can borrow an angle while staying in your voice.
It writes with models from five providers. In debate mode, several draft the same post in parallel and one acts as the editor, keeping the strongest hook and the specifics and dropping the rest. You see every draft and can use any of them, or ask the editor to rewrite in place ("punchier," "add a call to action").
Posts go out as you or as a Company Page you manage, in one of two modes. Auto publishes at the scheduled time. Approval holds every post until you say yes, and the request lands in the in-app queue, your email, and your own Telegram bot at the same time.
How it works
It's a Next.js app on Vercel, with Supabase handling the database, sign-in, and image storage. Row level security scopes every table to its owner. LinkedIn tokens and Telegram bot tokens are encrypted at rest, and approval links and webhooks are signed, so a stray request can't approve a post.
The scheduler started on an outside cron service that fired about every ten minutes. It now runs inside the database every two minutes, with a heartbeat on the dashboard showing when it last ran and a Run now button for when you don't want to wait.
Drafting is built to fail over. If a provider errors, refuses, or cuts a post off mid-sentence, the draft moves to the next provider instead of saving junk to your queue. A filter also stops the memory from storing research dead ends ("couldn't find a public profile") as if they were facts about you, since those would quietly make every later draft worse.
Deleting a post in the app deletes it on LinkedIn, and a regular check marks anything you removed on LinkedIn as removed in the app, so the two never disagree.
The result
Salvus runs its own LinkedIn presence through Networker. By late September 2026 it was tracking performance on 205 Salvus AI Company Page posts from the previous 120 days.
That tracking needed its own fix. LinkedIn caps how many stats calls one app and member can make in a day, and the refresh was spending about 200 of them. It now runs one batched sweep every three hours, caches the page totals, and backs off completely when LinkedIn throttles it, until the daily reset. That's about 28 calls a day, roughly 85 percent fewer, with every post refreshed as often as before. A throttled pull also no longer wipes numbers that were already saved.
It's the same pattern we follow on client builds: the clever part (the voice, the debate between models) only pays off if the plumbing under it keeps working when nobody is watching.
Your turn
Same problem? Different industry?
We work with one client per vertical at a time. If your shape matches one of our dossiers, we’ll tell you straight.