Agent skill

Recall Outreach

by CALLE-AI in CALLE-AI/awesome-phone-call-agents

Contact affected customers about a product recall or corrective notice with CALL-E.

MITAuto-check passed

Install Recall Outreach

skills CLI
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill recall-outreach -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CALLE-AI/awesome-phone-call-agents recall-outreach --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/recall-outreach .claude/skills/recall-outreach && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
recall-outreach
GitHub stars
107
Token cost
~3.7k tokens
SKILL.md length
1,625 words
Files
10 (incl. scripts, references, assets)
Skills in repo
101
Repo updated
First seen
Licence
MIT

At a glance

Contact affected customers about a product recall or corrective notice with CALL-E.

  • Works in 10 steps: Credentials. A server-side CALLE_API_KEY… → Approved wording exists, is non-empty,… → Voicemail wording exists and is… → …
  • SKILL.md covers When To Use, When Not To Use, The Rule This Skill Exists To… and Required Inputs, plus 10 more sections
  • Runs JavaScript scripts from its folder; calls node; reaches api.heycall-e.com; needs CALLE_API_KEY

What it does

Recall Outreach is an agent skill from CALLE-AI/awesome-phone-call-agents. Contact affected customers about a product recall or corrective notice with CALL-E. Relays only organisation-approved wording, dispatches a wave as one batch with a strict per-recipient result schema, routes every unapproved question to a human, and never treats a completed call as a completed recall.

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts, reference files and assets (for example `assets/sample-campaign.json`, `assets/sample-result-arranged.json` and `assets/sample-result-escalated.json`).

The repository describes itself as: Portable phone-call Agent Skills, apps, examples, adapters, and scheduler recipes for AI agents. The licence is MIT.

Example prompts

  • “/recall-outreach”

Requirements

  • Node.js
  • A credential in CALLE_API_KEY

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Credentials. A server-side CALLE_API_KEY and an https webhook origin. Without them,
  2. Approved wording exists, is non-empty, and is attributed to a named approver.
  3. Voicemail wording exists and is separate. Scan it for product-identifying tokens — model
  4. At least one return option is configured. Zero approved answers is allowed, but warn that
  5. Escalation contact is named.
  6. Quiet hours in the customers' timezone. Let a campaign narrow the window, never widen it
  7. Consent. Every recipient needs an unrevoked authorisation record naming its source. No
  8. Duplicates. Enforce phone uniqueness per campaign as a database constraint. Nobody is
  9. Retry cap per recipient, counted only after CALL-E actually accepts a call.
  10. Kill switch not engaged.

What it can do on your machine

Read from SKILL.md and the folder at commit 38d4118. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.heycall-e.com

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CALLE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Recall Outreach loads about 3.7k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 80 tokens; SKILL.md has 1,625 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from CALLE-AI/awesome-phone-call-agents at commit 38d4118, republished under its MIT licence (© CALLE-AI). 1,625 words, ~3,703 tokens.

Download SKILL.mdSave it as .claude/skills/recall-outreach/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
recall-outreach
description
Contact affected customers about a product recall or corrective notice with CALL-E. Relays only organisation-approved wording, dispatches a wave as one batch with a strict per-recipient result schema, routes every unapproved question to a human, and never treats a completed call as a completed recall.
license
MIT

Recall Outreach

Use this skill when an organisation has issued a product recall or corrective notice and needs to reach a list of affected customers by phone: read the approved notice, find out whether each person still has the item, offer the return options the business actually runs, and record what each person said in a form someone can audit later.

This is the reusable core of RecallRoute: the approved-wording contract, the batch call plan, a strict recipient_result_schema, the idempotency and webhook reconciliation rules, and — most importantly — the metric model that refuses to report a completed call as a completed recall.

When To Use

  • An organisation has approved recall or corrective-notice wording and needs to relay it by phone
  • The customers are known, and there is a recorded basis for contacting each of them
  • The desired output is a per-customer structured outcome plus a human queue for everything the approved material does not cover

When Not To Use

  • Any call where the safe next step is not already decided and written down. This skill relays approved wording; it cannot decide what a customer should do about a hazardous item.
  • Emergency notification, injury response, or anything time-critical to physical safety. Never call emergency services.
  • Cold outreach, marketing, upselling, or collections dressed as a notice
  • Calling anyone the organisation has no recorded authorisation to contact
  • Mass-scale dialling. Keep waves small and supervised.
  • Any workflow that needs a call cancelled after dispatch — the CALL-E Calls API has no cancel endpoint, so a kill switch can only stop further waves. Say so plainly in your UI.

The Rule This Skill Exists To Enforce

A completed call is not a completed recall.

A recall is finished for a customer when the item is physically back, not when a phone call went well. Any implementation of this skill must keep those as separate states, and the second must be reachable only by a named human recording how they know. If you build one boolean called contacted and set it from a completed call, you have built the thing this skill is designed to prevent.

Report these as separate measures with separate denominators, never merged:

MeasureDefinition
Call attemptedCALL-E accepted a call task containing this recipient
Call completedThe call task reached completed on GET /v1/calls
Result validatedA per-recipient result satisfying the full schema came back
Right person reachedright_person_reached is exactly yes
Notice understoodThe reached person confirmed understanding, in their own words
Next step selectedThe reached person chose a real return option
Independently resolvedA human confirmed the physical return, and said how they know

Required Inputs

  • campaign_id: stable identity, e.g. RC-2026-001
  • org_name: the organisation the assistant says it is calling for, in its first sentence
  • product_label: what the item is called out loud
  • product_identifier: model, lot, or SKU — for the record, not for reading to voicemail
  • approved_notice: the exact wording the organisation approved, read verbatim
  • voicemail_text: a separate, minimal message for answering machines
  • approved_answers[]: {question, answer} — the only questions the assistant may answer
  • allowed_next_steps[]: subset of pickup_request, mail_return, store_return, callback
  • approved_by: the person who signed off the wording
  • timezone (IANA) and calling_window (HH:MM–HH:MM) in the customers' local time
  • escalation_contact: a human, for the follow-up queue. Never dialled by the assistant.
  • recipients[]: customer_ref, phone_e164, item_identifier, consent_basis, consent_source

See assets/sample-campaign.json for a fictional example using NANP test-range numbers.

Preflight

Run every check below on the server, at the moment of launch — not when the checklist was rendered. A green checklist from a minute ago authorises nothing.

  1. Credentials. A server-side CALLE_API_KEY and an https webhook origin. Without them, block launching. Never fall back to a simulated result.
  2. Approved wording exists, is non-empty, and is attributed to a named approver.
  3. Voicemail wording exists and is separate. Scan it for product-identifying tokens — model codes, lot numbers, distinctive product nouns — and warn when found. Exempt the organisation's own name; identifying the caller is required.
  4. At least one return option is configured. Zero approved answers is allowed, but warn that every question will escalate.
  5. Escalation contact is named.
  6. Quiet hours in the customers' timezone. Let a campaign narrow the window, never widen it past a deployment-wide floor. Treat an invalid timezone as a blocker, not as UTC.
  7. Consent. Every recipient needs an unrevoked authorisation record naming its source. No record, no call.
  8. Duplicates. Enforce phone uniqueness per campaign as a database constraint. Nobody is called twice about one notice.
  9. Retry cap per recipient, counted only after CALL-E actually accepts a call.
  10. Kill switch not engaged.

Dispatch: one wave is one batch

Send the wave as a single call task with every recipient in the recipients array.

POST https://api.heycall-e.com/v1/calls
Authorization: Bearer $CALLE_API_KEY
Idempotency-Key: recall-outreach:{campaign_id}:wave{n}:outreach:v1
json
{
  "task": "<see template below>",
  "recipients": [{ "phones": ["+15005550101"], "locale": "en-US", "region": "US" }],
  "recipient_result_schema": { "...": "see references/result-schema.json" },
  "metadata": {
    "campaign_id": "RC-2026-001",
    "call_task_id": "RC-2026-001:wave1:outreach",
    "wave_no": 1,
    "kind": "outreach"
  },
  "webhook_url": "https://your-app.example.com/api/webhooks/calle"
}

Put no customer identity in metadata — campaign and wave correlation only. CALL-E already has the number it must dial; nothing else about the person is the provider's business.

Two consequences of batching to design around:

  1. task is shared, so it cannot contain any one customer's name, order number, or serial number. Treat this as a feature: have the assistant ask the person to confirm they are the right person rather than asserting who they are. It is the safer identification method and it discloses nothing to whoever answers.
  2. metadata is per call task, so the only per-recipient join key returned is the phone number. This is why phone uniqueness must be a constraint, not a convention. Match on normalised digits, with dispatch order as a fallback.

Persist the returned call_id before showing anything as started, and create one pending outcome row per dialled recipient at the same time, so every person dialled is accounted for even if the provider never returns a result for them.

CALL-E Task Template

text
You are an automated voice assistant calling on behalf of {org_name}. Say so in your first
sentence, and say you are calling about a product notice. Do not claim to be a person.

The organisation has issued a notice about {product_label} ({product_identifier}). Your job is
to reach the customer, read the approved notice to them, check what they want to do, and record
their answers accurately. You are a messenger, not an adviser.

First, ask whether you are speaking with the person who bought or uses this product, or the
person in the household who looks after it. Do not say any customer name, order number, or
serial number: you have not been given them and you must not guess. If the person who answers
is not the right person and cannot help, say a person from the organisation will follow up,
thank them, and end the call.

Once you have the right person, read this approved notice exactly as written, without changing
its meaning: "{approved_notice}"

Then find out, without pressing them: do they recognise this product; do they still have it, or
did they already return it, give it away, or throw it away; did they understand the notice and
what to do next; which of the options below they would like; and whether they have a preferred
day or time for it.

Offer exactly these options and no others: {phrased_next_steps}. Read them out and let the
person choose. Do not recommend one over another, and do not invent an option such as a refund,
a replacement, or a repair unless it is written above.

These are the ONLY answers you are permitted to give. Use the wording as closely as you can:
{approved_answers}
Anything not on this list is outside what you may answer, no matter how simple it sounds or how
confident you feel.

If you reach voicemail or an answering machine, leave only this short message and nothing more:
"{voicemail_text}" Do not read the full notice, do not describe the product problem, and do not
leave any detail about the item on a voicemail, because you cannot know who will hear it.

Hard rules you must follow: {boundaries — see references/safety.md}

Before ending, tell the person what will happen next in plain terms, and make clear that
arranging this is not the same as it being completed: someone from {org_name} will confirm the
arrangement. Thank them for their time.

The full boundary list is in references/safety.md. Every one of them has a matching detection or enforcement path; they are not decoration.

Show full SKILL.md (655 more words)Show less

Result Schema

references/result-schema.json, with additionalProperties: false and every field required. Narrow selected_next_step's enum to the options that campaign actually offers, so CALL-E structurally cannot return a return channel the business does not run. Always keep none and unknown available — they are honest answers.

Validate offline with:

bash
node scripts/validate-result.mjs assets/sample-result-arranged.json
node scripts/validate-result.mjs assets/sample-result-escalated.json
node scripts/validate-result.mjs assets/sample-result-invalid.json   # exits non-zero

Terminal Events And Reconciliation

Handle call.completed, call.failed, and call.result_validation_failed at your webhook.

  1. Require CALL-E-Event-Id and require it to match the body id.
  2. Reserve the event id before any side effect — make it a primary key. A duplicate delivery must be a no-op that cannot dial anyone again or queue a second follow-up.
  3. Re-fetch with GET /v1/calls/{call_id} using your own key. CALL-E sends no signature today, so treat the body as untrusted: it tells you which call changed; the fetched snapshot is what changes customer status.
  4. If the fetched call is not terminal, return non-2xx and let the provider retry rather than applying a contradiction.
  5. Fan the snapshot out to one outcome per dialled recipient, validating each independently so one unusable answer never contaminates the others.
  6. Return non-2xx for an unknown call id, so the race between CALL-E accepting a call and your transaction committing resolves by retry.

Also poll GET /v1/calls/{call_id} for open waves on a schedule. A lost webhook should cost latency, not truth.

Interpreting A Result

Provider stateRecord asMay count toward
Valid, complete resultvalidits funnel stages
Result present, schema-violatinginvalidnothing above "call completed"
Completed call, no resultmissingnothing above "call completed"
Failed or canceled callmissing"attempted" only

unknown is never agreement. An empty string is never an answer.

Route to a human on any of: a non-empty questions; human_follow_up_required = yes; contact_outcome = escalate; certainty of low or unknown where someone was reached; right_person_reached = unknown; a schema-violating result; a failed call.

Do not route a clean miss to a human. right_person_reached = no with certainty = unknown is a voicemail or wrong number — that is not reached, and treating it as ambiguity will flood the queue with every unanswered call. This is a real mistake that is easy to make; the distinction is between "we did not reach them" and "we are not sure what happened."

Make the follow-up queue idempotent: unique on (outcome_id, reason), so a retried webhook cannot queue duplicate human work.

Approval-Gated Follow-Up

A narrowly scoped scheduling follow-up is permitted: confirming the day or window for a step the customer already chose. It requires an explicit human approval, an explicit stated purpose, and an explicit recipient list, and it re-runs every preflight gate.

It may not re-read the notice, change the chosen option, or answer anything new. If the customer raises something else, the call ends and it becomes human work.

Side Effects, Credentials, Cancellation

  • Side effects: real outbound calls to authorised numbers only. Nothing is collected, shipped, refunded, or confirmed automatically.
  • Credentials: server-side CALLE_API_KEY only. Never in skill files, never in the browser.
  • Cancellation: there is no cancel endpoint. A kill switch blocks further waves; calls already accepted will finish. Say this in your UI rather than implying otherwise.
  • Personal data: mask phone numbers everywhere except the database and the CALL-E request. Provide a retention control that erases names, numbers, item identifiers, and transcripts while keeping call ids, event ids, and statuses, so the organisation can still prove what happened without keeping what proved it.

Auditability

Every customer status must trace to a provider call id, and where a webhook arrived, to a provider event id. Statuses set by a human — the only kind that can exist without a call — should say so explicitly and name the person. Export the exact task text and result schema used on each wave, so an auditor can read precisely what was said and what was asked for.

References

  • references/result-schema.json — the strict schema
  • references/safety.md — the full boundary list and why each exists
  • references/examples.md — worked outcomes: arranged, escalated, not reached, invalid
  • assets/sample-campaign.json — a fictional campaign
  • scripts/validate-result.mjs — offline result validator

© CALLE-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (scripts, references, assets) in skills/recall-outreach of CALLE-AI/awesome-phone-call-agents.

  • SKILL.md
  • assets/sample-campaign.json
  • assets/sample-result-arranged.json
  • assets/sample-result-escalated.json
  • assets/sample-result-invalid.json
  • assets/sample-result-not-reached.json
  • references/examples.md
  • references/result-schema.json
  • references/safety.md
  • scripts/validate-result.mjs

Open the folder on GitHubat commit 38d4118

Compare with similar skills

Recall Outreach next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Recall Outreach compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Recall Outreach this skillCALLE-AI/awesome-phone-call-agents107—~3.7kAutomated safety check: PassMIT
Investor Outreachaffaan-m/ECC277k6 repos~664Automated safety check: PassMIT
Customizeanthropics/claude-for-legal9.6k4 repos~1.2kAutomated safety check: PassApache-2.0
Customizeanthropics/claude-for-legal9.6k3 repos~1.2kAutomated safety check: PassApache-2.0
Customizeanthropics/claude-for-legal9.6k3 repos~1.2kAutomated safety check: PassApache-2.0
Customizeanthropics/claude-for-legal9.6k3 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Investor Outreach

    affaan-m/ECC

    Draft cold emails, warm intro blurbs, follow-ups, update emails, and investor communications for fundraising.

    277k GitHub starsUsed in 6 repos~664 tokens
    Business, Finance & HRAuto-check passed
  • Customize

    anthropics/claude-for-legal

    Official

    Guided customization of your IP practice profile — change one thing without re-running the whole cold-start interview.

    9.6k GitHub starsUsed in 4 repos~1.2k tokens
    Legal & ComplianceAuto-check passed
  • Customize

    anthropics/claude-for-legal

    Official

    Guided customization of your corporate practice profile — change one thing without re-running the whole cold-start interview.

    9.6k GitHub starsUsed in 3 repos~1.2k tokens
    Legal & ComplianceAuto-check passed
  • Customize

    anthropics/claude-for-legal

    Official

    Guided customization of your litigation practice profile — change one thing without re-running the whole cold-start interview.

    9.6k GitHub starsUsed in 3 repos~1.2k tokens
    Legal & ComplianceAuto-check passed
  • Customize

    anthropics/claude-for-legal

    Official

    Guided customization of your privacy practice profile — change one thing without re-running the whole cold-start interview.

    9.6k GitHub starsUsed in 3 repos~1.1k tokens
    Legal & ComplianceAuto-check passed
  • Customize

    anthropics/claude-for-legal

    Official

    Guided customization of your legal clinic profile — change one thing without re-running the whole cold-start interview.

    9.6k GitHub starsUsed in 3 repos~1.2k tokens
    Auto-check passed

More from CALLE-AI/awesome-phone-call-agents

All 101 skills in this repo
  • Accessible Outing Verifier

    CALLE-AI/awesome-phone-call-agents

    Demonstrates advisory accessibility-planning checks with offline fixtures and a proposed bounded CALL-E workflow; use for exploring unknown or qualified venue claims without making calls.

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Ground Truth Gate

    CALLE-AI/awesome-phone-call-agents

    A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…

    107 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Is It Accessible

    CALLE-AI/awesome-phone-call-agents

    Call a venue and ask the accessibility questions that matter to one specific person — step-free entry, hearing loop, guide dogs, quiet hours, changing places — then return a per-need verdict backed…

    107 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Landmark Navigation Assist

    CALLE-AI/awesome-phone-call-agents

    Turns a pre-written, building-level location config into a CALL-E outbound phone-call task that guides a delivery driver through the last few hundred metres to a specific building using landmarks…

    107 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Research Gap Call Verifier

    CALLE-AI/awesome-phone-call-agents

    Turn cited business research into a bounded, approval-gated phone-call plan that asks only unresolved factual questions, then reconcile CALL-E-compatible results without treating voicemail, refusal…

    107 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Structured Outcome Followup Call

    CALLE-AI/awesome-phone-call-agents

    Place a goal-driven CALL-E call that collects specific structured answers, score those answers against a deterministic rubric you supply, and conditionally trigger a follow-up action — all runnable…

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Recall Outreach

What does Recall Outreach do?

Contact affected customers about a product recall or corrective notice with CALL-E. Recall Outreach is an agent skill from CALLE-AI/awesome-phone-call-agents. Contact affected customers about a product recall or corrective notice with CALL-E.

How do I install Recall Outreach in Claude Code?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill recall-outreach -a claude-code`. Or copy the skill folder (skills/recall-outreach in CALLE-AI/awesome-phone-call-agents) into .claude/skills/recall-outreach in your project. Claude Code loads it when a task matches its description.

How do I install Recall Outreach in Codex?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill recall-outreach -a codex`. Or copy the skill folder (skills/recall-outreach in CALLE-AI/awesome-phone-call-agents) into .agents/skills/recall-outreach in your project. Codex loads it when a task matches its description.

Can I use Recall Outreach in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CALLE-AI/awesome-phone-call-agents --skill recall-outreach -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recall-outreach, .gemini/skills/recall-outreach, .github/skills/recall-outreach and .opencode/skills/recall-outreach in your project.

What does Recall Outreach need to run?

Going by SKILL.md and its folder, Recall Outreach needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node) and credentials named CALLE_API_KEY. Our summary lists: Node.js; A credential in CALLE_API_KEY.

Does Recall Outreach access the network?

SKILL.md names 2 domains. In commands or code: api.heycall-e.com; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Recall Outreach safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Recall Outreach use?

Recall Outreach is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Recall Outreach use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.1k tokens, read only when the agent opens those files.

What are the alternatives to Recall Outreach?

Skills that share tags, products or a category with Recall Outreach: Investor Outreach (affaan-m/ECC, 277k stars), Customize (anthropics/claude-for-legal, 9.6k stars), Customize (anthropics/claude-for-legal, 9.6k stars) and Customize (anthropics/claude-for-legal, 9.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Recall Outreach?

CALLE-AI (a GitHub organization) maintains it in CALLE-AI/awesome-phone-call-agents, which has 107 GitHub stars. The repository holds 101 skills in this directory. The repository was last updated on October 10, 2026.

Source: CALLE-AI/awesome-phone-call-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.