From serpapi-pack
Migrates legacy google-search-results SerpApi clients to official serpapi package for Python and Node.js, updating imports, init patterns, search calls, and responses.
How this skill is triggered — by the user, by Claude, or both
Slash command
/serpapi-pack:serpapi-upgrade-migrationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The main migration path: `google-search-results` (legacy) to `serpapi` (current official package). The API itself is stable -- changes are in client library interfaces, not the REST API.
The main migration path: google-search-results (legacy) to serpapi (current official package). The API itself is stable -- changes are in client library interfaces, not the REST API.
# BEFORE: Legacy package
from serpapi import GoogleSearch
search = GoogleSearch({"q": "test", "api_key": key})
result = search.get_dict()
# AFTER: New official package
import serpapi
client = serpapi.Client(api_key=key)
result = client.search(engine="google", q="test")
# Result is already a dict -- no get_dict() needed
# Migration steps
pip uninstall google-search-results
pip install serpapi
# Update imports across codebase
# OLD: from serpapi import GoogleSearch
# NEW: import serpapi
// BEFORE: Legacy
import { GoogleSearch } from 'google-search-results-nodejs';
const search = new GoogleSearch('api_key');
search.json({ q: 'test', engine: 'google' }, (result) => { ... });
// AFTER: Current (Promise-based)
import { getJson } from 'serpapi';
const result = await getJson({ engine: 'google', q: 'test', api_key: key });
// No callbacks -- uses Promises natively
| Aspect | Legacy | Current |
|---|---|---|
| Python import | from serpapi import GoogleSearch | import serpapi |
| Python init | GoogleSearch(params_dict) | serpapi.Client(api_key=key) |
| Python search | search.get_dict() | client.search(engine="google", q=...) |
| Node import | google-search-results-nodejs | serpapi |
| Node pattern | Callback-based | Promise/async-await |
| Engine param | Via class name (GoogleSearch, BingSearch) | Via engine parameter |
pip install serpapi / npm install serpapiengine parameter.get_dict() calls (Python -- result is already dict)For CI integration, see serpapi-ci-integration.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin serpapi-packInstalls SerpApi client via pip/npm for Python/Node.js and configures API key authentication. Verifies setup with test search and account check for search scraping.
Migrates Node.js search pipelines from Google, Bing, Tavily, Serper to Exa neural search. Installs exa-js SDK, compares APIs, and provides TypeScript adapter for unified interface.
Migrates from Google Custom Search, Bing API, SerpAPI, or legacy LLMs to Perplexity Sonar using strangler fig pattern. Assesses integrations, builds adapters for incremental replacement.