For freelance developers
AI meeting notes for freelance developers with multiple clients
TrackHeros is an AI notetaker for freelance developers who work with several clients at once. It joins your client meetings on Google Meet and Microsoft Teams, writes the summary, decisions, action items and minutes, and keeps every client sealed in its own workspace, so six accounts become one dashboard and nothing crosses over.
By Sami Kanafani · Updated 22 October 2026 · 9 min read
TrackHeros is an AI notetaker for freelancers who work with more than one client at a time. It joins your client meetings on Google Meet and Microsoft Teams as a visible participant, records and transcribes them, and writes the summary, the decisions, the action items and the formal minutes. Everything is filed under the client the meeting belongs to, in a workspace no other client's data can enter. This page is about what that looks like in freelance developer client meetings: six clients, six Google or Microsoft accounts, one dashboard.
Why are meeting notes for multiple clients so hard to keep straight?
Six clients means six Google or Microsoft accounts, six calendars and six sets of promises. Each client gave you an address on their domain, and each address has a calendar full of invitations that the other five cannot see. To find out what your Thursday looks like, you switch accounts five times. To find out what you said about the payments API three weeks ago, you open a transcript, if you kept one, and read it from the top.
Then there are the notes. A meeting tool that assumes one company and one workspace puts everything in one list. Client A's sprint review sits next to Client B's incident call, and it is on you to make sure neither one leaks into the other when you paste a summary into an email. You do that by hand, carefully, every time. One day you will do it wrong, and it will be the day it matters.
None of this is a discipline problem. It is a data model that does not match your week. Meeting notes for multiple clients have to start from the assumption that one person owns several unrelated calendars, and that those calendars must never be blended.
How does an AI notetaker for freelancers work with six accounts?
The four steps are the same as on the homepage. Here is what each one means when the accounts are on six different domains.
1. Connect your Google and Microsoft accounts
Connect every account you use for client work, Google or Microsoft 365 or Outlook, as many of each as you have, and assign each one to a client. That assignment is enforced in the database: an account belongs to exactly one client, so a meeting from it can never end up under two. Calendar sync uses push notifications (Google watch channels and Microsoft Graph subscriptions) that the app renews itself, so a new invite shows up without you refreshing anything. Reconnecting an expired account is bound to the account you clicked, so an account chooser cannot attach the wrong address to the wrong client. A Teams meeting is found on whichever connected calendar carries it, Google or Microsoft. The guide to connecting Google and Outlook calendars to one notetaker walks through it.
2. The bot joins
About two minutes before the start, a participant called TrackHeros Notetaker joins the Meet or Teams call. You can give it a different name per client, and it can post a short greeting in the meeting chat when it arrives. It finds the link wherever the invitation hid it: the conference field, the location, or the free text of a forwarded Teams invite. Auto-join is decided at three levels, per meeting, per recurring series, then the account default, and the most specific one wins. The app shows you which level made the decision, so "why did it join my daily standup" has a one-line answer.
3. Notes land in the right client
When the recording is ready, the transcript is made in two passes. Platform captions come first, because they carry the real speaker names. Then an audio pass over the recording produces the authoritative text. The summary, decisions, milestones, action items and minutes are written from that transcript and stored in the client's workspace. A calendar meeting with no client, from your own personal calendar for instance, waits under "No client", private to you, and the bot does not join it until you file it under a client.
4. Ask later
Open a client and ask a question in plain language. The answer is drawn only from that client's meetings and comes with citations to who said it and when, each one linking to the moment in the recording. See ask your meetings.
What do you get after the call?
| Artefact | What is in it |
|---|---|
| Summary | A short account of the meeting. If the audio was unusable or in the wrong language, it says so instead of inventing one |
| Decisions | Each decision as a sentence, attributed to the people who made it |
| Discussion by topic | The conversation grouped by subject rather than by minute |
| Agenda | Taken from the invitation, or reconstructed from the conversation and marked as reconstructed |
| Milestones | Dated milestones as they were stated, so the release plan is readable at a glance |
| Action items | Owner as heard in the meeting, and a due date kept verbatim ("end of next week") and resolved to a date. An owner who was not in the meeting is flagged for you to verify |
| Transcript | Real speaker names from the captions. A line that cannot be attributed is marked Unknown, not guessed |
| Minutes | A formatted document in the client's template, exported as PDF or copied for email |
| Recording | Playable inside the app through short-lived, meeting-bound links. No public URLs |
How does TrackHeros keep clients separate?
Each client is a workspace, and a workspace is a wall rather than a folder. Every query the app runs is scoped to one client before it runs; a query without that scope is an error, not a request for everything. Postgres row-level security sits behind that as a second layer. The assistant that answers your questions only ever sees the client you are asking about. Read how it is built on the client isolation page, and what we do with your data in the privacy section of the homepage.
The one deliberate exception is a global, read-only view: a dashboard, a combined meeting list and calendar, action items across clients, and search. Every row is labelled with its client, and nothing can be changed from there. It exists so you can see your week without opening six accounts, not so that clients can see each other.
Can one account cover every client calendar, Google or Microsoft?
Yes. One TrackHeros sign-up holds every account you use for client work: connect each client's Google account, or the Microsoft 365 or Outlook account they gave you, as many of each as you hold. Each one belongs to exactly one client, so the fintech's Microsoft 365 calendar and the agency's Google calendar can never feed the same workspace. Every account's main calendar then shows up in one read-only calendar view, each meeting labelled and coloured by its client. If the same meeting sits on two calendars of the same client, a Google one and a Microsoft one say, it is recognised as one meeting and gets one bot. The same call on two different clients' calendars stays two records, by design. The every-calendar page has the detail.
Language needs no setup either. Nothing has to be set: each meeting's language is worked out from the meeting itself, from close to 100 spoken languages, and the notes are written in English or in the language you choose for that client. See automatic language detection.
What did we agree on the API deadline?
That is the question you actually have on a Wednesday afternoon. In TrackHeros you open the client, type it, and get an answer along the lines of "the API freeze was agreed for the 14th; their backend lead asked for a two-day buffer for the auth changes", with each fact cited to the speaker and the timestamp. Click the citation and the recording plays from that moment. There are no credits to count and no monthly cap on questions.
Answers can be exported as Markdown, PDF or email-ready HTML, which is useful when the client asks the same question and you would rather send the cited version than your recollection.
Teaching it your project's vocabulary
Developers talk in identifiers, and a transcription model does not know yours. Each client workspace has correction rules of two kinds. A vocabulary rule maps a mishearing to the right term: "UBVA" to "UBA", or the model's spelling of a product name to the real one. An instruction rule tells the summariser something structural: ticket ids for this client always look like PROJ-123, or the staging environment is called "blue". Rules apply to every future meeting for that client, and a past meeting is fixed by re-summarising it. You can create one from a chat message or from "Propose a correction" on a meeting page. Because rules live inside one client's workspace, Client A's ticket prefix is never applied to Client B's transcript.
What do I send the client?
The minutes are a document rather than a paste of AI text: attendees, agenda, discussion by topic, decisions, milestones, and an action item table with owners and due dates. Each client has its own minutes template with a heading, one of five colour themes, and a switch for every section, so a client who only wants decisions and action items gets exactly that. Empty sections are dropped. Export as PDF to attach to an email, or use "Copy for email", which puts both HTML and plain text on the clipboard so it pastes cleanly into whatever mail client you use. Sending is up to you; nothing goes out on its own. More on the minutes page.
What happens when the bot misses a meeting?
A missed meeting is the failure that matters, so it is handled plainly. The bot tries to join about two minutes early. If the join fails, the meeting shows a retry button, and one click sends it again. The app refuses to send a second bot into a meeting that already has one, so a retry cannot put two notetakers in the call. Meetings that started more than ten minutes ago are not chased, because a bot arriving for the last five minutes is worse than none. If the bot was not admitted automatically it waits in the lobby like anyone else; the guide on joining meetings you do not host covers what to tell the organiser.
What happens when a contract ends?
Delete the client. The workspace is removed after a typed confirmation, and the cascade covers the database rows, the stored recordings and transcripts, and the copy held by the meeting-bot service. Object storage is non-versioned, so a delete is a delete. Backups expire within 30 days and are never restored into a live account. The same cascade applies to your whole account if you decide to leave. The guide to keeping client notes separate has a short routine for the start and end of each engagement.
Which languages does it handle?
Meetings in English, in another language, or in two at once, with nothing to set. Close to 100 spoken languages are recognised. Each meeting's language is detected from the meeting itself, and a meeting in another language is transcribed from the audio and rendered into English line by line; the transcript says which language it was translated from. The notes are written in English by default, or in Arabic, French, Spanish, German, Italian, Portuguese, Ukrainian or Indonesian, set per client — so the agency in Madrid can get Spanish minutes while the fintech in London gets English ones — and the exported minutes carry that language's headings and dates. A sentence that starts in Spanish and ends in English, which is how a lot of real stand-ups sound, goes through the same audio pass. A recurring call heard in English alone learns to skip the extra audio pass, is re-checked with a full pass every tenth occurrence, and goes back to the audio pass the moment a second language turns up. On the free plan the notes are written in English. Every language is listed on the languages page.
What does it not do yet?
The items below are the ones freelancers ask about most, and none of them exists today.
Not yet available
- Push action items straight to Jira, ClickUp, and LinearNot yet available
Questions
Frequently asked
Do I have to connect every account at once?
No. Connect your Google and Microsoft accounts one at a time and assign each to a client as you go. An account belongs to exactly one client, and you can add the next one whenever the next contract starts.
Does the bot need to be the meeting host?
No. It joins as a participant under its own name and, if it is not admitted automatically, waits to be let in like anyone else. If the client hosts the call, tell them to expect a participant called TrackHeros Notetaker, or whatever name you gave it for that client.
Does it join Microsoft Teams meetings?
Yes. A Teams meeting is found on whichever connected calendar carries it, a Microsoft 365 or Outlook calendar or a Google one, and the link is found wherever the invitation put it. A forwarded Teams invite in a Google calendar still works, and you can also paste a link and pick the client.
Can I ask a question across all my clients at once?
There is a read-only global chat mode that answers from your own meetings across clients. Every fact in the answer is labelled with the client it came from, and facts from different clients are never merged into one narrative. Nothing can be changed from global mode.
What if the transcript keeps getting a product name wrong?
Add a vocabulary rule in that client's workspace, mapping the mishearing to the right term. It applies to every future meeting for that client, and re-summarising fixes a past one. Rules can be created from a chat message or from the Propose a correction button on a meeting.
What happens to a client's data when the contract ends?
Delete the client workspace. After a typed confirmation the cascade removes the database rows, the stored recordings and transcripts, and the copy held by the meeting-bot service. Backups expire within 30 days and are never restored into a live account.
Privacy
Your meetings stay yours.
We never use your data to train AI models.
We never sell your data to anyone.
Your data is stored so we can build your workspace — for your eyes only.
Delete your account and everything goes with it, for good — from our backups too, within 30 days.
The full policy is on the privacy page.
Related
Keep reading
- FeaturesOne AI notetaker for every Google and Microsoft calendar you holdAn AI notetaker for multiple calendars: connect every Google and Microsoft account you hold under one sign-up, each bound to exactly one client.
- FeaturesAn AI notetaker that works out the meeting language on its ownTrackHeros, a meeting notetaker, auto-detects the language of each Google Meet and Microsoft Teams call and writes the notes in the language you choose.
- FeaturesClient workspaces that never mixEvery client's meetings, notes and transcripts live in a sealed workspace. Client data isolation is built into every query, not switched on.
- FeaturesSearch and ask across a client's meetingsAsk questions about past meetings in plain language and get cited answers, or search transcripts, summaries and action items across every client.
- GuidesHow to keep client meeting notes separate when you work with several clientsHow to keep client meeting notes separate when you work with several clients: one container per client, naming rules, what to do when a contract ends.
- GuidesA client kickoff meeting agenda for freelance developersA project kickoff meeting agenda for freelance developers: an hour with timings, the questions to ask, what to write down and the recap to send after.
- GuidesRequirements gathering meetings: what to ask a client and how to write it upQuestions to ask a client for software requirements, area by area, how to record their exact wording, and how to turn the call into a first spec draft.
- GuidesScope creep starts in meetings: the phrases to catch and what to sayScope creep starts in client meetings. The phrases that signal new work, what to say on the call, how to log it, and a change request email template.
Early access
Get in early.
We’re onboarding a small group at a time so we can get it right. Join the list and we’ll reach out.