← All skills
  • General
  • v1.0.0
  • research

Research

Researches a company, person, buying committee, signal, domain, stack, financial context, or competitor mention. Produces a focused answer with sources and confidence notes.

SKILL.md

Instructions

Research is target-driven and doesn't require org config to function — there's no state-hint paragraph and no Setup.md. The agent just routes to the right sub-page and runs.

Step 1 — Parse the ask, pick the sub-page

Route based on what the user is asking about. Load the sub-page via swan-get-skill.

Ask shape Sub-page
Generic company / one company / "what does X do" / "/research acme" Company
Named person — "/research tom from acme", "tell me about Jane Doe" Person
Mapping the people inside one account — buying committee, who to thread to AccountTeam
How does the target sell / their GTM / pricing posture GTMmotion
What's recent / news / signals / last-30-days News
Domain-level / web traffic / SEO / digital footprint Domain
Financial health / funding / revenue / runway / ownership Financial
Tech stack only — what tools do they run TechStack
Where the target talks about competitors / displacement signals CompetitorMentions

If the ask is ambiguous (e.g. just a company name with no further context), default to Company. If the ask explicitly chains multiple facets ("research acme — company plus the buying committee"), it's fine to load two sub-pages — but always pick a primary.

Step 2 — Pick the depth

Most asks want a one-paragraph answer; some want a dossier. Read the user's phrasing:

  • "/research acme" / "what does acme do" → brief read (3–5 lines, the essentials).
  • "deep brief on acme" / "full dossier" / pre-meeting prep with a VP+ → run the sub-page end-to-end.
  • "quick — is acme an ICP fit" → micro-answer, one paragraph.

Default to brief. Scale up only when the user signals depth, or when the situation (board prep, founder intro, executive outreach) demands it. Over-researching when a sentence would do is the most common failure mode.

Step 3 — Load the sub-page and execute

The sub-page owns the procedure for its facet. Follow it.

Across all sub-pages, the same cheap-before-expensive pattern applies:

  • check what Swan already has (swan-search-companies, swan-get-memory, prior briefs)
  • check the CRM if connected
  • reach for free preview tools (swan-fetch-scraped-url, swan-fetch-businesses, swan-website-traffic, swan-fetch-business-events) before paid enrichment
  • enrich (swan-enrich-company, swan-enrich-contact) only when the cheap signals left a real gap

Step 4 — Output shape

Default to a structured short summary, not raw scraped data. Every sub-page ends with a composed block — follow its shape. Always:

  • Cite sources inline (e.g. "via swan-website-traffic", "from LinkedIn post 2026-05-03", "press").
  • Flag confidence on soft signals (high / medium / low based on signal density).
  • Surface the highest-signal finding first. Don't bury the lede in a wall of context.
  • Tag the company in Swan via swan-update-company when the research produced a durable fact worth reusing (financial state, tech stack, motion type) so the next play inherits it.

What good looks like

  • Right depth for the ask. A one-paragraph answer when a paragraph is enough; a full dossier when the stakes justify it. Reading the room beats running every facet.
  • Sources cited, confidence flagged. Every claim points to a tool result, a URL, or a CRM record. Soft signals (inferred revenue, motion type, runway) carry an explicit "est" or "looks like" — never stated as fact.
  • Lede first. The user sees in 30 seconds what they came for. The strongest hook is line one of the output, not buried below firmographics.
  • Knows when to stop. If business events covered the surface area, no more web fetches. If a person has no public profile, the dossier says so and ends.

What gets overlooked:

  • Over-researching. Running every sub-page when only one matters. Running the deep flow when a brief was the right call.
  • Treating all signals as equal-confidence. Headcount × industry-avg as a revenue figure stated like a fact. Inferred motion stated without hedge.
  • Raw dumps. Pasting 40 LinkedIn posts, 200 keywords, or the full enrichment payload into the chat. Synthesize, then summarize.

Rules

  • MUST pick a single sub-page per call unless the user explicitly asks for multi-facet research.
  • MUST cite sources inline and flag confidence on soft signals.
  • MUST check the free preview tools (swan-fetch-scraped-url, swan-fetch-businesses, swan-website-traffic, swan-fetch-business-events) before chaining paid enrichments.
  • MUST tag the company in Swan with any durable fact (motion type, financial state, detected stack, ICP fit) the research produced.
  • NEVER produce a raw dump. Always synthesize into the sub-page's composed output shape.
  • NEVER invent quotes, beliefs, financials, or priorities not present in the source.
  • NEVER chain swan-enrich-company or swan-enrich-contact calls without first checking what Swan and the CRM already have.
  • If a tool result is truncated, read the JSON from files/tool-outputs/<toolName>_<callId>.json in swan-execute-code and summarize from there.

Specificity sub-pages this skill will grow

Shipped today:

  • Company — general company research (the default landing for "/research acme")
  • Person — full dossier on a named person
  • AccountTeam — buying-committee mapping inside one account
  • GTMmotion — how the target sells today
  • News — last-30-days signal scan
  • Domain — digital footprint, traffic, SEO posture
  • Financial — funding history, ownership, runway, pressure
  • TechStack — detected tools by category
  • CompetitorMentions — public mentions of a named competitor

Accreted over time as use cases sharpen:

  • AcquisitionTargets — research for M&A or partnership shortlists
  • CustomerHealth — research framing for an existing customer (expansion / churn risk)
  • IndustryDeepDive — a whole vertical, not one account
  • Investor — partner / fund research
  • Board — board prep on a director or chair

Files

10 files ship with this skill. They are installed beside the SKILL.md.

NOTICE1.4 KB
Research
Imported from the GTM Skills library by Swan (https://www.gtmskills.com), skills/ido-goldberg/research
at https://github.com/swan-gtm/gtm-skills/commit/5d786aad0c7b2ca59b1abf1f601f9407ca261996. Written by Ido Goldberg (https://www.linkedin.com/in/ido-goldberg-ab1590b0/).
The skill is shared under the MIT License below; this notice must stay with any copy.

MIT License

Copyright (c) 2026 Swan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.