Releases: Siddardth7/networking-agent
Release list
v1.0.0 — Public release 🚀
Networking Agent 1.0: referral-first job networking, for any field, on your own Claude tokens.
The job funnel is flooded with AI-generated noise — recruiters spot generic outreach in seconds and bin it. What still works is a warm referral (~28.5% vs ~2.7% hire rate for cold applicants). This agent exists for exactly that: five personalized messages to the right people beat fifty generic ones.
What you get
- Guided onboarding, any field —
/network-setupinterviews you and builds your profile (school, employers, target roles, a focus taxonomy for your domain), your voice doc, field-adapted persona templates, and a provenance-tagged resume library. A backend engineer, a nurse, and an aerospace stress analyst run the same pipeline with different profiles. - Two front doors — Campaign mode (
/network-run) builds a bench at a target company; Application mode (/network-jobs) finds referral candidates per job posting you're applying to and answers "do I have a referral for this req yet?". One engine, cross-deduped. - The right people, ranked and explained — deterministic referral-likelihood scoring (confirmed alumni 40 pts, warm connections, recruiters, role-team match) with every point's reason attached.
- Your voice, never fabricated — drafts follow a validated 4-part model with a hard specificity gate; facts come only from your resume library with provenance (coursework is never dressed up as employment, no invented metrics); an anti-AI-tell critic holds anything that smells generated.
- The full loop — capped follow-ups (2 touches, 4–7-day gap), timezone-aware send windows, reply-aware next moves (thank-the-intro / sponsorship / referral-ask / schedule-call), outcome tracking, and per-posting referral status.
- A coach, not just a tool —
/network-coachexplains the strategy in terms of the agent's real mechanics, and the pipeline explains its choices as it presents them. - Runs on your Claude session's tokens — no Anthropic API topup. A free-tier Serper key (or Apify) for discovery is the only hard requirement. The human always reviews and sends; the agent never touches LinkedIn.
Trust
1,270 hermetic tests at 98.97% line+branch coverage (CI-gated at 98), plus opt-in live-API smoke tests, live accuracy scorecards (classify 100%/100%, ranking 100% concordance), and a live end-to-end trial on a non-aerospace profile (trial doc). Full history in CHANGELOG.md; how to contribute in CONTRIBUTING.md.
Get started
claude plugin install https://github.com/Siddardth7/networking-agent
/network-setup
/network-run <company>
🤖 Generated with Claude Code
v0.10.5 — Public polish (B4)
The pre-1.0 polish pass (ROADMAP B4). Three things a public project needs:
- Live-API smoke tests (#26). The suite was 100% mocked; nothing caught provider contract drift until a real run broke.
tests/test_live_smoke.pyadds three doubly-gated live checks (opt-in flag + key; CI always skips): a real Serper LinkedIn search parsed into candidates, the free Apify auth check, and a 1-token Anthropic ping. Run live at release time: Serper + Anthropic PASS. - Contributor + listing polish (#83). New
CONTRIBUTING.md(setup, the CI-enforced coverage/lint bar, conventions, and the architecture ground rules: host-token inversion, profile-driven never person-driven, no silent caps, fact discipline). README brought current (badges were six versions stale; prerequisites now say the truth — no Anthropic key needed, a free discovery key is the only hard requirement; multi-domain examples).plugin.jsondescription rewritten field-agnostic. - Live non-aerospace E2E trial — PASS (#84). A wizard-built backend-SWE persona ran the real pipeline against Cloudflare on live discovery: custom taxonomy in classification, hooks from real profile snippets, the
target_focus+10 rank signal firing on live data for the first time, and a first-pass-clean draft through gate + critic. The trial caught (and this release fixes) a real defect: the setup wizard now creates field-adapted persona templates (/network-setupstep 3.5), so a non-aerospace user's drafts never carry the built-in aerospace identity.
Quality: 1270 tests (+3 opt-in live), 98.97% line+branch coverage (gate 98), ruff clean. Full details in CHANGELOG.md.
🤖 Generated with Claude Code
v0.10.0 — Guided onboarding + coaching
The onboarding release (ROADMAP B3, epic #75): a stranger in any field can now self-onboard through a guided conversation — and be coached on the networking strategy as the agent works. This closes the last functional gap before B4 public polish → v1.0.
Highlights
/network-setup— guided onboarding wizard (#77). A conversational interview on host tokens builds yourprofile.yaml(identity, school signals, employers, target roles, and a focus taxonomy the host proposes for your field), yourvoice.md(only the[CUSTOMIZE]sections are interviewed; the validated message mechanics stay intact), and yourresume_library.yamlfrom pasted resume text under strict fact discipline — provenance types never inflated, no invented metrics. Status-aware and re-runnable: updates rewrite only what you ask, with automatic timestamped backups. API keys never pass through the chat. The README quick start now leads with it.- Deterministic setup bridge (#76).
network_setup_host status | scaffold | write— validation uses the real runtime loaders (the profile parser, theResumeLibrarymodel), so "valid at setup" means "loads at runtime". Raw-text writes preserve your YAML comments; invalid content is refused with the validator's message and your existing file untouched. /network-coach+ explain-as-it-works (#78). The strategy playbook grounded in this repo's actual mechanics — the ranker's real weights (confirmed alumni 40 pts), the hook ladder, the one-ask rule + ask rotation, follow-up cadence, send windows, and the reply → next-move precedence table./network-runand/network-jobsnow explain each candidate and draft in one line as they present them, straight from the data on the rows.
Validated end to end in-Claude with a synthetic ICU-nurse persona: the wizard-built files drove classification, all three hook tiers, the taxonomy resolver, the rank team-match signal, and achievement matching.
Quality: 1270 tests, 98.97% line+branch coverage (gate 98), ruff clean. Full details in CHANGELOG.md.
🤖 Generated with Claude Code
v0.9.5 — Application mode (per-posting referrals, profile-driven)
The Application-mode release: a second input front door. Where Campaign mode targets a company, Application mode reads a scored job feed and finds referral candidates for a specific posting — the role's team, hiring manager, recruiter, and warm personas — linked to a job_id the consumer polls for "referral yet?". Runs end to end on host tokens, and the whole agent is now profile-driven, not person-driven.
Highlights (epic #57, P1–P4)
- P1 (#58) —
applications+application_contactstables (migration 009),Applicationmodel, feed parser with drop/error reporting. - P2 (#59) —
/network-jobs: parse feed → per posting persist → role-biased discovery (--keywords) → classify (host subagent) → ingest → link tojob_id, with cross-mode dedup via canonical LinkedIn URL. - P3 (#60) — role-aware drafting (drafts name the specific role via
--job-id), per-job_idreferral status rollup (/network-jobs --status), ask-rotation scoped by posting. - P4 (#61) — profile-driven generalization: new
src/core/profile.py+~/.networking-agent/profile.yaml(feedprofile_refselectsprofiles/<ref>.yaml;NETWORKING_AGENT_PROFILEactivates a named profile pipeline-wide). The ~8 hardcoded aerospace/UIUC spots moved into the default profile — byte-identical zero regression for existing installs. Free-formfunction/target_keywordsresolve against the profile taxonomy to wire the ranker'starget_focus(+10 team match). A backend SWE, a nurse, or a finance analyst use the same feed schema — only the profile differs. Closes ROADMAP B1 + B2.
Hardening (post-merge review, PRs #72–#73)
Named-profile activation end to end, clean ProfileError on malformed profile.yaml, explicit empty lists honored (no fabricated employer hooks), mtime-cached profile loading, one shared focus-label validator, plain-string focus labels pipeline-wide, ingest-boundary label validation.
Quality: 1255 tests, 98.94% line+branch coverage (gate 98), ruff clean. Full details in CHANGELOG.md.
🤖 Generated with Claude Code
v0.9.0 — Host-token architecture
The full outreach pipeline now runs on the host Claude's tokens by default — no ANTHROPIC_API_KEY topup needed (#50). The Anthropic-API orchestrator is retained as the explicit --api headless fallback.
Highlights
- Host-token everything: find→classify→ingest, drafting, next-move, critic, and the default
/network-runorchestration all run on host tokens via deterministic Bash bridges +model: sonnetsubagents. Python stays the deterministic tool layer (context builders + safety gates + persistence). network_run_hostplanner drives the loop (plan/select);/network-runis host-default,--apifalls back torun_pipeline.- Validated end-to-end in-Claude; two bugs found & fixed (#64 loop-stall, #65 came-across critic contradiction).
- Folds in #24 (import-layer hardening), #20 (exit-gate harness — partial), #19 (reply-aware next-move).
Notes
- #20's live exit-gate run is waived for this release (harness ships; live run deferred on Anthropic credit).
Repo 98.85% line+branch, 1139 tests green. See CHANGELOG for full detail.