Best for
- negotiating or lowering a bill, waiving a fee, or matching a competitor offer
- cancelling a subscription or membership past the retention runaround
- chasing a stuck refund or disputing a charge
CALLE-AI/awesome-phone-call-agents/skills/ringer-consumer-tasks/SKILL.md
Handle the dreaded consumer phone calls — negotiate a bill, cancel a subscription, chase a refund, book an appointment, get a price quote, or ask a business a question — by turning a few fields into a precise CALL-E task and a strict structured-result schema, previewing as a dry run, and placing the call only with explicit consent. Includes a Quote Shootout batch mode that calls several businesses and returns per-business results plus a ranked comparison.
Decision brief
Use this skill when a person wants an AI agent to make a real-world consumer phone call on their behalf and hand back a clean, structured outcome — the new monthly price, a cancellation confirmation number, the booked time, the refund amount, the quote. It packages the prompt-en…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/CALLE-AI/awesome-phone-call-agents --skill "skills/ringer-consumer-tasks"Inspect the Agent Skill "ringer-consumer-tasks" from https://github.com/CALLE-AI/awesome-phone-call-agents/blob/a34d6b803ee2f1b80446056dcef38911882726e5/skills/ringer-consumer-tasks/SKILL.md at commit a34d6b803ee2f1b80446056dcef38911882726e5. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Confirm the user actually wants a real phone call placed, and identify the single playbook that fits. If none fit, use custom. 2. Collect the playbook's required fields plus any helpful optional ones. Get the recipient's phone number in E.164 (e.g. +14155550123) and the regio…
negotiating or lowering a bill, waiving a fee, or matching a competitor offer
Do not use this skill to:
Run node scripts/build-task.mjs --list for the machine-readable catalog. Field semantics (goal, walkAway, approvalMode, resolution, declineOffers, preferredTimes, collect, …) and every result schema are in references/playbooks.md.
Compose the task + strict schema (pure, offline, never dials):
Permission review
The documentation asks the agent to run terminal commands or scripts.
node scripts/build-task.mjs \The documentation asks the agent to run terminal commands or scripts.
node scripts/build-task.mjs --playbook get-quote \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 66 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill when a person wants an AI agent to make a real-world consumer phone call on their behalf and hand back a clean, structured outcome — the new monthly price, a cancellation confirmation number, the booked time, the refund amount, the quote. It packages the prompt-engineering and the structured-output contract for six common, high-friction call types plus a free-form one.
This is a composition + safety skill. It does not create a phone provider,
does not manage provider-side recurring schedules, and does not call arbitrary
numbers it scraped. It turns a chosen playbook + a few user-supplied fields into
a reviewed, consent-gated CALL-E call with a strict result_schema.
Use this skill for:
Do not use this skill to:
| id | Goal | Required fields | Batch |
|---|---|---|---|
negotiate-bill | Lower a rate, waive a fee, match/extend a promo | company, goal | — |
cancel-subscription | Cancel cleanly, get a confirmation number | company | — |
chase-refund | Recover a refund/credit or dispute a charge | company, issue | — |
book-appointment | Book a slot that fits the user's constraints | business, purpose | ✓ |
get-quote | Collect a real price; Quote Shootout ranks many | business, service | ✓ |
general-inquiry | Get straight answers to specific questions | business, question | ✓ |
custom | Any call, with a user-defined result contract | task | ✓ |
Run node scripts/build-task.mjs --list for the machine-readable catalog. Field
semantics (goal, walkAway, approvalMode, resolution, declineOffers,
preferredTimes, collect, …) and every result schema are in
references/playbooks.md.
custom.+14155550123) and the region —
ask; never guess. Optionally collect the caller's name and a callback number.build-task.mjs (below). It returns the exact task
text, a strict result_schema, and missing_required. If missing_required
is non-empty, go back and collect those fields.place-call.mjs (no --execute). Show the user the
masked recipient, the task the agent will follow, and the fields it will bring
back. This is the default and must happen before any real call.negotiate-bill and
cancel-subscription, confirm the decision-authority stance (the agent
captures offers but does not commit unless the user set an auto-accept limit).place-call.mjs --execute (requires CALLE_API_KEY). Add
--poll to wait for the structured result; calls can take minutes.completion_confidence and a one-line summary. If it did not resolve, offer a
single escalated follow-up rather than looping.Compose the task + strict schema (pure, offline, never dials):
node scripts/build-task.mjs \
--playbook negotiate-bill \
--values '{"company":"Xfinity","currentAmount":"95","goal":"lower","leverage":"AT&T Fiber offers $55/mo for the same speed; 4-year customer","walkAway":"yes","approvalMode":"ask"}' \
--caller "Alex Rivera" --callback "+14155550100" > plan.json
For Quote Shootout, add --batch on a batchable playbook to get a
per-business recipient_result_schema plus an aggregate call-level
result_schema (cheapest business, potential savings):
node scripts/build-task.mjs --playbook get-quote \
--values '{"service":"front brake pads + rotors, 2018 Honda Civic; out-the-door price","timeframe":"this week"}' \
--batch > plan.json
For a non-English call, add --language (e.g. --language Spanish) so the
task instructs the agent to run the whole conversation in that language, and pass
the matching CALL-E --region/--locale to place-call.mjs (e.g. --region MX --locale es-MX). CALL-E supports English plus Hindi, Arabic, Vietnamese, German,
Japanese, French, Spanish, and Portuguese in their respective regions.
Preview, then place (dry-run by default; --execute places the real call):
# 1) Dry run — prints the plan with masked numbers, places NO call:
node scripts/place-call.mjs --body plan.json --to-phone +14155550123
# 2) After consent — place it and wait for the structured result:
CALLE_API_KEY=calle_live_… \
node scripts/place-call.mjs --body plan.json --to-phone +14155550123 --execute --poll
# Quote Shootout: repeat --to-phone per business (batch is auto-detected):
CALLE_API_KEY=calle_live_… node scripts/place-call.mjs --body plan.json \
--to-phone +14155550123 --to-phone +14155550188 --to-phone +14155550190 --execute --poll
Alternative placement: for a quick goal-only call without a custom schema,
the CALL-E CLI works too — calle call start --to-phone +14155550123 --goal "<task>"
then calle call status --run-id <run_id>. Use place-call.mjs (the API path)
whenever you want the strict structured result this skill's schemas define.
This skill prepares and optionally executes CALL-E create-call requests of this shape (one call task; one or more recipients for batch):
{
"task": "Composed from the playbook + user fields…",
"recipients": [{ "phones": ["+14155550123"], "region": "US", "locale": "en-US" }],
"result_schema": { "type": "object", "additionalProperties": false, "required": ["outcome"], "properties": { "…": {} } },
"recipient_result_schema": { "…": "present only in batch / Quote Shootout" }
}
Result schemas are strict: CALL-E rejects any property not declared in
properties before returning structured_result, so the output is always
exactly the contract above.
The negotiate-bill and cancel-subscription tasks encode who may say yes:
approvalMode: "auto", autoAcceptBelow: <n>):
the agent may accept an offer at or below the stated monthly amount.Never place an autonomous-commit call without the user explicitly choosing it and setting the limit.
Read references/safety.md for the full contract. Always:
build-task.mjs
states the agent must disclose it is an AI assistant at the start); do not
remove or weaken it.place-call.mjs allowlists
CALLE_BASE_URL (official *.heycall-e.com or localhost) and refuses to send
the bearer token to any other origin.Idempotency-Key (a hash of the
recipients + task + schema), so a lost response + rerun of --execute dedups
instead of placing a second call.references/playbooks.md: every playbook's fields, option values, and result schema.references/safety.md: consent, PII, decision-authority, and phone-number rules.references/examples.md: worked end-to-end examples (compose → dry-run → execute) with sample structured results.Frequently asked questions
Use this skill when a person wants an AI agent to make a real-world consumer phone call on their behalf and hand back a clean, structured outcome — the new monthly price, a cancellation confirmation number, the booked time, the refund amount, the quote. It packages the prompt-en…
The source record exposes this install command: npx skills add https://github.com/CALLE-AI/awesome-phone-call-agents --skill "skills/ringer-consumer-tasks". Inspect the command and pinned source before running it.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance