TASK RECIPE

Research a SaaS company before a sales call.

The hour before a discovery call, or right before writing a personalized outreach email.

  • Maps to 1 skill: company-research
  • Install command verified
  • Copy-paste prompt
Install company-research →

When to use it

Run this when the job is already on your plate.

Who it is for

Sales reps, founders, and RevOps teams who need to sound informed on a discovery call without spending an hour reading a website.

When to run it

The hour before a discovery call, or right before writing a personalized outreach email.

Install

One command, one prompt.

Install the canonical company-research skill, then hand your agent the prompt below. You can also call the underlying endpoints directly with curl.

Capability: Company Research skill →

Install

npx skills add replynodes/replynodes-agent-skills/skills/company-research

Prompt

I have a sales call with Linear next. Use the company-research skill on linear.app and give me a cited brief: what they do, who they serve, how they position themselves, and any public pricing signal. Use the free Markdown and Brand endpoints first, keep each claim linked to its source URL, and mark anything you cannot verify as unknown.

Verified example

Small input, real output.

Free baseline: two zero-auth reads feed the skill. The brief itself is synthesized by your host agent against the company-brief contract.

Input
npx skills add replynodes/replynodes-agent-skills/skills/company-research
curl --fail-with-body 'https://md.replynodes.com/linear.app/'
curl --fail-with-body 'https://brand.replynodes.com/linear.app.json'
Output
GET https://md.replynodes.com/linear.app/  → 200 OK · text/markdown
GET https://brand.replynodes.com/linear.app.json → 200 OK · application/json

// Company brief (compact, keyless) — fields per references/company-brief-contract.md
{
  "brief_version": "1.0",
  "company": { "domain": "linear.app", "name": "Linear", "homepage_url": "https://linear.app" },
  "summary": {
    "one_liner": { "value": "...", "evidence_ids": ["homepage"] },
    "category": { "value": "Software company.", "evidence_ids": ["homepage"] },
    "positioning": { "value": "...", "evidence_ids": ["homepage"] }
  },
  "pricing": { "model": { "value": null, "evidence_ids": ["pricing-unknown"] }, "plans": [], "unknown": true },
  "evidence": [{ "id": "homepage", "source_url": "https://linear.app/", "kind": "first_party",
                 "fetched_at": "2026-10-04T03:15:34Z", "excerpt_or_support": "Homepage Markdown fetch succeeded." }],
  "claim_evidence": [{ "claim_path": "summary.category", "evidence_ids": ["homepage"] }],
  "coverage_limits": ["No grounded pricing evidence succeeded from a pricing-designated page; pricing is unknown."],
  "meta": { "synthesis": "host_agent", "page_read_count": 1, "page_read_budget_default": 12, "page_read_budget_hard_cap": 20 }
}

Free vs authenticated

Know exactly where the free path ends.

Free / no key

The baseline needs no account or API key: read the homepage through md.replynodes.com and the brand kit through brand.replynodes.com.

Authenticated enrichment

Optional ReplyNodes API key adds web_search, webcontext_map, webcontext_scrape, and webcontext_crawl through the authenticated MCP surface for site mapping and targeted scraping.

Evidence behavior

Every material claim is a claim object linked to an evidence id; each evidence record keeps its exact source URL, kind (first_party/third_party), retrieval time, and a bounded excerpt. Missing facts stay unknown, and meta.synthesis is always host_agent.

Install company-research.

Install the canonical skill, then run the prompt above. Each recipe maps to exactly one skill.