
Search
- 8 installs
- 30.1k repo stars
- Updated August 4, 2026
- davila7/claude-code-templates
Search Google via the Bright Data SERP API and get structured JSON results with title, link, and description.
About
Runs Google searches through Bright Data's SERP API and returns structured JSON results. A developer uses it to add programmatic web search to an app or agent. Requires BRIGHTDATA_API_KEY and unlocker zone.
- Structured JSON search results (title, link, description)
- Uses Bright Data SERP API
Search by the numbers
- 8 all-time installs (skills.sh)
- Ranked #1,519 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davila7/claude-code-templates --skill searchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 8 |
|---|---|
| repo stars | ★ 30.1k |
| Last updated | August 4, 2026 |
| Repository | davila7/claude-code-templates ↗ |
What it does
Search Google via the Bright Data SERP API and get structured JSON results with title, link, and description.
Files
Bright Data - Google Search
Search Google and get structured JSON results using Bright Data's SERP API.
Setup
1. Get your API Key: Get a key from Bright Data Dashboard.
2. Create a Web Unlocker zone: Create a zone at brightdata.com/cp by clicking "Add" (top-right), selecting "Unlocker zone".
3. Set environment variables:
export BRIGHTDATA_API_KEY="your-api-key"
export BRIGHTDATA_UNLOCKER_ZONE="your-zone-name"Usage
bash scripts/search.sh "query" [cursor]Parameters:
query(required): Search termcursor(optional): Page number for pagination (0-indexed, default: 0)
Examples:
# Basic search
bash scripts/search.sh "climate change"
# Get page 2 of results
bash scripts/search.sh "climate change" 1Output Format
Returns JSON with structured organic array:
{
"organic": [
{
"link": "https://example.com/article",
"title": "Article Title",
"description": "Brief description of the page..."
}
]
}Dependencies
curl- For API requestsjq- For JSON processing
#!/bin/bash
# Bright Data Google Search (parsed_light JSON)
QUERY="$1"
CURSOR="${2:-0}"
if [ -z "$QUERY" ]; then
echo "Usage: $0 \"query\" [cursor]" >&2
exit 1
fi
if [ -z "${BRIGHTDATA_API_KEY:-}" ]; then
echo "Error: BRIGHTDATA_API_KEY is not set." >&2
echo "Get a key from https://brightdata.com/cp" >&2
exit 1
fi
if [ -z "${BRIGHTDATA_UNLOCKER_ZONE:-}" ]; then
echo "Error: BRIGHTDATA_UNLOCKER_ZONE is not set." >&2
echo "Create a zone at brightdata.com/cp" >&2
exit 1
fi
# Build Google search URL with pagination
START=$((CURSOR * 10))
ENCODED_QUERY=$(printf '%s' "$QUERY" | jq -sRr @uri)
SEARCH_URL="https://www.google.com/search?q=${ENCODED_QUERY}&start=${START}"
# Call Bright Data API
PAYLOAD=$(jq -n \
--arg url "$SEARCH_URL" \
--arg zone "$BRIGHTDATA_UNLOCKER_ZONE" \
'{
url: $url,
zone: $zone,
format: "raw",
data_format: "parsed_light"
}')
RESPONSE=$(curl -s -X POST 'https://api.brightdata.com/request' \
-H "Authorization: Bearer $BRIGHTDATA_API_KEY" \
-H 'Content-Type: application/json' \
-d "$PAYLOAD")
# Extract and clean organic results
echo "$RESPONSE" | jq '{
organic: [.organic[]? | select(.link and .title) | {
link: .link,
title: .title,
description: (.description // "")
}]
}'