6
39 Comments

Building an AI assistant for freelancers who forget to follow up

I’m building a small AI assistant for freelancers who forget to follow up with potential clients.

The idea is simple: instead of maintaining another spreadsheet or CRM, you can just talk to it.

For example:

“Ruchita wants a website redesign for ₹40,000. She’ll decide Friday.”

The assistant turns that conversation into a lead, remembers the follow-up, and helps write the message when it’s time.

I’m still early and testing the idea.

I’d love to hear from other freelancers and indie hackers:

How do you currently keep track of leads and follow-ups?

Spreadsheet? WhatsApp? Notes? CRM? Something else?

Any honest feedback would be really helpful.

on August 19, 2026
  1. 1

    the part i would protect early is trust in the extracted facts. before creating a reminder, have the assistant repeat back the client, amount, decision date, and confidence, then let the user correct one field in place. for uncertain dates, a "snooze with reason" action is better than guessing. you can measure this with corrected-field rate and missed-follow-up rate, which will tell you whether the chat interface is actually safer than a notes app.

  2. 1

    The conversational input is the right call for this audience. Freelancers don't fill in CRM fields — they have a mental note and a vague intention to do something about it later. Lowering the capture friction to "just say it out loud" is the real insight here.

    The follow-up message generation is where this could genuinely earn its place. Most freelancers know they should follow up, they just don't because writing the message feels awkward — especially after a few days have passed and they're not sure if it's too late. If the assistant can generate a message that doesn't sound like a template, that's the moment it stops being a reminder tool and becomes something that actually moves deals forward.

    Current system for tracking leads: a combination of flagged emails and a note in the thread where the conversation happened. It works until it doesn't, which is usually when two or three things are moving at once.

    The question I'd want answered before I switched: what happens when a lead goes cold and I haven't updated the assistant? Does it keep nudging me about a conversation that died three weeks ago, or does it learn to let things go? That expiry/staleness problem is where most lightweight CRMs break down.

    1. 1

      Really appreciate this. That’s exactly the problem I’m trying to solve — reducing the friction between “I need to follow up on this” and actually capturing it somewhere useful.

      I also really like your point about follow-up generation being the moment where this needs to go beyond a reminder tool. The goal is for the assistant to understand the context and help move the conversation forward, not just send another generic “checking in” message.

      1. 1

        "Really appreciate this. That’s exactly the problem I’m trying to solve with Zarek — reducing the friction between 'I need to follow up on this' and actually capturing it somewhere useful.

  3. 1

    The Ruchita line is your whole spec risk. You typed one sentence and the app has to guess a lead, an amount, a person, and a Friday deadline out of it. If the chat is the spec, one sloppy sentence next month quietly reshapes the record.

    Since you're still early, slice it: one weekend, capture a note and show it back with the date parsed. Not the drafting, not the CRM. Just capture plus confirm. Ship that, keep it in local Git the same day, then decide if the writing part is even the job.

    Free 10-min check if you want to see where the vague part is: https://durablefoundations.gumroad.com/l/pyramid-reality-check

    Right now, if the assistant misreads "she'll decide Friday", can you see the raw note it stored?

    Kael Voss / DurableFoundations

    1. 1

      This is a really good callout. The goal definitely isn’t for one vague sentence to silently become a bunch of incorrect CRM fields.

      I like the idea of starting with a very narrow slice: capture the raw note, extract what we can, and let the user confirm before treating it as fact. That’s something I’m going to build into the flow.

  4. 1

    The biggest hurdle with conversational follow-up tools isn't capture—it's relevance decay.

    When a freelancer says "Ruchita wants a redesign for ₹40k, deciding Friday," the context changes the moment Friday passes. If the assistant drafts a generic "checking in" nudge, it feels like automated spam. If it asks "did she mention why she delayed?" before drafting the message, it shifts from an annoying bot to an actual executive assistant. The value is in the context check, not the calendar reminder.

  5. 1

    The voice first capture is the strongest part, especially after a client call when opening a CRM feels like too much work. I'd save the raw note right away and ask one quick clarification only if a date, person, or next step is unclear. I built DictaFlow on the same idea: capture the thought before it disappears. For this product, showing the exact note behind each reminder would build even more trust and let users fix the record before anything client facing gets drafted.

    1. 1

      Really appreciate this. I agree that the voice-first capture is probably the strongest part of the concept — especially immediately after a client call when opening a CRM feels like too much work.

      I also really like your suggestion about showing the exact raw note behind a reminder. That transparency could make the assistant much easier to trust, and I’m definitely going to explore that.

  6. 1

    A practical architecture would be to treat the conversation as an event log, not a mutable contact record. Each captured claim should keep its source channel, timestamp, speaker, confidence, and original quote. The assistant can derive the current lead state from those events without silently overwriting ambiguity.

    I would separate four steps: capture, resolve identity, recommend, and send. The first three can happen autonomously; “send” stays behind explicit owner confirmation. When it suggests a follow-up, show the evidence it used and ask for missing facts instead of inventing a reason.

    One useful failure test: give it two similar client names, conflicting decision dates from WhatsApp and email, and no new reason to reach out. The correct output should be “needs clarification,” not a polished message. If that case works, the conversational UI becomes much easier to trust.

    1. 1

      This is a great architecture suggestion. I really like the separation of capture → resolve → recommend → send.

      Keeping “send” behind explicit approval is especially important to me. I’d rather the assistant show the context and explain why it’s recommending a follow-up than silently make a client-facing decision.

  7. 1

    One practical boundary I’d design early is separating “remember,” “recommend,” and “send.” Let the assistant capture commitments and events, recommend a next action with a short “why now” and the source context, but keep client-facing sending behind explicit approval. That makes failures inspectable and prevents a hallucinated follow-up from becoming a client-facing mistake.

    For prioritization, I’d weight explicit dates or commitments first, then genuinely new information, and elapsed time alone last. What are you planning to treat as the source of truth when email, WhatsApp, and notes disagree?

    1. 1

      Absolutely agree. “Remember”, “recommend”, and “send” should be separate responsibilities.

      I especially like the idea of showing a short “why now” along with the source context. That gives the user enough information to decide whether the recommendation actually makes sense instead of blindly trusting the AI.

  8. 1

    The "conversation becomes the record" idea is solid, but the thread above nails the real risk a follow-up generated from old context reads as automated no matter how well-timed it is. If the assistant can learn to ask "did anything actually change" before drafting the message, that's the difference between feeling helpful and feeling like spam.

    1. 1

      Yes — that’s exactly the direction I want to take it. A follow-up generated from stale context can easily feel like automated spam.

      The assistant should first check whether anything actually changed before drafting the message. If there’s no meaningful reason to reach out, I’d rather it tell the user that than manufacture one.

  9. 1

    Interesting idea, especially for freelancers who don't want the overhead of a full CRM. At GeekyAnts, we've seen how conversational AI can turn unstructured updates into actionable workflows. The automatic follow-up and message-generation piece could be particularly useful here.

    1. 1

      Thank you! That’s exactly the audience I’m building this for — people who need the benefits of a CRM without wanting the overhead of maintaining one.

      The conversational capture and automatic follow-up are the two areas I’m focusing on right now, with the goal of making the whole process feel much lighter than traditional CRM workflows.

  10. 1

    This resonates a lot - I mostly track things through a mix of WhatsApp threads and random notes, and honestly half the follow-ups just slip through because nothing nudges me at the right time. A spreadsheet works until you forget to update it, which for me is basically always.

    What I'd actually want from something like this is less about the CRM part and more about the "remembering context" part - like if I say "client wants X by Friday," I don't want to have to re-explain the whole backstory later when I follow up. If your assistant can hold that context and draft the follow-up message in the right tone, that alone solves the biggest pain point for me.

    Curious how you're handling the "when to actually remind me" part - is it time-based, or does it pick up on things like "she'll decide Friday" and know to nudge you Friday evening?

    1. 1

      That’s exactly the part I’m exploring. I don’t want it to be just a time-based reminder — the goal is to use the context of the lead and the conversation to suggest when a follow-up actually makes sense. Still testing the best approach, but that “client decides Friday” type of context is definitely something I want it to handle.

  11. 1

    the "conversation becomes the record" framing is the same bet I'm making with something adjacent (it acts on someone's phone rather than tracking leads, but same underlying idea: talk naturally, skip the manual system)

    the keelum exchange above is the one worth sitting with though. "reason to reach out" generated from what changed on your end vs generated from the last objection are structurally different things, one requires you to actually tell the assistant new information, the other is just re-surfacing old context dressed up as a nudge. if your assistant can only work with what's already in the conversation history, it risks generating follow-ups that feel automated even when the timing is right

    curious if you're leaning toward having the assistant explicitly ask "did anything change on your end" before drafting a follow-up, versus trying to infer a reason from context alone. the first feels more honest even if it's an extra step

    1. 1

      That’s a really good distinction. I agree that resurfacing an old objection isn’t enough to make a follow-up feel genuinely useful. I’m leaning toward asking for new context when there isn’t enough evidence of a meaningful change, rather than pretending the assistant knows. Appreciate the perspective.

      1. 1

        "asking for new context rather than pretending the assistant knows" is the right instinct, that honesty probably ends up being a feature people notice even if they can't articulate why the follow-ups feel less robotic. good luck with the build

        1. 1

          Thank you! I completely agree with this. I’m trying to make the assistant ask for context when it genuinely doesn’t have enough information rather than pretending it knows the answer.

          That “honesty” layer is something I want to keep as a core part of the product — especially before it generates anything client-facing.

          1. 1

            that's a strong principle to build around from the start, keeping it, glad the conversation helped shape it. good luck with the build

  12. 1

    The "just talk to it" model is the right UX instinct for freelancers. CRMs do not fail because they lack features - they fail because maintaining them requires a context switch at exactly the wrong moment. Right after a call, you want to get back to work, not open a tool and fill in fields.

    The capture part sounds solid. The next hard problem is probably prioritisation: a freelancer who has 15 leads captured but does not know which three need attention today is still stuck. Does the assistant proactively surface "Ruchita's Friday deadline is tomorrow" without the freelancer having to remember to check?

    There is also an interesting disambiguation problem over time. When a client comes back weeks later saying "I am ready to go ahead", the assistant needs to connect that to the right open lead. That matching layer is where a lot of these tools quietly break down.

    For what it is worth - I have been building in the voice-to-action space (genie007.com) and the pattern I see consistently: the value is not in the memory, it is in knowing when to surface the right thing without being asked. That is the problem worth solving first.

    1. 1

      I really like the prioritization point. I think the assistant should go beyond storing leads and actually surface who needs attention and why, without requiring the freelancer to remember to check. The matching problem you mentioned is also something I want to explore as the product evolves.

      1. 1

        That's the right direction. The scheduling layer is table stakes. The real value is the judgment layer - knowing that this lead went quiet after the proposal but usually responds after 3 weeks, or that this client always ghosts before the holiday season. That's where it becomes indispensable rather than just a better spreadsheet.

  13. 1

    Ran a small team doing client work for a few years -- we used a spreadsheet.

    Remembering to follow up wasn't really a problem though. I'd follow up on time and have nothing to say beyond "just checking in." The ones that closed and the approach I found success in were when I had an actual reason -- some clear value add / addressing a real client concern.

    Does your product keep the objection or just the timing?

    1. 1

      That’s a really helpful distinction. Right now we’re focused more on timing, but I’m thinking the objection/context should be part of the follow-up too. If you were using it, would you want it to remember the last objection and suggest a reason to reach back out?

      1. 1

        Yes, but the 'reason to reach back out' needs to be meaningful. The real reasons usually came from my side (ie. we shipped something relevant). If your product generates a reason based on last objection (and not based on things that have actually changed on your end) it can just feel like a fancier follow up, but with no clear value add.

        1. 2

          That makes sense. We’re thinking about making follow-ups context-aware rather than just sending “checking in” reminders. What you said about actual changes on either side is especially useful. Thanks — I’ll keep that in mind as we build it.

  14. 1

    The interesting tension is that the problem is “forgetting to follow up,” while the proposed alternative is deliberately avoiding another CRM. That distinction seems central to how freelancers will perceive the product.

    1. 1

      Exactly — that’s the distinction I’m trying to test. I don’t want freelancers to maintain another CRM or spend time updating records. The goal is that the conversation itself becomes the record, and the assistant handles the follow-up from there. Still early, so I’m trying to learn whether that feels genuinely useful or just like another tool to manage.

      1. 1

        That’s the distinction that makes it interesting. If the conversation itself can carry the context without creating another system to maintain, that feels materially different from a lighter CRM.

        I’d be interested in continuing the conversation beyond the thread. What’s the best email to reach you at?

        1. 1

          Happy to continue the conversation here for now. I’d love to hear more about how you currently handle leads and follow-ups and what you’d want from something like this. What’s your current workflow?

          1. 1

            I keep it pretty lightweight — mostly email, notes, and reminders rather than a formal CRM. Happy to share more, but email may be easier for this. What’s the best address to reach you at?

            1. 1

              Thanks Aryan — appreciate it. A lightweight workflow is actually exactly what I'm exploring. You can reach me at [lunaaemily0603@gmail.com]. I'd love to hear how you currently handle leads that go quiet and what tends to get missed.

              1. 1

                Thanks! I’ve just sent it over.

                Looking forward to hearing your thoughts whenever you have a chance.