This skill should be used when the user asks to "look up a player", "find someone across systems", "who is this person", "player profile", "ecosystem lookup", "cross-system search", "tell me about this player", or any operation that requires searching for a person across Circle, CourtReserve, Play Date, and/or The Hub.
Search for a player across the Dill Dinkers ecosystem by email or name. Presents a unified profile card combining data from Circle (community), CourtReserve (facilities), and Play Date (intake surveys).
Email is the universal join key across all systems.
Required (at least one):
CIRCLE_API_KEY + CIRCLE_COMMUNITY_ID — Circle communityCOURTRESERVE_ROCKVILLE_USERNAME + _PASSWORD + _ORG_ID — CR RockvilleCOURTRESERVE_NORTHBETHESDA_USERNAME + _PASSWORD + _ORG_ID — CR North BethesdaCheck which credentials are available and search whichever systems are configured. Report which systems were skipped due to missing credentials.
Accept either:
If the user provides a name, search Circle first (it supports text search), then use any matched email to look up CR.
Use the circle-members skill search endpoint:
# By name or email
curl -s -H "Authorization: Token $CIRCLE_API_KEY" \
"https://app.circle.so/api/admin/v2/community_members/search?community_id=$CIRCLE_COMMUNITY_ID&query=SEARCH_TERM" \
| jq '[.records[] | {id, name, email, headline, bio, avatar_url, created_at, last_seen_at}]'
If searching by email and no search results, try listing members and filtering:
curl -s -H "Authorization: Token $CIRCLE_API_KEY" \
"https://app.circle.so/api/admin/v2/community_members?community_id=$CIRCLE_COMMUNITY_ID&per_page=100&page=1" \
| jq --arg email "EMAIL" '[.records[] | select(.email == $email) | {id, name, email, headline, bio, created_at, last_seen_at}]'
If a Circle member is found, also fetch their space memberships:
curl -s -H "Authorization: Token $CIRCLE_API_KEY" \
"https://app.circle.so/api/admin/v2/community_member_spaces?community_id=$CIRCLE_COMMUNITY_ID&community_member_id=MEMBER_ID"
CR API only supports email-based member lookup (no free-text search). If you only have a name from Circle, use the email found there.
For each configured location:
U_VAR="COURTRESERVE_${LOC}_USERNAME"
P_VAR="COURTRESERVE_${LOC}_PASSWORD"
O_VAR="COURTRESERVE_${LOC}_ORG_ID"
AUTH=$(echo -n "${!U_VAR}:${!P_VAR}" | base64)
curl -s -H "Authorization: Basic $AUTH" -H "Content-Type: application/json" \
"https://api.courtreserve.com/api/v1/member/get?OrgId=${!O_VAR}&email=EMAIL" \
| jq '[.Data.Members[] | {
Id: .OrganizationMemberId,
Name: "\(.FirstName) \(.LastName)",
Email,
Phone: .PhoneNumber,
Membership: .MembershipTypeName,
Status: .MembershipStatus,
Gender,
City,
State
}]'
Run for both ROCKVILLE and NORTHBETHESDA if credentials exist.
Generate the Play Date survey URL for the player's email: