skip to content

Follow Up

Draft the follow-up in your voice, with a real next step inside.

What it does

You met someone, the meeting went well, and now the follow-up sits unwritten for a week. This skill drafts it for you: in your voice, referencing what you actually talked about, and always carrying something actionable. Sending the deck, making the intro, proposing a time. Never "would love to stay connected" filler.

It picks the right channel from what's on the person's record (email, LinkedIn, WhatsApp, Telegram, SMS) and respects each one's constraints, like LinkedIn's 300-character cap on connection notes. You get text to copy and paste plus a link to open the chat. The touchpoint is logged only after you confirm it went out, so your history reflects what actually happened.

Use it when

  • You met someone great yesterday and the window is closing
  • You promised to send something and want the message to carry it
  • You need a LinkedIn connection note that doesn't sound like a bot
  • You want every follow-up logged without doing the bookkeeping

Prompts to try

  • Follow up with Claudia from last night's dinner
  • Thank Rui for the meeting and send him our deck
  • Draft a LinkedIn connection note for the designer I met at the meetup
  • Message Tomas about picking a time for that coffee

Install

These skills talk to your noticed network, so you'll need a noticed account first. Request access and sign in, or they will have nothing to talk to.

  1. Add the noticed marketplace:/plugin marketplace add noticedso/skills
  2. Install the skills pack (all six skills ship together):/plugin install noticed-skills@noticed-skills
  3. Run /skills to confirm the skills loaded.
View SKILL.md

follow-up

Draft a follow-up to one person the user recently met IRL. One person at a time. Resolve identity, channel, and angle before writing a word.

Person resolution is shared with remember-person — same own → ask order. No web enrichment, no public scope.

flow

  1. Resolve the person. search_people own, multi-word names AND-joined. Strong match → use it. Multiple/no match → surface candidates, never default to new silently. On "new", get a linkedin before drafting so they can be added after the send is confirmed.

  2. Read recent context. get_person({ include: "dossier" }). If nothing logged in ~2 weeks and notes are thin, ask "what was the meeting about?" and wait.

  3. Pick the channel from what's on the record (linkedin_username, a stored email, a stored phone/handle). One usable → use it. Multiple → ask. Nothing stored → ask how they want to reach them. If linkedin, resolve the mode first (it sets the char budget).

  4. Suggest an angle, don't just ask. Read the context and propose the angle(s) that fit ("looks like the natural next step is sending the deck you mentioned — want that, or a quick thank-you?"). Fall back to an open "what's the angle?" only when there's no context. Wait.

  5. Draft:

    • In the user's voice — the agent knows how the user writes; match it, don't impose a house style.
    • Short. DMs under ~80 words; email body under ~150; LinkedIn connection note 300-char hard cap.
    • Reference the meeting context naturally.
    • Always include something actionable — ideally something the user offers to do for the recipient (send the deck, make an intro, share a doc, pick a time). A follow-up with no next move is noise. Never generic "would love to stay connected" filler.
    • No em-dashes, no emojis, no AI-tropes.

channels

All channels are copy/paste. The skill produces text the user sends; it doesn't send anything or depend on a connected mail/DM tool.

  • email — produce a subject + body (subject auto-generated from the angle); show both to copy into whatever mail client they use.
  • linkedin — two modes, resolve before drafting:
    • connection request note (not yet connected): 300-char hard cap, enforced before drafting; still carries a concrete next move, never empty "let's connect" filler. Show the char count.
    • DM (already connected): longer (~80 words), room for a fuller ask.
    • Pick: in-network/logged or "message/DM X" → DM; just-met/"connect with X" → connection note; unclear → ask one line. Provide the profile link; copy/paste, no pre-fill.
  • whatsapphttps://wa.me/<phone>?text=<urlencoded> (pre-fills).
  • telegramhttps://t.me/<username> (no pre-fill).
  • smssms:<phone>?body=<urlencoded> (mobile).

logging

Never log until the user confirms "sent it". Then:

  • Email → log_interaction(kind: "emailed", payload: { channel, angle, summary }).
  • DM → log_interaction(kind: "messaged", payload: { channel, angle, summary }); for LinkedIn note the mode in the summary so the timeline shows whether the user is now connected.

Brand-new contact: add_to_network fires with the first log_interaction after "sent it", not before. Then read back what was logged (and added).

No default_notes writes, no memory_save calls — interaction-only.

tool needs

  • noticed: search_people, get_person, add_to_network (only on a confirmed brand-new contact), log_interaction
  • No Gmail — email is copy/paste like the DMs.

explicitly NOT in scope

  • Cold outreach / first-touch; reconnects with dormant contacts; batch follow-ups; sending directly / delayed send (everything is copy/paste); calendar invites; scope: "public" searches; writing to default_notes (interaction-only).

your agent is only as good as its memory

These skills run on noticed, the relationship memory behind your agent. Request access and bring your network with you.

Request access