Skip to main content

seo-content-writer

Scrape the live Google SERP for a search term via SearchApi, read the actual top-ranking pages, then plan and write a humanised, ready-to- publish markdown article engineered to rank against what's currently on page 1. Use when the user says "write an article about", "write a blog post", "write c...

Install this skill

or
66/100

Security score

The seo-content-writer skill was audited on Aug 6, 2026 and we found 8 security issues across 3 threat categories, including 1 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

low line 144

Command substitution pattern

SourceSKILL.md
142
143```bash
144STATUS=$(printf '%s' "$RESP" | jq -r '.search_metadata.status // "unknown"')
145if [ "$STATUS" != "Success" ]; then
146 echo "SearchApi error: $(printf '%s' "$RESP" | jq -r '.error // .search_metadata.status')"; exit 1
low line 146

Command substitution pattern

SourceSKILL.md
144STATUS=$(printf '%s' "$RESP" | jq -r '.search_metadata.status // "unknown"')
145if [ "$STATUS" != "Success" ]; then
146 echo "SearchApi error: $(printf '%s' "$RESP" | jq -r '.error // .search_metadata.status')"; exit 1
147fi
148COUNT=$(printf '%s' "$RESP" | jq '.organic_results | length')
low line 148

Command substitution pattern

SourceSKILL.md
146 echo "SearchApi error: $(printf '%s' "$RESP" | jq -r '.error // .search_metadata.status')"; exit 1
147fi
148COUNT=$(printf '%s' "$RESP" | jq '.organic_results | length')
149if [ "$COUNT" -eq 0 ]; then echo "Empty SERP. Check keyword, gl, hl."; exit 1; fi
150```
low line 160

Command substitution pattern

SourceSKILL.md
158```bash
159KEYWORD="best serp api"
160SLUG="$(echo "$KEYWORD" | tr '[:upper:] /' '[:lower:]__' | tr -cd '[:alnum:]_-')"
161RUN_DIR=".seo-content-writer/$SLUG"
162mkdir -p "$RUN_DIR/raw"
medium line 119

Curl to non-GitHub URL

SourceSKILL.md
117
118```bash
119curl -sG "https://www.searchapi.io/api/v1/search" \
120 --data-urlencode "engine=google" \
121 --data-urlencode "q=$KEYWORD" \
medium line 201

Curl to non-GitHub URL

SourceSKILL.md
199 ```bash
200 # Autocomplete: subtopic + long-tail mining (always useful, separate call)
201 curl -sG "https://www.searchapi.io/api/v1/search" \
202 --data-urlencode "engine=google_autocomplete" \
203 --data-urlencode "q=$KEYWORD" --data-urlencode "client=chrome" \
medium line 209

Curl to non-GitHub URL

SourceSKILL.md
207
208 # AI Overview body: ONLY when step 4 returned a token instead of the inline block
209 [ -n "$AIO_TOKEN" ] && curl -sG "https://www.searchapi.io/api/v1/search" \
210 --data-urlencode "engine=google_ai_overview" \
211 --data-urlencode "page_token=$AIO_TOKEN" \
high line 40

Urgency-based manipulation

SourceSKILL.md
38# seo-content-writer: a SERP-informed article, built to rank, written like a human
39
40Give this skill one search term and it returns one ready-to-publish markdown article, engineered to compete with whatever is on page 1 right now and written to read like a person wrote it. It runs in three confirmed stages: (1) you define the keyword and the angle; (2) the skill fetches the live Google SERP via SearchApi, reads the actual top-ranking pages with `WebFetch`, and proposes a content plan and outline for you to confirm; (3) once you confirm, it writes the full draft, humanises it inline against a baked-in checklist (no em dashes, no AI tells), and runs two fact-checking subagents (one for claims, one for statistics) before saving.
41
42The only deliverable is one `.md` file. Raw SERP and competitor snapshots are persisted to a working dir during the run so an interrupted run leaves usable research on disk, but they are not the deliverable.
Scanned on Aug 6, 2026
View Security Dashboard
Installation guide →
GitHub Stars 1
Rate this skill
Categorymarketing
UpdatedAugust 9, 2026
SamJale/SearchApi-Claude-Plugin