# SEO Content Brief Generator — Surfer SEO Alternative (`khadinakbar/surfer-seo-alternative`) Actor

Generate an SEO content brief from current Google results for one keyword. Review competitor titles, snippets, and topic signals; optionally compare a supplied draft using transparent coverage fields.

- **URL**: https://apify.com/khadinakbar/surfer-seo-alternative.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** SEO tools, MCP servers, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 content briefs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEO Content Brief Generator — Surfer SEO Alternative

Generate an SEO content brief from current Google results for one keyword. Review competitor titles, snippets, and topic signals; optionally compare a supplied draft using transparent coverage fields. For content editors, the dataset returns a keyword brief with competitor evidence and optional draft-coverage fields.

### Workflow: put the results to work

Choose the target keyword and search market, then review the competitor evidence in the brief. Supply a draft when you want a transparent coverage comparison before editing. The returned fields are research cues, not Surfer's proprietary Content Score or a prediction of rankings.

### Comparison with Surfer SEO

**Independent status:** `This independent Actor is not affiliated, associated, or endorsed by Surfer SEO.`

| Decision area        | This Actor                                                                                         | Surfer SEO                                                                                           |
| -------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Workflow scope       | One-keyword, inspectable JSON brief and optional supplied-draft coverage fields.                   | Broader content-optimization workspace with an interactive Editor and proprietary workflow features. |
| Pricing and billing  | Pay per event for a bounded brief, plus caller-paid platform usage.                                | Published plan pricing for its product workspace.                                                    |
| Usable result        | One structured dataset record with API readback, provenance, and cost fields.                      | An editor-centered content workflow.                                                                 |
| API and integrations | Apify API, datasets, and automation surfaces support downstream processing.                        | Product workspace features support its own content process.                                          |
| Input style          | A keyword, location, language, and optional draft text form the run payload.                       | A dedicated product workspace manages its own documents and workflow.                                |
| Provenance           | Collection time, upstream task identifier, and observed provider cost are retained in each record. | Editor guidance and product scoring support its content workflow.                                    |

### Best fit and focused standalone workflow

Choose this Actor when you need current Google organic-result evidence for a specific keyword, location, and language. Use it for content planning, QA, enrichment, and agentic research where structured provenance matters.

Use Surfer SEO when an interactive editor, proprietary scoring, writing workspace, or collaboration suite suits the next stage of your process. Use this Actor when a compact, portable dataset record is the useful handoff.

### Workflow

The workflow starts with one topical keyword and optional draft text. The Actor then collects a bounded set of Google organic results, selects distinct domains, derives visible title and snippet patterns, and writes one content-brief record. Next, read the dataset record and `RUN_SUMMARY`, validate the provenance and suggested terms for your brief, then pass the findings to an editor, CMS, spreadsheet, or AI agent.

### Input

```json
{
    "keyword": "best project management software",
    "draftText": "Project management software helps teams plan, assign, and track work.",
    "locationName": "United States",
    "languageCode": "en",
    "maxCompetitors": 5
}
```

`keyword` accepts one topical Google query. `draftText` enables an optional coverage audit. `maxCompetitors` accepts values from 3 through 10; the Actor uses depth 10 for requests of up to five competitors and depth 20 for wider requests.

### Output dataset

Each accepted result writes one content-brief record to the default dataset. The record keeps the source task identifier, upstream cost, and collection time alongside the research fields.

| Field                                            | Meaning                                                                         |
| ------------------------------------------------ | ------------------------------------------------------------------------------- |
| `competitors`                                    | Distinct organic result pages with URL, domain, rank, title, and snippet.       |
| `guidelines`                                     | Visible title-length range, repeated candidate terms, and snippet availability. |
| `draftAudit`                                     | Draft word count, keyword placement, and coverage of visible candidate terms.   |
| `providerTaskId`, `providerCostUsd`, `fetchedAt` | Provenance and cost fields for downstream validation.                           |

```json
{
    "keyword": "best project management software",
    "locationName": "United States",
    "languageCode": "en",
    "competitorCount": 5,
    "competitors": [
        {
            "rank": 1,
            "rankAbsolute": 1,
            "url": "https://example.com/project-management-software",
            "domain": "example.com",
            "title": "Best Project Management Software",
            "description": "Compare project planning tools for teams.",
            "isFeaturedSnippet": false
        }
    ],
    "guidelines": {
        "basis": "Observable Google organic result titles and snippets only; this is a transparent research brief.",
        "recommendedTitleLength": {
            "targetCharacters": 36,
            "observedRange": [31, 42]
        },
        "suggestedTerms": [{ "term": "teams", "competitorPages": 3 }],
        "snippetsAvailable": 5,
        "note": "Use suggestions naturally after verifying factual relevance."
    },
    "draftAudit": {
        "wordCount": 9,
        "keywordOccurrences": 1,
        "keywordInFirst500Characters": true,
        "suggestedTermsPresent": [{ "term": "teams", "competitorPages": 3 }],
        "suggestedTermsCoveragePercent": 100,
        "auditNote": "This audit describes coverage against visible SERP patterns."
    },
    "source": "surfer_seo_alternative/google_organic_serp",
    "providerTaskId": "00000000-0000-0000-0000-000000000000",
    "providerCostUsd": 0.002,
    "fetchedAt": "2026-09-07T00:00:00.000Z",
    "status": "OK"
}
```

`OUTPUT` gives the terminal outcome and concise message. `RUN_SUMMARY` adds event-charge counts, provider attempts, retries, request depth, upstream cost, and dataset identifiers for run-level readback.

### API example

```bash
curl "https://api.apify.com/v2/acts/khadinakbar~surfer-seo-alternative/runs?token=APIFY_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"keyword":"best project management software","locationName":"United States","languageCode":"en","maxCompetitors":5}'
```

### AI agent and MCP prompt

> Use this MCP-ready Actor to create a content brief for “project management software comparison” in the United States. Return the terminal outcome, dataset readback, competitor patterns, suggested terms, collection-time provenance, source task identifier, and observed provider cost. Keep the scope to one keyword and use the result as research for an editorial decision.

AI agents can use `OUTPUT` to choose the next action and the dataset record to preserve structured provenance. The default dataset supports API export, review queues, and downstream content-planning automations.

### Best results

Provide a specific, current topical query, select the market and language that match the intended audience, and validate suggested terms against authoritative sources before publication. Use the public organic-result pages that you are authorized to research, follow applicable laws and site terms, and keep your editorial review in the final decision loop.

### Responsible use

Use this Actor for authorized SEO research and content planning. Review source pages, applicable laws, and site terms before using the record in a published workflow.

### Builder's note

I built this Actor for the recurring API job of turning one current SERP into a transparent brief record with enough provenance for automated review. My goal is a focused alternative for data-driven workflows: current organic evidence in, inspectable JSON out.

### Pricing and run costs

This Actor uses **Pay per event plus Apify platform usage**. The [Pricing tab](https://apify.com/khadinakbar/surfer-seo-alternative/pricing) lists the current event rates and billing terms.

| Event | Billing unit | When it applies |
|---|---|---|
| `apify-actor-start` | Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
| `serp-request` | Google SERP request | Charged once for a successful upstream Google SERP request used to create a content brief. |
| `content-brief` | Content brief | Charged once for each validated content brief written to the dataset. |

Run cost combines the charged events and Apify platform usage. Review the run charge limit and requested result count before starting.

### Connect an AI agent

Use the [Apify MCP configurator](https://mcp.apify.com) to choose an available client connection. Inspect this Actor’s current input schema and required credentials before running it.

# Actor input Schema

## `keyword` (type: `string`):

Enter one topical Google query, for example ‘best project management software’. Use 2 to 200 characters for a focused content-brief topic.

## `draftText` (type: `string`):

Paste draft text for coverage fields based on the visible brief. Use up to 50,000 characters and keep confidential material out of shared Actor inputs.

## `locationName` (type: `string`):

Google country name, for example United States or United Kingdom. Defaults to United States.

## `languageCode` (type: `string`):

Two-letter content language code, for example en, de, or es. Defaults to en.

## `maxCompetitors` (type: `integer`):

Choose 3 to 10 distinct organic-result pages for the brief. Use five for a compact review or a wider sample for broader source coverage.

## Actor input object example

```json
{
  "keyword": "best project management software",
  "draftText": "Project management software helps teams plan, assign, and track work.",
  "locationName": "United States",
  "languageCode": "en",
  "maxCompetitors": 5
}
```

# Actor output Schema

## `results` (type: `string`):

SERP-derived briefs and optional draft audits.

## `summary` (type: `string`):

Terminal OUTPUT record.

## `runSummary` (type: `string`):

RUN\_SUMMARY with request, cost, and outcome details.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "best project management software",
    "locationName": "United States",
    "languageCode": "en",
    "maxCompetitors": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/surfer-seo-alternative").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keyword": "best project management software",
    "locationName": "United States",
    "languageCode": "en",
    "maxCompetitors": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/surfer-seo-alternative").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "best project management software",
  "locationName": "United States",
  "languageCode": "en",
  "maxCompetitors": 5
}' |
apify call khadinakbar/surfer-seo-alternative --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,khadinakbar/surfer-seo-alternative"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/jTiFkNYWb5BhEOZdS/builds/T600LOVTofvVPz6bu/openapi.json
