Networking & Referrals
Turn a target company into a warm path in. Referrals are consistently one of the highest-converting sources of hires, which is why this skill warms the path before you apply. So this is the highest-leverage move in the whole search. Treat "just apply through the portal" as the last resort, not the first step.
When to use
- The user has a role they want at a specific company and hasn't applied yet (the best case, since getting warm before you apply beats the portal)
- "Who do I know there?", "find me a referral", "who's the hiring manager", "help me reach out"
- A role scored well in
job-fit-scoring(A/B priority) and deserves a real push, not a portal submission - After applying, when the app is sitting in a black hole and needs a human to surface it
Inputs
- Reads:
workspace/profile/profile.md(positioning, proof points),workspace/profile/target-companies.md, the application recordworkspace/pipeline/applications/<id>-*.md,workspace/pipeline/tracker.csv(existing contact/referral_path),templates/outreach-templates.md - Needs from user:
- Their network at or near the company. Ask: "Do you know anyone there, or anyone who might?" Ask them to check LinkedIn 1st + 2nd degree, past coworkers, alumni, community and Slack groups. This is the single most important input and it lives in the user's head, so don't skip it.
- Permission to web-search for the hiring manager and recruiter by name.
- Optional:
agent-reach(LinkedIn/people research backend, documented indocs/integrations.md) if configured, a power-up for mapping 2nd-degree connections and finding the HM/recruiter. Never required. Degrade to plain web search plus asking the user.
Workflow
- Confirm the target. One company, one role, one req URL. If there are three, do the strongest-fit one first. This is manual, high-touch work and quality beats volume.
- Map every possible warm path. Build the candidate list:
- People the user already knows there (1st degree), the gold. Ask directly.
- 2nd-degree: mutuals who could intro. Ask the user "who do you know who knows someone there?" and/or use
agent-reach/web search on the company + their network. - Affinity paths: shared alma mater, past employer, community, open-source, conference, mutual creator/newsletter audience. These make a "cold" note warm.
- The hiring team: identify the hiring manager (the person whose team the role sits on) and the recruiter on the req, by name. Web-search the role title plus company plus "hiring" or LinkedIn, check the job post's poster, and check the company's team or about page (optional
defuddlefor a clean extract).
- Rank the paths by strength. Always this order. Pursue the strongest available and don't default to cold:
- Internal referral. Someone inside submits you through the referral system. Highest conversion by far.
- Warm intro via a mutual. A 2nd-degree connection introduces you to the HM or a team member.
- Direct-but-warm HM note. No intro, but a genuine affinity/specific hook that makes it not-cold.
- Recruiter. Reach the recruiter directly after (or instead of) the portal.
- Cold apply. The portal alone. Baseline only, and never the plan when 1–4 exist.
- Pick the play and draft the message. Choose the matching template from
templates/outreach-templates.md:- path 1 → referral ask (#1): make it zero-effort for them by offering a forwardable blurb.
- path 2 → intro request (#2): write the forwardable note so the mutual just hits send.
- path 3 → cold HM note (#3): one specific true sentence tying the user's proof point to a problem the team is visibly solving. Personalize hard: name the real person, one verifiable detail (not flattery, but evidence you did the work), one ask, under 90 words. When asking for a referral, always include a short forwardable blurb the contact can paste. Remove the friction.
- Run
writing-qualityon every message. No exceptions. Strip the AI-slop tells ("I hope this finds you well", "I wanted to reach out", "leverage", "excited about the opportunity"). Short and specific beats polished. - Run
artifact-eval(outreach spec) as the second gate. Afterwriting-qualitypasses, submit every drafted message toartifact-evalagainst the outreach spec. Fix any REVISE/FAIL and re-submit until PASS. Only a PASS message goes to the human to send. This mirrors the two-gate sequence inresume-tailorandcover-letter(writing-quality, then artifact-eval → PASS, human approves/sends). - Record it. Write into the application record and tracker:
contact= the person's name/handle,referral_path= the ranked path ("internal referral via Jane Doe" / "2nd-degree via Sam @ mutual").- Add contacts under
## Contacts & referral pathin the application record with relationship + warm/cold + the drafted message saved toworkspace/output/<id>-outreach-<name>.md. - Set
next_action= "follow up if no reply" andnext_action_date= send date + 5–7 business days.
- Hand the message to the human. Never auto-send. Present the draft, the recipient, and where you'd send it (LinkedIn DM / email / referral form). The user reviews and sends. If they report a reply, log it and set the next step (intro accepted means send the forwardable blurb, referral in means apply through the portal with the referral attached).
Output
- Writes to:
workspace/output/<id>-outreach-<name>.md– the drafted message(s), recipient, channel, and the forwardable blurbworkspace/pipeline/applications/<id>-*.md–## Contacts and referral pathpopulated, plus a timeline noteworkspace/pipeline/tracker.csv–contact,referral_path,next_action,next_action_dateupdated
- Format: each message block = To / Channel / Message (<90 words) / Forwardable blurb (if referral or intro) / Follow-up date, closed with a one-line gate receipt:
writing-quality: PASS · artifact-eval: PASS (outreach v<ver>, score N). Ranked-paths summary at the top so the user sees why this play was chosen.
Rules & quality bar
- Referral > warm intro > warm HM note > recruiter > cold apply. Always try to move up the ladder before applying. Applying cold when a 2nd-degree path existed is a wasted shot.
- One ask per message. Don't stack "intro AND feedback AND coffee". Ask for the single thing that moves you forward.
- Under 90 words. Every message. If it scrolls, it's too long.
- No fabrication. Don't invent a shared connection, a mutual, or a fake "we met at". Every specific detail must be true. If there's no real hook, say so and use the honest cold-HM note.
- The user owns their relationships. You draft. They decide who to contact and what to send. Never auto-send, never mass-blast, never impersonate the user to a real person.
- Make referral asks effortless for the contact. Always supply the paste-ready blurb. A referral ask with no blurb dies in the contact's inbox.
- Every produced message clears both gates before a human sees it:
writing-qualityfirst, thenartifact-eval(outreach spec) to a PASS. Non-negotiable for anything a human will send. Same two-gate sequence asresume-tailorandcover-letter.
Related skills
- Reads from:
job-search-setup(profile/proof points),job-fit-scoring(which roles earn this effort),company-research(the HM's priorities, the team's problems, which make sharper hooks),story-bank(the proof point to lead with) - Ends with:
writing-quality(mandatory slop gate on every message), thenartifact-eval(outreach spec). Both must PASS before the human sends - Feeds:
application-tracker(contact + referral_path + follow-up cadence),interview-prep(your inside contact is a prep source) - Optional power-ups:
agent-reach(people/LinkedIn research),defuddle(clean extract of team and about pages). Seedocs/integrations.md