write-dm — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited write-dm (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Most LinkedIn DMs are either generic templates ("I'd love to connect and explore synergies") or so over-engineered with fake personalization that the recipient can smell the AI on first read. This skill exists to write DMs that sound like the user, are short enough to actually be read, and ask for something specific instead of dancing around it.
LinkedIn DM volume has exploded with AI-assisted outreach tools, and recipients are now numb to the standard patterns. The "I noticed you went to [school] and I also love [random shared interest], let's hop on a quick call" template is dead. Response rates on templated cold DMs have collapsed.
What still works: short, specific, honest messages from one person to another. This skill exists to write those, not to scale outreach.
Trigger when:
Do NOT trigger when:
If voice-profile.md exists, read it. DMs should match the user's voice but in a slightly more direct register than posts.
A few format-specific things:
Connection requests. Limited to 300 characters. Most platforms cap personalized note slots, and even when present they should be used. A request with a real note has roughly 3-5x the acceptance rate of one without.
Standard DMs. No character limit, but anything over ~200 words is unlikely to be read in full. Aim for 50-150 words.
Voice and video DMs. Possible but rare. Skip unless the user specifically asks.
InMail (Premium feature). Same rules as a regular DM, slightly more polished register because InMail signals the sender paid for it.
Be specific in the first sentence. Not "I came across your profile and was impressed by your background." Specific means: a thing the recipient has done, a post they wrote, a project they shipped. Not generic praise.
Get to the ask quickly. A short DM that asks honestly performs better than a long DM that buries the ask. The recipient can decide quickly whether to engage.
No fake intimacy. "Hope you are doing well in these trying times" reads as a template even when sincere. Just start with the substance.
No "quick call" without a reason. If you ask for a 15-minute call, name what the call is for. "Could I ask you about how you approach X" gives the recipient something concrete to say yes or no to.
Match the recipient's register. Look at the recipient's posts. If they write casually, write casually. If they write formally, write formally. If they post in another language, ask the user if they want the DM in that language.
One ask per message. Asking for an intro AND advice AND a meeting in one DM signals desperation. Pick one. The others can come if the first lands.
Output must read as written by a human on the first pass. The constraints below are how you write, not a checklist to apply later. Do not narrate this process to the user. Do not show a "before humanizer / after humanizer" sequence. Just produce clean output.
Hard bans — never appear in output:
- **Speed:** ...). Write as prose.Required patterns:
Final scan before output:
— and –. Any hit means redraft.Full 33-pattern reference: see humanizer/SKILL.md in this plugin.
For connection requests:
[message text]
Character count: [N] / 300For standard DMs:
[message text]
Word count: [N]
Notes: [what kind of response this is designed to invite. Options: a yes/no, a meeting confirmation, a longer reply]Connection request example.
User wants to connect with a CTO they admire after the CTO published an article they read.
Output:
I read your piece on engineering metrics last week. The point about velocity becoming useless past 20 people matched what we hit at our last company. Would value being connected.
Character count: 219 / 300What this avoids: generic praise, mutual interests fishing, "let's explore synergies."
Cold DM example.
User is a junior PM wanting to ask a senior PM (a stranger) for advice on transitioning into B2B SaaS.
Output:
I'm a consumer PM trying to make the move to B2B SaaS and your post about the metrics tradeoff in early-stage B2B was the most useful thing I've read on the transition. Quick question: when you were making the move, what was the one thing you wish you had done before joining your first B2B company? Happy if the answer is "nothing." Either way, thanks for the post.
Word count: 67
Notes: This is designed to invite a 1-3 sentence reply, not a meeting. Asking for too much from a stranger lowers response rate. If they reply, the user can ask for more later.Follow-up example.
User sent a cold DM two weeks ago and got no response.
Output:
Following up on this in case it got lost. No worries if not the right ask or right time.
Word count: 19
Notes: Short, no guilt, gives the recipient a graceful out. If this also gets no response, do not follow up again; they are not interested.Reply to received DM.
A founder DMs the user (a developer) asking about contract work.
Output (assuming the user is open to the conversation):
Thanks for the note. Briefly: yes, I'm open to contract conversations for the right thing. What are you trying to build, and what is the timeline? If it makes sense to talk, I'm free Tuesday or Thursday afternoon.
Word count: 41
Notes: Direct yes, two qualifying questions, one concrete next step. Avoids overcommitting and avoids dragging out the back-and-forth.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.