AP
Agent Provider Depot
Opinionated picks for agents
OpenAPI

Kit · 2026-10-03

Sales and outreach agent

sales-outreach

Drafts outreach from sourced fields about a person or account, and does not send until a person approves.

Needs below are the JTBD ids already listed on this class, capped at 6. The pick is the current Depot Pick. The cheapest line is that job's matching sourced SKU, or unavailable. A free row is listed only when its jtbd ids include that job. This page does not rescore. Agents that cannot spend use ?cost=free and must not treat the paid pick as free.

GET /api/kit?class=sales-outreach · ?cost=free · all kits · class JSON

First actions

  1. /api/hub
  2. /api/decide?jtbd=people-enrichment
  3. /api/quote?jtbd=people-enrichment
  4. /api/kit?class=sales-outreach
  5. /api/failures

Needs

Jobs: people-enrichment, marketing-email, outbound-webhooks

Class freeKinds field (not used to attach free rows): free_docs

  • Human approval before send
  • Fields must come from a cited source

people-enrichment

Depot Pick: people-data-labs · score as of 2026-09-14 · /api/jtbds/people-enrichment

Depot Pick for people-enrichment: people-data-labs (asOf 2026-09-14). See GET /api/jtbds/people-enrichment + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: unavailable — Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Free resources

freeMatch: none

none

marketing-email

Depot Pick: sendgrid · score as of 2026-09-14 · /api/jtbds/marketing-email

Depot Pick for marketing-email: sendgrid (asOf 2026-09-14). See GET /api/jtbds/marketing-email + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: sendgrid · Marketing Campaigns Basic 100K extra email or contact · 0.0023 usd_per_email · not a per-million-token rate. min sourced marketing usd_per_email among candidates; page unit is per extra email or contact, not per 1k and not per contact-month; not converted from a monthly plan; transactional email SKUs were not ranked; monthly plans were not ranked; not quality-adjusted

Only 1 candidate has a matching USD per email; nothing was compared, so pickIsPriceWinner is null.

Free resources

freeMatch: none

none

outbound-webhooks

Depot Pick: svix · score as of 2026-09-14 · /api/jtbds/outbound-webhooks

Depot Pick for outbound-webhooks: svix (asOf 2026-09-14). See GET /api/jtbds/outbound-webhooks + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: svix · Additional messages · 0.0001 usd_per_message · not a per-million-token rate. min sourced usd_per_message among candidates; monthly plans were not ranked; per-100k messages and per-million events were not converted

Only 1 candidate has a matching USD per message; nothing was compared, so pickIsPriceWinner is null.

Free resources

freeMatch: none

none

Failure modes

  • Identity confusion identity-confusion

    Bind every tool call to a user or tenant id. Refuse the call if that id changed mid-task. For a public bot, the operator owns the words the bot shows.

  • Confirmation skip confirmation-skip

    Gate those tool names on an approval id recorded before the call. A missing approval is a failure even if the downstream tool returns success.

  • Runaway spend runaway-spend

    Set a budget and a tool-call cap per task. Alert when spend jumps. Stop the run at the cap instead of summarizing a partial trace as success.

  • Stale retrieval stale-retrieval

    Store the source URL and the time it was fetched. If a newer canonical page exists, or two stored sources disagree, do not answer from the older one.

  • Policy conflict policy-conflict

    If cited sources contradict each other, return the conflict and the URLs. Do not pick a winner silently.

  • Ungrounded answer ungrounded-answer

    Require a source URL or passage id on factual sentences. Drop or mark any sentence whose source does not contain the claim.

  • Prompt injection prompt-injection

    Compare each tool call to the original user task. If the call only makes sense given text that arrived from a fetched page, file, or message, stop and ask. Record which source the instruction came from. This catalog does not store payloads or attack steps.

Case studies

1 related.

/api/case-studies?class=sales-outreach