outreach
Run an outreach campaign end to end from one instruction — define the ICP, find the people (a list the user gives, a search, or LinkedIn in the browser)…
Skill by Tecosys
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tecosys-outreach
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, marketing, sales, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/outreach
What's inside
- Skill name
outreach- Description
- Run an outreach campaign end to end from one instruction — define the ICP, find the people (a list the user gives, a search, or LinkedIn in the browser), research each one, write a personalised message per person, put every draft through outreach_review for the user's approval, then send the approved ones one at a time through the built-in browser and log each in the campaign file. Use for "message 100 ICPs", "reach out to", "LinkedIn/cold outreach", "personalised DMs/emails", "find leads and contact them", "follow up with everyone who…".
- License
- AGPL-3.0
- Instructions
- 91 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
An outreach campaign is research, writing and sending, in that order, with the user in the middle.
The work that makes a message land is the research; the sending is the easy part and the only part
that can do damage, so it is gated. Never send anything that has not come back from outreach_review.
## 0. Before anything: the campaign log
`outreach_history` with the campaign name (or without, to list campaigns). It tells you who has
already been contacted, so nobody gets the same message twice, and how many were sent today.
**Daily cap: 25 sends per campaign per day on LinkedIn, 40 for email.** Past the cap, draft and
queue; do not send. Say so.
## 1. The ICP, in one paragraph
From the user's words (and memory_read if they have described their product or customers before),
write down: who the person is (title, seniority), what company (size, sector, geography, stack), the
trigger that makes now the moment (hiring, a launch, a funding round, a tech they use, a post they
wrote), and what the user offers them in one line. If the product itself is unclear, ask one
question and stop. Everything else you decide.
## 2. Finding people
In order of preference:
1. **A list the user gave** — a CSV/XLSX/Sheet or names in the message. Read it (read_file, or the
office-automation skill for .xlsx). Keep their columns.
2. **The web** — web_search for the ICP ("head of engineering" fintech Mumbai site:linkedin.com/in,
company "careers" pages, conference speaker lists, GitHub org members, Product Hunt makers). Take
the public profile URL, name, title, company.
3. **LinkedIn in the browser** — browser_navigate to a people search with the ICP's filters, then
browser_read_page. Only what is on screen; page through with browser_scroll. If the browser is
not logged in, say so and stop: the user signs in themselves (never ask for their password).
Stop at the number the user asked for, or 25 if they did not say. Deduplicate against the log.
## 3. Research, per person — this is the job
For each person, in under a minute of tools, find one specific, true, recent thing:
- their company's page (web_fetch): what they sell, a recent launch, a hiring post, a customer;
- their profile / a post / a talk / a repo (web_fetch or browser_read_page): what they care about;
- for a tech-stack ICP: a job listing naming the stack, or a GitHub repo.
Write the hook as one line in `why`: *"Hiring 3 backend engineers this month (careers page) — AI
pairing is a cost lever"*. If you cannot find anything specific and true, say so in `why` and use a
plain, honest opener; never invent a detail about a person.
## 4. The message
Under 500 characters for LinkedIn (a connection note is 300), 120 words for email. Structure:
1. the hook — the specific thing you found, in their words, one line;
2. the bridge — why that connects to what the user offers, one line, no adjectives;
3. the ask — one small, concrete next step (a 15-minute call this week / a reply / a look at a
link), with a way to say no.
Their name once, the user's name in the sign-off, no "I hope this finds you well", no "quick
question", no exclamation marks, no bullet lists, no links in the first LinkedIn message.
Write it in the language the person writes in. Vary sentence shape across the batch — twenty
messages that start the same way are spam and read as spam.
## 5. Review — the gate
`outreach_review` with the campaign, the channel and every draft (name, title, company, url, why,
message). The user ticks, edits and approves. Only the rows that come back are sent, with the
returned message text (they may have edited it). If it comes back cancelled, ask what to change
and stop.
## 6. Sending, one at a time, at a human pace
For each approved row, in order:
- **LinkedIn:** browser_navigate to the profile url; browser_read_page; click "Message" (or
"Connect" → "Add a note" for a connection request); browser_type the message into the composer;
browser_screenshot and read it back — the text must match the approved draft exactly; click Send.
If the page shows a limit, a captcha, a "not connected" wall or anything unexpected: stop, log
`failed` with the reason, and tell the user. Do not work around it.
- **Email:** only through a mail tool the user connected (an MCP server or the Gmail/Outlook web
app in the browser, signed in by them). Subject under 6 words, the message as the body.
- After each send: `outreach_log` with status `sent` (or `failed`), then wait 45–90 seconds
(run_command `Start-Sleep -Seconds 60` on Windows, `sleep 60` elsewhere) before the next one.
Never parallelise sends.
## 7. Report
One short table: name · company · status · hook used. Then what to do next: replies to watch for
(the user can ask you to check the inbox / LinkedIn messages tomorrow), who was queued past the
cap, and anyone skipped and why. Offer to set this up as a worker if they want it daily.
## Never
- Send without outreach_review, or send a message different from the approved text.
- Scrape beyond what is on screen, use a bought list without saying so, or invent a fact about a
person to sound personal.
- Log in, enter credentials, or solve a captcha — the user does those.
- Exceed the daily cap, or send outside the person's working hours if you know their timezone.From Tecosys/Nutaan-Code, AGPL-3.0.
More from Tecosys/Nutaan-Code
- 0.547score
api-security-testing
Tecosys
Security-test a REST, GraphQL, or gRPC API — enumerate endpoints from an OpenAPI/GraphQL/Postman schema (or by crawling), then actually exploit the…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
auth-testing
Tecosys
Test authentication, session, and access control on an authorized target — the login/admin bypass steps of a penetration test.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
owasp-top-10-testing
Tecosys
Test an application against the OWASP Top 10 — attempt real exploits for each category of the current OWASP Top 10:2025 (broken access control including SSRF…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ci-security-scanning
Tecosys
Add automated security scanning to CI/CD — GitHub Actions, GitLab CI, or any pipeline — so every pull request is checked for vulnerabilities before it merges…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
find-security-vulnerabilities-in-code
Tecosys
Find security vulnerabilities in a codebase or repository — a white-box security review that reads the source, reasons about the actual data flow and…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
fix-security-vulnerabilities
Tecosys
Fix security vulnerabilities found in a pentest or code review — triage by severity, patch the root cause rather than the symptom, and re-run the exploit to…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
impeccable
Tecosys
The taste layer for every interface Nutaan Code designs or builds — websites, landing pages, dashboards, product UI, app screens, components, forms…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
nutaan-design
Tecosys
How Nutaan Code turns a request into a design — reading what the user actually asked for (their words, any screenshots or images they attached, the project…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
osint-recon
Tecosys
Perform open-source intelligence (OSINT) reconnaissance on domains, hosts, usernames, emails, or organizations.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
application-security-testing
Tecosys
Application security testing (AppSec) across a whole product — decide which asset needs which test (source code, running web app, API, CI pipeline), run it…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
penetration-testing
Tecosys
Run an authorized penetration test end to end — recon, mapping, exploitation, validation, and reporting.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
exploit-validation
Tecosys
Turn a suspected vulnerability into a proven one with a minimal, safe proof-of-concept — so the report contains working exploits, not false positives.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Sep 20, 2026 (1 month ago)
- Last release
- Sep 20, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/Tecosys/Nutaan-Code
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Tecosys
- 0.547score
api-security-testing
Tecosys
Security-test a REST, GraphQL, or gRPC API — enumerate endpoints from an OpenAPI/GraphQL/Postman schema (or by crawling), then actually exploit the…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
auth-testing
Tecosys
Test authentication, session, and access control on an authorized target — the login/admin bypass steps of a penetration test.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
owasp-top-10-testing
Tecosys
Test an application against the OWASP Top 10 — attempt real exploits for each category of the current OWASP Top 10:2025 (broken access control including SSRF…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
ci-security-scanning
Tecosys
Add automated security scanning to CI/CD — GitHub Actions, GitLab CI, or any pipeline — so every pull request is checked for vulnerabilities before it merges…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
find-security-vulnerabilities-in-code
Tecosys
Find security vulnerabilities in a codebase or repository — a white-box security review that reads the source, reasons about the actual data flow and…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
fix-security-vulnerabilities
Tecosys
Fix security vulnerabilities found in a pentest or code review — triage by severity, patch the root cause rather than the symptom, and re-run the exploit to…
SkillBFreshness: B★ 1Claude Code +9
Cite this page
outreach skill. Agent Mart. https://agentmart.dev/skills/tecosys-outreach (last updated 2026-10-24)