Developers
Keep your site visible to AI search, from CI
One robots.txt line, a stray noindex or a new firewall rule can hide your site from ChatGPT search, Claude and Perplexity. Nobody notices until signups dip. Check it on every deploy, and read your weekly pick rates where you already work.
npx @getpicked/cli check example.comWhat the check looks at
- Blocking: a search or user crawler (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot, Bingbot and others) blocked in robots.txt or answered with pay-per-crawl 402;
noindex;nosnippet; a homepage that does not load. - Warnings: a firewall or CDN refusing a crawler's user agent (it may still allow the verified crawler by IP), text that only appears after JavaScript runs, no sitemap.
- Training crawlers (GPTBot, ClaudeBot, CCBot, Google-Extended) are listed but never fail the check. Blocking them is your call.
The check reads your site the way those crawlers do; it does not ask any AI engine, so it takes seconds and costs nothing. How we measure picks →
CLI
@getpicked/cli has no dependencies and runs on Node 18+. It exits 1 when the check fails, 2 on errors.
export GETPICKED_API_KEY=gp_live_…
npx @getpicked/cli sitesCommands: check, sites, site <host> --min-pick-rate 0.2, recheck --wait, verify <ticket>. Add --json for machine output.
GitHub Action
Run after each successful deployment and once a day. The job summary lists every crawler and each fix.
name: AI search check
on:
deployment_status:
schedule:
- cron: "17 6 * * *"
jobs:
getpicked:
if: github.event_name == 'schedule' || github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- uses: getpicked/check-action@v1
with:
url: https://example.com
api-key: ${{ secrets.GETPICKED_API_KEY }}MCP server for Claude, Claude Code and Cursor
Ask "did that robots.txt change hide us from ChatGPT?" or "what should I fix so Claude picks us?". The server speaks MCP over HTTP at /api/mcp, and you connect by signing in with your GetPicked account; no key to copy.
Claude (web, desktop, mobile): Settings → Connectors → Add custom connector, and paste:
https://www.getpicked.app/api/mcpclaude mcp add --transport http getpicked https://www.getpicked.app/api/mcp
# then run /mcp in Claude Code and choose "Authenticate" to sign inFor CI or other tools that cannot sign in, send an API key instead:
claude mcp add --transport http getpicked https://www.getpicked.app/api/mcp \
--header "Authorization: Bearer $GETPICKED_API_KEY"{
"mcpServers": {
"getpicked": {
"url": "https://www.getpicked.app/api/mcp",
"headers": { "Authorization": "Bearer gp_live_…" }
}
}
}check_readiness: Can AI crawlers reach and index a URL? Works without signing in.list_sites: Your monitored sites and how often each engine picked them.get_site: Rates, cited sources, index status and fix tickets with copy-ready fixes.recheck_site: Ask every engine again now.verify_fix: Confirm a fix is live after you ship it.
check_readiness works before you sign in; the others ask you to sign in the first time you use them.
REST API
JSON over HTTPS. Send your key as Authorization: Bearer gp_live_…. Errors look like {"error":{"code","message"}}.
curl -s https://www.getpicked.app/api/v1/readiness \
-H "content-type: application/json" \
-d '{"url":"https://example.com"}'| Endpoint | Auth | What |
|---|---|---|
| POST /api/v1/readiness | Optional | Can AI search crawlers reach and index a URL? Verdict pass, warn or fail, with fixes. |
| GET /api/v1/sites | Key + Monitor | Your monitored sites with the latest per-engine pick counts, index coverage and open fixes. |
| GET /api/v1/sites/{id or host} | Key + Monitor | One site: rates with ranges, history, cited sources, key-page index status, fix tickets. |
| POST /api/v1/sites/{id or host}/checks | Key + Monitor | Re-run ChatGPT, Claude, Gemini, Perplexity and Grok now (once per 12 hours). |
| GET /api/v1/jobs/{jobToken} | Key | Status of a re-check: pending, running, complete or failed. |
| POST /api/v1/tickets/{id}/verify | Key + Monitor | Re-crawl the live site to confirm a fix, like the dashboard's verify button. |
Keys and limits
- Without a key: 3 readiness checks per site per day from one IP address.
- With a key: 200 readiness checks a day across all sites, plus your monitored sites' data.
- Keys come with Pick Monitor. Create up to 5 under API keys on your dashboard; we store only a hash, so copy the key when it is shown.