Kit · 2026-10-03
Personal assistant
personal-assistant
Acts for one person across sessions, keeps that person's memory separate, and waits before sending or booking.
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. cost=free does not hide that pick and does not turn a cheap paid SKU into a free one.
GET /api/kit?class=personal-assistant&cost=free · ?cost=free · all kits · class JSON
Depot Pick: composio · score as of 2026-10-19 · /api/jtbds/calendar-scheduling-tools
Depot Pick for calendar-scheduling-tools: composio (asOf 2026-10-19). See GET /api/jtbds/calendar-scheduling-tools + 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-only recommendation
mode: free_only · paid pick stays composio. Not a free resource. A cheap paid SKU is not in this list.
no_free_resource_for_job
Free resources
freeMatch: none
none
Depot Pick: resend · score as of 2026-09-14 · /api/jtbds/transactional-email
Depot Pick for transactional-email: resend (asOf 2026-09-14). See GET /api/jtbds/transactional-email + GET /api/methodology.
pickIsNotPriceWinner: true
Cheapest matching SKU: amazon-ses · Outbound email (à la carte) transactional · 0.1 usd_per_1k_emails · not a per-million-token rate. min sourced usd_per_1k_emails whose source label is not a marketing-contact or marketing-send SKU; lowest per-1k tier per provider; not quality-adjusted; monthly plans were not ranked
Pick is not a price winner. resend matching USD per 1k emails is 0.46; cheapest among candidates is amazon-ses at 0.1.
Free-only recommendation
mode: free_only · paid pick stays resend. Not a free resource. A cheap paid SKU is not in this list.
- Postmark Free (Developer) plan · postmark-free-developer · free_email · free
- Resend Free plan · resend-free-plan · free_email · free
Depot Pick: twilio · score as of 2026-10-19 · /api/jtbds/sms
Depot Pick for sms: twilio (asOf 2026-10-19). See GET /api/jtbds/sms + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: twilio · US SMS outbound, long code · 0.0083 usd_per_sms_segment · not a per-million-token rate. min sourced pay-as-you-go US outbound SMS among candidates; carrier surcharges and registration fees are not included; per-segment and per-SMS were not mixed; not quality-adjusted
Only 1 candidate has a matching USD per SMS segment; nothing was compared, so pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays twilio. Not a free resource. A cheap paid SKU is not in this list.
no_free_resource_for_job
Free resources
freeMatch: none
none
Depot Pick: memobase · score as of 2026-09-14 · /api/jtbds/cross-session-user-memory
Depot Pick for cross-session-user-memory: memobase (asOf 2026-09-14). See GET /api/jtbds/cross-session-user-memory + 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-only recommendation
mode: free_only · paid pick stays memobase. Not a free resource. A cheap paid SKU is not in this list.
- Mem0 · mem0 · dev_tool · oss
Free resources
freeMatch: jtbd
- Mem0 · mem0 · dev_tool · oss
Depot Pick: zep · score as of 2026-09-14 · /api/jtbds/episodic-long-term-memory
Depot Pick for episodic-long-term-memory: zep (asOf 2026-09-14). See GET /api/jtbds/episodic-long-term-memory + 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-only recommendation
mode: free_only · paid pick stays zep. Not a free resource. A cheap paid SKU is not in this list.
- Graphiti · graphiti · dev_tool · oss
Free resources
freeMatch: jtbd
- Graphiti · graphiti · dev_tool · oss
Depot Pick: onesignal · score as of 2026-09-14 · /api/jtbds/agent-push-notifications
Depot Pick for agent-push-notifications: onesignal (asOf 2026-09-14). See GET /api/jtbds/agent-push-notifications + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: unavailable — Nothing was compared. usd_per_mau and usd_per_web_push_subscriber were not ranked against providers with no sourced price. Monthly plans are not a unit price (plan_not_a_unit_price). cheapest stays null. pickIsPriceWinner is null.
Nothing was compared. usd_per_mau and usd_per_web_push_subscriber were not ranked against providers with no sourced price. Monthly plans are not a unit price (plan_not_a_unit_price). cheapest stays null. pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays onesignal. Not a free resource. A cheap paid SKU is not in this list.
- ntfy · ntfy · dev_tool · oss
Free resources
freeMatch: jtbd
- ntfy · ntfy · dev_tool · oss
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.
Context overflow context-overflow
If the input exceeds the window, say so and retrieve a narrower slice. Do not answer from a truncated head as if it were the whole source.
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.
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.
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.
Instruction drift instruction-drift
Restate the stop condition in the trace. End the run when it is met. Review long traces for steps that do not serve the original task.