crontap-ai-built-apps — Claude Code skill: setup and features
Configures recurring HTTP jobs and heartbeat monitoring for apps created in Lovable, Bolt, Replit, or v0. It offloads scheduling to Crontap after deployment.
npx skills add Crontap/skills --skill crontap-ai-built-apps -a claude-codeWhat crontap-ai-built-apps does
AI builders do not provide persistent runtimes for scheduled executions. This skill bridges that gap. It guides the model to set up an authenticated HTTP route in the project and hands execution timing over to Crontap.
The generated route expects an authorization check against a server-side CRON_SECRET variable. It mandates idempotency storage for each logical execution window to prevent duplicate side effects. Long-running actions must run through background queues. It also sets up liveness tracking via Crontap heartbeats.
Direct REST API access requires a Crontap Ultra subscription. Projects without Ultra must connect via the Crontap MCP server at https://mcp.crontap.com/mcp.
What it helps with
- secure backend job endpoints with server-side CRON_SECRET checks
- schedule recurring HTTP triggers using Crontap
- track missed runs using independent heartbeat monitors
- guard against duplicate executions with idempotency keys
Example prompts for the agent
- Generate a protected daily report endpoint for my Bolt app and set up a Crontap schedule
- Create a Crontap heartbeat monitor for the overnight sync job
- Add CRON_SECRET authentication and idempotency tracking to /api/jobs/daily-report
How to install crontap-ai-built-apps
1Skills CLI (Vercel)
npx skills add Crontap/skills --skill crontap-ai-built-apps -a claude-code2Manually: put the files in place
~/.claude/skills/crontap-ai-built-apps/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/crontap-ai-built-apps/
1Skills CLI (Vercel)
npx skills add Crontap/skills --skill crontap-ai-built-apps -a codex2Manually: put the files in place
.agents/skills/crontap-ai-built-apps/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Crontap/skills --skill crontap-ai-built-apps -a cursor2Manually: put the files in place
.cursor/skills/crontap-ai-built-apps/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Crontap/skills crontap-ai-built-apps2Manually: put the files in place
.github/skills/crontap-ai-built-apps/SKILL.md1Skills CLI (Vercel)
npx skills add Crontap/skills --skill crontap-ai-built-apps -a gemini-cli2Platform CLI
gemini skills install https://github.com/Crontap/skills --path skills/crontap-ai-built-appsManually: put the files in place
.devin/skills/crontap-ai-built-apps/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Crontap/skills --skill crontap-ai-built-apps -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about crontap-ai-built-apps
How to install crontap-ai-built-apps in Claude Code?
Run npx skills add Crontap/skills --skill crontap-ai-built-apps -a claude-code. The skill file will be stored at ~/.claude/skills/crontap-ai-built-apps/SKILL.md.
What does crontap-ai-built-apps do?
It helps models generate secure endpoints for periodic tasks in Lovable, Bolt, Replit, or v0 apps. It then connects those endpoints to Crontap schedules and heartbeats.
Do I need an Ultra plan to use this skill?
Direct REST API calls with $CRONTAP_CLIENT_ID require Ultra. Connecting via the Crontap MCP endpoint at https://mcp.crontap.com/mcp works on all subscription tiers.
Source text
SKILL.md · MIT
---
name: crontap-ai-built-apps
description: >
Add recurring HTTP work and liveness monitoring to apps built with Lovable,
Bolt, Replit, or v0 by exposing a protected endpoint. Use when a user wants
an AI-built app to perform durable scheduled work after deployment.
license: MIT
metadata:
version: "1.0.0"
group: patterns-migrations
order: 11
title: Add recurring work to an AI-built app
summary: Give apps built with Lovable, Bolt, Replit, or v0 a secure HTTP boundary for recurring work.
bestFor: Lovable, Bolt, Replit, and v0 projects
guide: https://crontap.com/blog/scheduled-tasks-for-ai-built-apps
guideTitle: Scheduled tasks for AI-built apps
tools: create_schedule,create_heartbeat
---
# Recurring work for AI-built apps
The deployed app must expose an HTTP endpoint. Crontap owns the clock and calls
that endpoint. The builder chat is used to create code, not as the production
runtime for recurring prompts.
## Prerequisites
Before using the required tools, check whether they are available. If any are
missing, stop and offer the user exactly two choices:
1. Connect Crontap MCP at `https://mcp.crontap.com/mcp`. MCP access works on
every Crontap tier.
2. Configure `$CRONTAP_CLIENT_ID` and `$CRONTAP_API_KEY` for the raw API. Raw
API access requires Ultra.
Do not silently choose a path or continue until the user selects one.
- Identify the builder's deployed server or function runtime.
- Define one narrow recurring operation and its durable side effect.
- Add a server-only cron secret and idempotency storage.
- Confirm the production URL and IANA timezone.
## Builder prompt
Adapt this prompt to the app's framework:
```text
Create a POST /api/jobs/daily-report endpoint. Before any work, compare the
Authorization bearer value with the server-only CRON_SECRET environment
variable and return 401 on mismatch. Persist an idempotency key for the current
logical reporting day before creating side effects. Queue long work durably.
Return JSON with a bounded status and no secrets. Add tests for unauthorized,
first-run, and duplicate-run behavior.
```
Review the generated code. Verify that secret comparison and idempotency happen
server-side, not in browser code.
## Workflow
1. Generate and review the protected endpoint in the builder.
2. Deploy it and run authorized and unauthorized tests.
3. Optionally create a heartbeat for independent run evidence.
4. Create the schedule with the protected endpoint.
5. Inspect the first run in both Crontap and application logs.
## MCP examples
Create a heartbeat first when missed-run monitoring is useful:
```json
{
"tool": "create_heartbeat",
"arguments": {
"name": "Daily report delivery",
"periodMinutes": 1440,
"graceMinutes": 30
}
}
```
Store the returned ping URL securely. It can be connected to schedule outcome
webhooks or called by the deployed endpoint after durable completion.
Create the HTTP schedule:
```json
{
"tool": "create_schedule",
"arguments": {
"url": "https://app.example.com/api/jobs/daily-report",
"text": "every day at 08:00",
"timezone": "America/New_York",
"method": "POST",
"headers": {
"Authorization": "Bearer <cron-secret-from-secure-store>",
"Content-Type": "application/json"
},
"body": {
"source": "crontap"
},
"label": "AI-built app daily report"
}
}
```
## REST fallback
REST requires Ultra API access:
```bash
curl --fail-with-body https://api.crontap.com/v1/schedule \
-X POST \
-H "ClientId: $CRONTAP_CLIENT_ID" \
-H "ApiKey: $CRONTAP_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"url": "https://app.example.com/api/jobs/daily-report",
"interval": "0 8 * * *",
"timezone": "America/New_York",
"verb": "POST",
"headers": {
"Authorization": "Bearer <cron-secret-from-secure-store>",
"Content-Type": "application/json"
},
"data": {"source": "crontap"},
"label": "AI-built app daily report"
}'
```
Use MCP for connected non-Ultra accounts.
## Verification
- Confirm the endpoint is server-side and unavailable before authentication.
- Confirm duplicate requests for one logical period create one side effect.
- Verify the first Crontap run and the corresponding application record.
- If using a heartbeat, verify success and explicit failure paths separately.
## Safety and plan limits
- Never put a cron secret or heartbeat URL in client-side environment values.
- Avoid scheduling preview or development deployment URLs.
- Crontap does not keep the builder session open and does not initiate prompts.
- If creation hits a cap or cadence floor, present the returned four-option
ladder and smallest viable option.
## Troubleshooting
- A 404 often means the builder did not deploy the server route.
- A 401 means the deployed environment and Crontap use different secrets.
- Platform sleep or cold starts can cause timeouts. Queue long work durably.
- Duplicate effects mean the endpoint's idempotency boundary is incomplete.
## References
- [Crontap Agent Skills catalogue](https://crontap.com/skills)
- [Scheduled tasks for AI-built apps](https://crontap.com/blog/scheduled-tasks-for-ai-built-apps)
- [Scheduled AI jobs](https://crontap.com/use-cases/scheduled-ai-jobs)
- [Cron jobs for Lovable](https://crontap.com/use-cases/cron-jobs-for-lovable)
- [Cron jobs for Bolt](https://crontap.com/use-cases/cron-jobs-for-bolt)
- [Cron jobs for Replit](https://crontap.com/use-cases/cron-jobs-for-replit)
© Crontap · MIT · Crontap/skills