yandex-search-guide
Skill4 starsChanged 29 days agoMITView on GitHub
[TOOL] Yandex Cloud Search API v2 client (position tracking, competitor analysis, SERP monitoring). Preloaded by marketing-seo-specialist agent.
- Reads credentials
In this repository48 other files it gives its agents.
- skills/dev-methodology/references/agents.mdAGENTS.md
- skills/skill-authoring/references/agents.mdAGENTS.md
- acceptance-protocolSkill
- agency-intakeSkill
- ai-visibility-methodologySkill
- banner-design-guideSkill
- benchmark-researchSkill
- brand-methodologySkill
- code-reviewingSkill
- code-writingSkill
- codex-bridgeSkill
- deploy-pipelineSkill
- design-assets-guideSkill
- design-system-methodologySkill
- design-task-decompositionSkill
- dev-methodologySkill
- docs-pipelineSkill
- documentation-writingSkill
- engagement-contractSkill
- engagement-protocolSkill
- feature-researchSkill
- human-voiceSkill
- infrastructure-setupSkill
- marketing-task-decompositionSkill
- post-deploy-qaSkill
- pre-deploy-qaSkill
- presentation-designSkill
- project-planningSkill
- prompt-engineeringSkill
- security-auditingSkill
- semantic-drift-methodologySkill
- seo-auditingSkill
- skill-authoringSkill
- skill-test-designSkill
- skill-testingSkill
- system-optimization-protocolSkill
- task-decompositionSkill
- tech-spec-planningSkill
- testing-methodologySkill
- ui-styling-guideSkill
- ui-ux-methodologySkill
- user-spec-planningSkill
- validation-pipelineSkill
- yandex-analytics-methodologySkill
- yandex-direct-guideSkill
- yandex-metrika-guideSkill
- yandex-webmaster-guideSkill
- yandex-wordstat-guideSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Create service account in Yandex Cloud console
- Distinctive: line 22
Create API key for the service account
- Distinctive: line 34
Check API connection with a test query.
- Distinctive: line 40
Search Yandex and show results.
- Distinctive: line 61
Check position of a specific domain for search queries.
- Very specific: line 192
Use common.sh functions directly:
- Very specific: line 207
Run bash scripts/quota.sh to verify
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
yandex-search
Informational skill — search positions and Yandex SERP analysis via Yandex Cloud Search API v2.
Config
Requires YANDEX_SEARCH_API_KEY and YANDEX_CLOUD_FOLDER_ID in config/.env.
Synced from unified config via yandex-analytics/scripts/sync-config.sh.
Setup:
- Create service account in Yandex Cloud console
- Assign roles:
search-api.executor,search-api.webSearch.user - Create API key for the service account
- Get folder ID from Cloud console (top-left dropdown)
Workflow
- Check connection:
bash scripts/quota.sh - Run search/check using appropriate script
- Interpret results — async API returns XML; scripts parse and present key data
Scripts
quota.sh
Check API connection with a test query.
bash scripts/quota.shsearch.sh
Search Yandex and show results.
bash scripts/search.sh --query "купить дымоход" --region 213 --limit 10
# With time sorting
bash scripts/search.sh --query "купить дымоход" --region 213 --sort time
# Strict SafeSearch
bash scripts/search.sh --query "купить дымоход" --filter strict| Param | Required | Default | Description |
--query | yes | - | Search query |
--region | no | 225 (Russia) | Region ID |
--limit | no | 10 | Results per page (max 100) |
--page | no | 0 | Page number (0-indexed) |
--sort | no | relevancy | relevancy or time |
--filter | no | moderate | none, moderate, or strict |
positions.sh
Check position of a specific domain for search queries. The most important script.
# Check single query
bash scripts/positions.sh --domain example.com --query "купить дымоход" --region 213
# Check multiple queries from file (one per line)
bash scripts/positions.sh --domain example.com --queries queries.txt --region 213 --csv results.csv
# Check up to N pages deep
bash scripts/positions.sh --domain example.com --query "купить дымоход" --region 213 --depth 10| Param | Required | Default | Description |
--domain | yes | - | Domain to find (e.g., example.com) |
--query | one of | - | Single search query |
--queries | one of | - | File with queries (one per line) |
--region | no | 225 | Region ID |
--depth | no | 5 | Pages to check (5 = top 50) |
--csv | no | - | Export results to CSV file |
Logic: searches page 0, checks if domain appears in results. If not found, checks page 1, and so on up to --depth.
Output: query, position (or "not found in top N"), URL that ranked.
competitors.sh
Find competitors for a query — who ranks in top 10.
bash scripts/competitors.sh --query "купить дымоход" --region 213| Param | Required | Default | Description |
--query | yes | - | Search query |
--region | no | 225 | Region ID |
--limit | no | 10 | Number of results |
Output: position, domain, URL, title for top results.
API Reference
Yandex Cloud Search API v2 (Async)
Step 1 — Submit search:
- Endpoint:
POST https://searchapi.api.cloud.yandex.net/v2/web/searchAsync - Auth:
Authorization: Api-Key <API_KEY> - Body: JSON with query, folderId, region, sortSpec, groupSpec, responseFormat
- Returns: operation ID
Step 2 — Poll for result:
- Endpoint:
GET https://operation.api.cloud.yandex.net/operations/{operationId} - Auth: same Api-Key header
- Returns:
done: truewithrawData(base64-encoded XML) when ready
Request body structure
{
"query": {
"searchType": "SEARCH_TYPE_RU",
"queryText": "search text",
"familyMode": "FAMILY_MODE_MODERATE",
"page": "0",
"fixTypoMode": "FIX_TYPO_MODE_ON"
},
"sortSpec": {
"sortMode": "SORT_MODE_BY_RELEVANCE",
"sortOrder": "SORT_ORDER_DESC"
},
"groupSpec": {
"groupMode": "GROUP_MODE_DEEP",
"groupsOnPage": "10",
"docsInGroup": "1"
},
"maxPassages": "2",
"region": "225",
"l10N": "LOCALIZATION_RU",
"folderId": "<folder-id>",
"responseFormat": "FORMAT_XML"
}Response XML structure
response/found — total results count
response/results/grouping/group — each result group
group/doc/url — page URL
group/doc/title — page title (may contain <hlword> tags)
group/doc/headline — snippet text
group/doc/domain — domain
group/doc/passages/passage — text excerptsPosition calculation
Position = page * groups_per_page + position_in_page (1-indexed)Common region IDs
| ID | Region |
| 225 | Russia |
| 213 | Moscow |
| 2 | Saint Petersburg |
| 54 | Yekaterinburg |
| 43 | Kazan |
| 66 | Novosibirsk |
| 56 | Nizhny Novgorod |
Common use cases
"What position does our site have?"
bash scripts/positions.sh --domain mysite.ru --query "купить дымоход" --region 213"Check positions for multiple queries"
# Create queries.txt with one query per line, then:
bash scripts/positions.sh --domain mysite.ru --queries queries.txt --region 213 --csv results.csv"Who are our competitors in search?"
bash scripts/competitors.sh --query "купить дымоход" --region 213"What shows up in search for this query?"
bash scripts/search.sh --query "купить дымоход" --region 213Custom query (advanced)
Use common.sh functions directly:
source scripts/common.sh
load_config
# Async XML search
xml=$(cloud_search "купить дымоход" "213" "10" "0" "relevance" "moderate")
echo "$xml"Sharing
To share this skill with colleagues:
- Copy the entire
yandex-search/folder to their~/.claude/skills/ - They create their own
config/.envwith their API key and folder ID - Run
bash scripts/quota.shto verify
Limits
- Yandex Cloud Search API v2: pay-per-use (check pricing at cloud.yandex.ru)
- Rate limit: 1 request/second recommended in batch mode
- Each request is async: ~1-3 seconds for result
- Max results per page: 100 (groupsOnPage)
- Pages: 0-indexed
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

