@wonsukchoi/crondex 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -128
- package/bin/crondex.js +44 -0
- package/catalog.json +1298 -14
- package/jobs/agriculture/equipment-maintenance-due-reminder.yaml +36 -0
- package/jobs/agriculture/irrigation-schedule-check.yaml +41 -0
- package/jobs/agriculture/weather-frost-alert.yaml +41 -0
- package/jobs/construction/change-order-approval-reminder.yaml +31 -0
- package/jobs/creator/crosspost-lag-check.yaml +35 -0
- package/jobs/crypto/gas-price-alert.yaml +34 -0
- package/jobs/crypto/smart-contract-upgrade-watch.yaml +49 -0
- package/jobs/crypto/wallet-balance-watch.yaml +37 -0
- package/jobs/devops/github-issue-triage.yaml +38 -0
- package/jobs/ecommerce/abandoned-cart-recovery-check.yaml +38 -0
- package/jobs/ecommerce/low-stock-reorder-alert.yaml +33 -0
- package/jobs/ecommerce/return-refund-backlog-check.yaml +29 -0
- package/jobs/education/report-card-deadline-reminder.yaml +27 -0
- package/jobs/events/event-budget-overrun-check.yaml +31 -0
- package/jobs/finance/subscription-price-hike-watch.yaml +44 -0
- package/jobs/fleet/vehicle-registration-expiry-check.yaml +31 -0
- package/jobs/gaming/game-patch-notes-watch.yaml +39 -0
- package/jobs/gaming/stream-schedule-reminder.yaml +30 -0
- package/jobs/gaming/subscriber-churn-watch.yaml +39 -0
- package/jobs/healthcare/appointment-no-show-follow-up.yaml +32 -0
- package/jobs/healthcare/license-credential-expiry-check.yaml +35 -0
- package/jobs/healthcare/patient-recall-reminder.yaml +34 -0
- package/jobs/hiring/offer-expiry-reminder.yaml +31 -0
- package/jobs/hospitality/health-inspection-due-reminder.yaml +32 -0
- package/jobs/hr/benefits-enrollment-deadline-reminder.yaml +34 -0
- package/jobs/hr/new-hire-paperwork-check.yaml +35 -0
- package/jobs/hr/payroll-run-reminder.yaml +30 -0
- package/jobs/insurance/claim-status-check.yaml +30 -0
- package/jobs/insurance/coverage-gap-audit.yaml +37 -0
- package/jobs/insurance/policy-renewal-reminder.yaml +35 -0
- package/jobs/inventory/expiring-perishable-stock-check.yaml +24 -0
- package/jobs/investing/dividend-payment-tracker.yaml +34 -0
- package/jobs/legal/nda-expiry-check.yaml +31 -0
- package/jobs/logistics/freight-rate-spike-watch.yaml +38 -0
- package/jobs/manufacturing/preventive-maintenance-due-check.yaml +31 -0
- package/jobs/marketing/competitor-page-diff-watch.yaml +48 -0
- package/jobs/marketing/seo-rank-drop-watch.yaml +38 -0
- package/jobs/nonprofit/volunteer-hours-shortfall-check.yaml +30 -0
- package/jobs/personal/end-of-day-wrap-message.yaml +32 -0
- package/jobs/personal/new-restaurant-roundup.yaml +35 -0
- package/jobs/podcast/guest-followup-reminder.yaml +31 -0
- package/jobs/productivity/morning-briefing-digest.yaml +42 -0
- package/jobs/productivity/recurring-task-queue-reset.yaml +37 -0
- package/jobs/realestate/rent-payment-late-check.yaml +23 -0
- package/jobs/restaurant/health-inspection-prep-reminder.yaml +29 -0
- package/jobs/restaurant/inventory-waste-log-review.yaml +32 -0
- package/jobs/restaurant/reservation-noshow-deposit-check.yaml +32 -0
- package/jobs/sales/newly-funded-leads-scout.yaml +44 -0
- package/jobs/sales/quota-attainment-check.yaml +33 -0
- package/jobs/support/sla-breach-warning.yaml +31 -0
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: seo-rank-drop-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: SEO Keyword Rank Drop Watch
|
|
4
|
+
description: >
|
|
5
|
+
Checks a tracked keyword's search ranking and flags a real drop. Use
|
|
6
|
+
this if a page has ever slipped off page one and nobody noticed until
|
|
7
|
+
organic traffic was already down for weeks.
|
|
8
|
+
category: marketing
|
|
9
|
+
tags: [seo, rankings, marketing]
|
|
10
|
+
schedule: "0 8 * * 1"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Check the current search ranking for the keyword "{{keyword}}" targeting
|
|
15
|
+
{{target_url}}, via {{rank_source_hint}}.
|
|
16
|
+
1. Compare the current position to the baseline position of
|
|
17
|
+
{{baseline_position}}.
|
|
18
|
+
2. Flag a drop of {{drop_threshold_positions}} positions or more.
|
|
19
|
+
3. If dropped, note which competing URLs now outrank {{target_url}}, if
|
|
20
|
+
visible.
|
|
21
|
+
variables:
|
|
22
|
+
keyword:
|
|
23
|
+
default: "your target keyword"
|
|
24
|
+
description: Keyword to track.
|
|
25
|
+
target_url:
|
|
26
|
+
default: "https://example.com/page"
|
|
27
|
+
description: URL you're tracking rank for.
|
|
28
|
+
rank_source_hint:
|
|
29
|
+
default: "a rank tracker (Ahrefs, SEMrush, Search Console) or a manual SERP check"
|
|
30
|
+
description: Where to check current rank.
|
|
31
|
+
baseline_position:
|
|
32
|
+
default: 5
|
|
33
|
+
description: Baseline ranking position to compare against.
|
|
34
|
+
drop_threshold_positions:
|
|
35
|
+
default: 5
|
|
36
|
+
description: Position drop that counts as a real regression.
|
|
37
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
38
|
+
notes: No generic script mode — SERP position checking needs a rank-tracking API or live search, both of which vary by provider/region.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
id: volunteer-hours-shortfall-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Volunteer Hours Shortfall Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares logged volunteer hours against a program's target and flags a
|
|
6
|
+
shortfall. Use this if a program has ever fallen behind on a grant's
|
|
7
|
+
volunteer-hour commitment without anyone noticing until the report was
|
|
8
|
+
due.
|
|
9
|
+
category: nonprofit
|
|
10
|
+
tags: [nonprofit, volunteers, programs]
|
|
11
|
+
schedule: "0 9 1 * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
logged=$(awk -F, -v month="$(date +%Y-%m)" -v program="{{program_name}}" '$1 ~ month && $2 == program {sum += $3} END {print sum+0}' {{volunteer_hours_csv}});
|
|
16
|
+
target={{monthly_target_hours}};
|
|
17
|
+
if awk "BEGIN{exit !($logged < $target)}"; then echo "WARNING: {{program_name}} logged $logged of $target target hours this month"; exit 1;
|
|
18
|
+
else echo "OK: {{program_name}} logged $logged of $target target hours"; fi
|
|
19
|
+
variables:
|
|
20
|
+
volunteer_hours_csv:
|
|
21
|
+
default: "volunteer-hours.csv"
|
|
22
|
+
description: "CSV with columns: month(YYYY-MM),program,hours."
|
|
23
|
+
program_name:
|
|
24
|
+
default: "your program"
|
|
25
|
+
description: Program name to check.
|
|
26
|
+
monthly_target_hours:
|
|
27
|
+
default: 100
|
|
28
|
+
description: Target volunteer hours for the program this month.
|
|
29
|
+
compatible_agents: [generic, claude, codex]
|
|
30
|
+
notes: Keep volunteer-hours.csv updated from your volunteer management system's export before each run.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: end-of-day-wrap-message
|
|
2
|
+
version: 1
|
|
3
|
+
name: End-of-Day Wrap Message
|
|
4
|
+
description: >
|
|
5
|
+
Fires around the end of your work calendar and drafts a short wrap-up:
|
|
6
|
+
what got done today, what's carrying over to tomorrow. Use this if you
|
|
7
|
+
close your laptop most days without a clear sense of what actually
|
|
8
|
+
happened or what's still pending.
|
|
9
|
+
category: personal
|
|
10
|
+
tags: [reflection, end-of-day, productivity, wrap-up]
|
|
11
|
+
schedule: "0 18 * * 1-5"
|
|
12
|
+
timezone: "America/Los_Angeles"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Look at today's completed calendar events, closed tasks/tickets, and
|
|
16
|
+
commits (whatever of {{activity_sources}} is available) for
|
|
17
|
+
{{lookback_hours}} hours.
|
|
18
|
+
1. Summarize in 2-3 bullets what got meaningfully done today.
|
|
19
|
+
2. List anything left open that was expected to close today, as
|
|
20
|
+
"carrying over to tomorrow."
|
|
21
|
+
3. End with one line acknowledging the day plainly — no forced
|
|
22
|
+
positivity, just an honest close.
|
|
23
|
+
Keep the whole thing short enough to read in 15 seconds.
|
|
24
|
+
variables:
|
|
25
|
+
activity_sources:
|
|
26
|
+
default: "your calendar, task tracker, and git commits"
|
|
27
|
+
description: Comma-separated list of sources to check for today's activity.
|
|
28
|
+
lookback_hours:
|
|
29
|
+
default: 10
|
|
30
|
+
description: Rough length of the workday to look back over.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Schedule this against your actual calendar end time, not a fixed hour, if your agent can read "last event ends at" dynamically.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: new-restaurant-roundup
|
|
2
|
+
version: 1
|
|
3
|
+
name: New Restaurant Roundup
|
|
4
|
+
description: >
|
|
5
|
+
Checks for restaurants that newly opened near you in the last week and
|
|
6
|
+
gives you a short list to consider. Use this if you like trying new
|
|
7
|
+
places but never remember to actually go looking for what just opened.
|
|
8
|
+
category: personal
|
|
9
|
+
tags: [restaurants, local, discovery, weekly]
|
|
10
|
+
schedule: "0 17 * * 5"
|
|
11
|
+
timezone: "America/Los_Angeles"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Check for restaurants that newly opened within {{radius_miles}} miles of
|
|
15
|
+
{{location}} in the last {{lookback_days}} days (via Yelp, Google Maps,
|
|
16
|
+
local news, or whatever local-discovery source is available).
|
|
17
|
+
1. List each new place: name, cuisine, and distance.
|
|
18
|
+
2. Note anything getting early buzz (a write-up, strong early reviews).
|
|
19
|
+
3. Keep it to the top {{max_results}} most promising — this is a quick
|
|
20
|
+
Friday-evening list, not a research report.
|
|
21
|
+
variables:
|
|
22
|
+
location:
|
|
23
|
+
default: "your city/neighborhood"
|
|
24
|
+
description: Location to search around.
|
|
25
|
+
radius_miles:
|
|
26
|
+
default: 5
|
|
27
|
+
description: Search radius in miles.
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 14
|
|
30
|
+
description: How recently a restaurant must have opened to count as "new."
|
|
31
|
+
max_results:
|
|
32
|
+
default: 5
|
|
33
|
+
description: Max number of places to list.
|
|
34
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
35
|
+
notes: Quality depends on local coverage in whatever source the agent can reach — sparser in small towns than big cities.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
id: guest-followup-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Podcast Guest Follow-up Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Flags recorded guest episodes that haven't been published or thanked
|
|
6
|
+
yet. Use this if a guest has ever had to awkwardly ask when their
|
|
7
|
+
episode was coming out because nobody followed up after recording.
|
|
8
|
+
category: podcast
|
|
9
|
+
tags: [podcast, guests, followup]
|
|
10
|
+
schedule: "0 9 * * 1"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
today=$(date +%s);
|
|
15
|
+
awk -F, -v today="$today" -v warn={{warn_days}} '
|
|
16
|
+
NR>1 && $3 == "unpublished" {
|
|
17
|
+
cmd="date -d \"" $2 "\" +%s 2>/dev/null || date -jf \"%Y-%m-%d\" \"" $2 "\" +%s";
|
|
18
|
+
cmd | getline recorded_ts; close(cmd);
|
|
19
|
+
days_since = int((today - recorded_ts) / 86400);
|
|
20
|
+
if (days_since >= warn) print "WARNING: episode with " $1 " recorded " days_since " days ago, still unpublished";
|
|
21
|
+
}
|
|
22
|
+
' {{guest_episodes_csv}}
|
|
23
|
+
variables:
|
|
24
|
+
guest_episodes_csv:
|
|
25
|
+
default: "guest-episodes.csv"
|
|
26
|
+
description: "CSV with header row, columns: guest_name,recorded_date(YYYY-MM-DD),status(unpublished/published)."
|
|
27
|
+
warn_days:
|
|
28
|
+
default: 14
|
|
29
|
+
description: Days since recording before an unpublished episode is flagged.
|
|
30
|
+
compatible_agents: [generic, claude, codex]
|
|
31
|
+
notes: Keep guest-episodes.csv updated as episodes are recorded and published — one row per guest episode.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: morning-briefing-digest
|
|
2
|
+
version: 1
|
|
3
|
+
name: Morning Briefing Digest
|
|
4
|
+
description: >
|
|
5
|
+
Pulls together overnight email, today's calendar, and any connected
|
|
6
|
+
analytics/monitoring dashboards into one short digest waiting for you at
|
|
7
|
+
the start of the day. Use this if you start your morning tab-hopping
|
|
8
|
+
across five dashboards before you've even had coffee.
|
|
9
|
+
category: productivity
|
|
10
|
+
tags: [briefing, digest, morning, calendar, email]
|
|
11
|
+
schedule: "0 7 * * 1-5"
|
|
12
|
+
timezone: "America/Los_Angeles"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Build a short morning briefing covering:
|
|
16
|
+
1. Calendar: today's meetings from {{calendar_source}}, flagging any
|
|
17
|
+
back-to-back blocks with no prep time.
|
|
18
|
+
2. Email: unread messages from {{email_source}} in the last
|
|
19
|
+
{{lookback_hours}} hours that look like they need a same-day reply —
|
|
20
|
+
skip newsletters/notifications.
|
|
21
|
+
3. Metrics: anything notable from {{dashboard_sources}} (traffic spike or
|
|
22
|
+
drop, error rate change, ranking movement) — only report real changes,
|
|
23
|
+
not routine noise.
|
|
24
|
+
4. End with a single "top 3 things to do today" list synthesized from the
|
|
25
|
+
above.
|
|
26
|
+
Keep the whole digest to one screen — this replaces tab-hopping, it
|
|
27
|
+
shouldn't become its own chore to read.
|
|
28
|
+
variables:
|
|
29
|
+
calendar_source:
|
|
30
|
+
default: "your calendar (e.g. Google Calendar)"
|
|
31
|
+
description: Calendar to pull today's meetings from.
|
|
32
|
+
email_source:
|
|
33
|
+
default: "your inbox (e.g. Gmail)"
|
|
34
|
+
description: Inbox to scan for messages needing a same-day reply.
|
|
35
|
+
dashboard_sources:
|
|
36
|
+
default: "analytics/search console/uptime monitoring, whatever you have connected"
|
|
37
|
+
description: Comma-separated list of dashboards/metrics sources to check.
|
|
38
|
+
lookback_hours:
|
|
39
|
+
default: 16
|
|
40
|
+
description: How far back to scan email (covers overnight since last workday).
|
|
41
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
42
|
+
notes: Value scales with how many sources you connect — start with just calendar+email and add dashboards as they're available.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: recurring-task-queue-reset
|
|
2
|
+
version: 1
|
|
3
|
+
name: Recurring Task Queue Reset
|
|
4
|
+
description: >
|
|
5
|
+
Clears out last week's completed recurring-task checklist and creates a
|
|
6
|
+
fresh one from your template, so every cycle starts with the same
|
|
7
|
+
predefined owners and checklist instead of a copy-pasted mess. Use this
|
|
8
|
+
if your recurring weekly checklist has ever quietly drifted because
|
|
9
|
+
someone edited last week's copy instead of starting clean.
|
|
10
|
+
category: productivity
|
|
11
|
+
tags: [productivity, checklist, recurring, template]
|
|
12
|
+
schedule: "0 6 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
if [ ! -f "{{template_path}}" ]; then
|
|
17
|
+
echo "template not found at {{template_path}} — nothing to reset from.";
|
|
18
|
+
exit 1;
|
|
19
|
+
fi
|
|
20
|
+
week_label=$(date +%G-W%V);
|
|
21
|
+
dest="{{output_dir}}/${week_label}.md";
|
|
22
|
+
mkdir -p "{{output_dir}}";
|
|
23
|
+
if [ -f "$dest" ]; then
|
|
24
|
+
echo "$dest already exists — not overwriting this week's checklist.";
|
|
25
|
+
else
|
|
26
|
+
cp "{{template_path}}" "$dest";
|
|
27
|
+
echo "created fresh checklist: $dest";
|
|
28
|
+
fi
|
|
29
|
+
variables:
|
|
30
|
+
template_path:
|
|
31
|
+
default: "./templates/weekly-checklist.md"
|
|
32
|
+
description: Path to the checklist template with predefined owners/items.
|
|
33
|
+
output_dir:
|
|
34
|
+
default: "./weekly-checklists"
|
|
35
|
+
description: Directory where each week's fresh checklist file is written.
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: File-based by default for portability — swap `cp` for your task tool's API call (Notion, Asana, ClickUp) if you want it created there instead of as a local file.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
id: rent-payment-late-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Rent Payment Late Check
|
|
4
|
+
description: >
|
|
5
|
+
Flags tenants whose rent is overdue past the grace period. Use this if
|
|
6
|
+
a late payment has ever gone unnoticed for weeks because nobody was
|
|
7
|
+
cross-checking the rent roll against the bank deposits.
|
|
8
|
+
category: realestate
|
|
9
|
+
tags: [realestate, rent, payments]
|
|
10
|
+
schedule: "0 9 * * *"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
psql "{{database_url}}" -t -c "select tenant_name, unit, amount_due, due_date from rent_ledger where paid = false and due_date < current_date - interval '{{grace_days}} days';"
|
|
15
|
+
variables:
|
|
16
|
+
database_url:
|
|
17
|
+
default: "postgres://user:pass@host:5432/db"
|
|
18
|
+
description: Connection string for the property management database.
|
|
19
|
+
grace_days:
|
|
20
|
+
default: 5
|
|
21
|
+
description: Days past due_date before a late payment is flagged.
|
|
22
|
+
compatible_agents: [generic, claude, codex]
|
|
23
|
+
notes: Assumes a `rent_ledger` table with `paid`, `due_date`, and `amount_due` columns — adjust the query to your property management system's schema.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
id: health-inspection-prep-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Health Inspection Prep Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Reminds the team of the standard health-inspection checklist on a
|
|
6
|
+
recurring basis, not just when an inspection is imminent. Use this if
|
|
7
|
+
you've ever scrambled the morning an inspector showed up unannounced.
|
|
8
|
+
category: restaurant
|
|
9
|
+
tags: [compliance, health-inspection, checklist, kitchen]
|
|
10
|
+
schedule: "0 7 * * 1"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
echo "Weekly health-inspection self-check ({{checklist_path}}):";
|
|
15
|
+
if [ -f "{{checklist_path}}" ]; then cat "{{checklist_path}}"; else
|
|
16
|
+
echo "- Fridge/freezer temps logged and in range";
|
|
17
|
+
echo "- Handwashing stations stocked (soap, towels, signage)";
|
|
18
|
+
echo "- Food storage labeled with dates, FIFO followed";
|
|
19
|
+
echo "- No bare-hand contact with ready-to-eat food";
|
|
20
|
+
echo "- Pest control log up to date";
|
|
21
|
+
echo "- Cleaning/sanitizing log current";
|
|
22
|
+
echo "- Employee health/illness policy posted";
|
|
23
|
+
fi
|
|
24
|
+
variables:
|
|
25
|
+
checklist_path:
|
|
26
|
+
default: "./health-inspection-checklist.txt"
|
|
27
|
+
description: Optional path to your own custom checklist file; falls back to a standard baseline if not found.
|
|
28
|
+
compatible_agents: [generic, claude, codex]
|
|
29
|
+
notes: This is a recurring self-audit reminder, not a substitute for your local health department's actual requirements — adapt the checklist to your jurisdiction.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: inventory-waste-log-review
|
|
2
|
+
version: 1
|
|
3
|
+
name: Inventory Waste Log Review
|
|
4
|
+
description: >
|
|
5
|
+
Reviews the kitchen's waste log for the week and flags which items are
|
|
6
|
+
being tossed most, in case it's an over-ordering or portioning problem.
|
|
7
|
+
Use this if food cost keeps creeping up and nobody's sure why.
|
|
8
|
+
category: restaurant
|
|
9
|
+
tags: [inventory, waste, food-cost, kitchen]
|
|
10
|
+
schedule: "0 10 * * 1"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Read the waste log for the past {{lookback_days}} days from
|
|
15
|
+
{{waste_log_source}}.
|
|
16
|
+
1. Total waste by item (quantity and estimated cost if given).
|
|
17
|
+
2. Rank the top 5 items by wasted cost.
|
|
18
|
+
3. For each top item, note the most common waste reason logged (spoilage,
|
|
19
|
+
over-prep, returned order, etc.) if that field exists.
|
|
20
|
+
4. Flag any item where waste looks like it's trending up week over week,
|
|
21
|
+
not just a one-off bad night.
|
|
22
|
+
5. Suggest one concrete action per top item (reduce par level, tighten
|
|
23
|
+
portioning, adjust prep timing).
|
|
24
|
+
variables:
|
|
25
|
+
waste_log_source:
|
|
26
|
+
default: "your POS/inventory system's waste log"
|
|
27
|
+
description: Where the waste log lives (e.g. "Toast waste tracking", "a shared spreadsheet").
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 7
|
|
30
|
+
description: How many days of waste log to review.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Quality of the report depends entirely on how consistently staff logs waste — garbage in, garbage out.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: reservation-noshow-deposit-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Reservation No-Show Pattern Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews recent reservation no-shows and flags parties/times where
|
|
6
|
+
no-shows cluster, so you know whether a deposit or confirmation-call
|
|
7
|
+
policy would help. Use this if a certain night or party size keeps
|
|
8
|
+
costing you empty tables.
|
|
9
|
+
category: restaurant
|
|
10
|
+
tags: [reservations, no-show, hospitality]
|
|
11
|
+
schedule: "0 11 * * 1"
|
|
12
|
+
timezone: "America/New_York"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Pull reservation data from {{reservation_system}} for the past
|
|
16
|
+
{{lookback_days}} days.
|
|
17
|
+
1. Calculate the overall no-show rate.
|
|
18
|
+
2. Break it down by day of week, time slot, and party size — flag any
|
|
19
|
+
segment with a no-show rate meaningfully above the overall average.
|
|
20
|
+
3. List repeat no-show guests (2+ in the window) by name/phone if
|
|
21
|
+
available.
|
|
22
|
+
4. Recommend whether a deposit or confirmation-text policy is warranted
|
|
23
|
+
for the flagged segments specifically, rather than restaurant-wide.
|
|
24
|
+
variables:
|
|
25
|
+
reservation_system:
|
|
26
|
+
default: "your reservation platform"
|
|
27
|
+
description: Name of the reservation system (e.g. "OpenTable", "Resy", "Tock").
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 30
|
|
30
|
+
description: Window of reservation history to analyze.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Read-only analysis — any policy change (deposits, blocklisting repeat no-shows) is a business decision for a human to make.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: newly-funded-leads-scout
|
|
2
|
+
version: 1
|
|
3
|
+
name: Newly Funded Companies Lead Scout
|
|
4
|
+
description: >
|
|
5
|
+
Checks funding-announcement sources for companies that just raised in
|
|
6
|
+
your target market and drafts a first-outreach message for each. Use
|
|
7
|
+
this if you sell to companies that spend differently right after a
|
|
8
|
+
funding round and you want to reach them before every other vendor does.
|
|
9
|
+
category: sales
|
|
10
|
+
tags: [sales, leads, funding, outreach, prospecting]
|
|
11
|
+
schedule: "0 8 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Check {{funding_sources}} for companies that announced a funding round in
|
|
16
|
+
the last {{lookback_days}} days matching: industry "{{target_industry}}",
|
|
17
|
+
stage "{{target_stage}}".
|
|
18
|
+
1. List each company: name, round size/stage, and a one-line note on why
|
|
19
|
+
they fit the target profile.
|
|
20
|
+
2. For each, note the most relevant contact if discoverable (founder,
|
|
21
|
+
head of the department your product serves).
|
|
22
|
+
3. Draft a short, non-generic first-touch outreach message per company
|
|
23
|
+
that references the funding news and ties it to a concrete reason
|
|
24
|
+
they'd need {{your_product}} now.
|
|
25
|
+
4. Skip companies already in {{existing_crm_note}} to avoid duplicate
|
|
26
|
+
outreach.
|
|
27
|
+
variables:
|
|
28
|
+
funding_sources:
|
|
29
|
+
default: "Crunchbase, TechCrunch funding news, or your preferred funding-news feed"
|
|
30
|
+
description: Sources to check for funding announcements.
|
|
31
|
+
target_industry:
|
|
32
|
+
default: "SaaS"
|
|
33
|
+
description: Industry/vertical to filter for.
|
|
34
|
+
target_stage:
|
|
35
|
+
default: "Seed or Series A"
|
|
36
|
+
description: Funding stage(s) worth prospecting.
|
|
37
|
+
your_product:
|
|
38
|
+
default: "your product"
|
|
39
|
+
description: One-line description of what you sell, for the outreach draft to reference.
|
|
40
|
+
existing_crm_note:
|
|
41
|
+
default: "no CRM connected — skip duplicate check"
|
|
42
|
+
description: Where to check for companies already in your pipeline, to avoid re-outreaching.
|
|
43
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
44
|
+
notes: Draft-only — review before sending, and check the funding source's terms of use before scraping instead of using an official API/RSS feed.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: quota-attainment-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Quota Attainment Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares a rep's closed-won revenue this period against their quota
|
|
6
|
+
pace and flags whether they're on track. Use this if a rep has ever
|
|
7
|
+
found out they missed quota only at the end of the quarter, instead of
|
|
8
|
+
with enough runway left to fix it.
|
|
9
|
+
category: sales
|
|
10
|
+
tags: [sales, quota, pipeline]
|
|
11
|
+
schedule: "0 8 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
closed=$(psql "{{database_url}}" -t -c "select coalesce(sum(amount),0) from deals where owner = '{{rep_name}}' and stage = 'closed_won' and closed_at >= date_trunc('quarter', current_date);");
|
|
16
|
+
quota={{quarterly_quota}};
|
|
17
|
+
pct=$(awk "BEGIN{printf \"%.0f\", ($closed/$quota)*100}");
|
|
18
|
+
echo "quota check for {{rep_name}}: closed \$$closed of \$$quota quarterly quota (${pct}%) so far"
|
|
19
|
+
variables:
|
|
20
|
+
database_url:
|
|
21
|
+
default: "postgres://user:pass@host:5432/db"
|
|
22
|
+
description: Connection string for the CRM/deals database.
|
|
23
|
+
rep_name:
|
|
24
|
+
default: "rep-name"
|
|
25
|
+
description: Sales rep owner field to check.
|
|
26
|
+
quarterly_quota:
|
|
27
|
+
default: 100000
|
|
28
|
+
description: Quarterly quota amount for this rep.
|
|
29
|
+
compatible_agents: [generic, claude, codex]
|
|
30
|
+
notes: >
|
|
31
|
+
Prints closed-won revenue vs. quota for the current quarter; the pacing
|
|
32
|
+
math (days elapsed vs. days in quarter) is left for you or your agent to
|
|
33
|
+
interpret since exact quarter boundaries vary by fiscal calendar.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
id: sla-breach-warning
|
|
2
|
+
version: 1
|
|
3
|
+
name: SLA Breach Warning
|
|
4
|
+
description: >
|
|
5
|
+
Flags open tickets that are about to breach their SLA, before they
|
|
6
|
+
actually do. Use this if a ticket has ever blown past its SLA with zero
|
|
7
|
+
warning because the only check was after the fact.
|
|
8
|
+
category: support
|
|
9
|
+
tags: [support, sla, tickets]
|
|
10
|
+
schedule: "*/15 * * * *"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
count=$(curl -s -H "Authorization: Bearer {{api_token}}" "{{api_url}}" | grep -o '"status":"open"' | wc -l | tr -d ' ');
|
|
15
|
+
if [ -z "$count" ] || [ "$count" -eq 0 ]; then echo "OK: no tickets approaching SLA breach"; exit 0;
|
|
16
|
+
else echo "WARNING: $count ticket(s) within {{warn_minutes}} minutes of SLA breach at {{api_url}}"; exit 1; fi
|
|
17
|
+
variables:
|
|
18
|
+
api_url:
|
|
19
|
+
default: "https://api.example-helpdesk.com/tickets?status=open&sla_remaining_lt_minutes=30"
|
|
20
|
+
description: Helpdesk API endpoint pre-filtered to tickets close to breaching SLA.
|
|
21
|
+
api_token:
|
|
22
|
+
default: "your-api-token"
|
|
23
|
+
description: Bearer token for the helpdesk API.
|
|
24
|
+
warn_minutes:
|
|
25
|
+
default: 30
|
|
26
|
+
description: Minutes of SLA time remaining that counts as "about to breach", for labeling output.
|
|
27
|
+
compatible_agents: [generic, claude, codex]
|
|
28
|
+
notes: >
|
|
29
|
+
Proactive counterpart to `ticket-backlog-aging-check` (which flags
|
|
30
|
+
tickets already past SLA) — point api_url at your helpdesk's filtered
|
|
31
|
+
search for tickets still within SLA but running low on time.
|