nNilakshii

AI Outreach Agent — AI skill for Claude Code

AI community

Agent that runs my post-application outreach: finds the hiring manager and recruiter, writes the email or LinkedIn note, follows up, and reacts to replies.

How to install AI Outreach Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open nNilakshii/AI-Outreach-Agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What AI Outreach Agent does

Agent that runs my post-application outreach: finds the hiring manager and recruiter, writes the email or LinkedIn note, follows up, and reacts to replies. Built on Claude API, Gmail API, Hunter.io. I approve every message before it goes out!

Alternatives in AI

  • Bottleneck Hunter — 供应链瓶颈猎手:AI驱动的全球产业链瓶颈套利 15.9k ★
  • Bot On Anything — A large model-based chatbot builder that can quickly integrate AI models (including ChatGPT, Claude, Gemini) i 4.2k ★
  • CodeIsland — Real-time AI coding agent status panel in your MacBook notch — live status, approvals & replies for 13 AI tool 2.3k ★

README

outreach-agent

An agent that runs my post-application outreach. After I apply to a job, it decides who at the company can actually move the application, finds them, picks the channel, writes the message, follows up once if nobody answers, and reacts to replies. I approve every message before it goes out.

What makes it an agent (not a mail-merge)

Each company gets a goal - *get a reply from a human who can move this application* - and the model works toward it in a tool-calling loop, choosing its own next step from the current state:

get_state -> read_posting -> web_search (who leads this team? who recruits for it?)
          -> save_contact -> find_email (verified only) -> draft_message -> set_status

On later runs it sees what happened (sent, no reply after 5 business days, a reply arrived) and decides again: draft one follow-up, answer a question, pivot to a different contact, or stop.

**Tools**

tool what it does
web_search server-side search to find current employees on the team (LinkedIn profiles via search results)
read_posting job text from the Ashby / Lever / Greenhouse public APIs
save_contact records a person, with the evidence they currently work there
find_email Hunter.io lookup - returns an address only if verified; never guesses
draft_message queues an email / LinkedIn note for approval
set_status ends the run with a decision: waiting, done, or skipped
get_state the agent's memory (SQLite): contacts, messages, replies, events

**Guardrails enforced in code**, not just in the prompt: connect notes <= 200 chars with no numbers (they read as a sales pitch), at most one metric per email, no em dashes, no email without a verified address, max 2 contacts per company, one initial message per contact, one follow-up and only after 5 business days, and only facts listed in `profile/facts.md`.

**Human in the loop.** The agent never sends. `review` is the approval gate: