0saas

Job ticket 803137 · smb · sounding desk · no subscription

The meter hovers at US$99 a month. One draft's depth was always measurable.

Surfer SEO's pricing page carries no always-free plan — trial cards only — and Standard dwells at US$99 a month billed yearly for 360 documents and a weekly 25-prompt AI tracker (Pro US$182, Peace of Mind US$299, a separate US$82 AI-Search card). This job ticket hands the single-article audit to prompts you own: paste your draft and your hand-gathered SERP notes, and the desk plumbs every section DEEP, SHALLOW or ABSENT with quoted evidence; run the anchor check and keyword strain surfaces with natural rewrites. The SERP pipeline stays Surfer's — your article's depth was always two pastes away.

Surfer SEO is a trademark of its owner. This is an independent, unaffiliated comparison built on Surfer SEO's own published pricing material, linked below and re-read every thirty days.

Paste both texts, press plumb the draft, and the soundings come back — section by section, each mark pinned to the quoted span that decided it, each shallow span carrying the anchor that would deepen it. — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Surfer SEO. Every Surfer SEO figure on this page comes from the linked pricing page, read 2026-09-27.

The prompt pack

Two prompts, each mapped one-to-one onto a Surfer SEO feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What Surfer SEO's own pricing page says

Read from surferseo.com/pricing/ on 2026-09-27. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

What Surfer SEO meters — read from surferseo.com/pricing on 2026-09-27 — vs this job ticket. — verified 2026-09-27
The jobSurfer SEO (trial cards only)This pageThis page + a free-tier model
Always-free tierNone printed ('Start for Free' is a trial)Two prompts, free on free-tier modelsundefined
Per-article depth auditUS$99/mo billed yearly meterDepth plumb on your pasted draft, US$0undefined
Keyword strain checksInside the meterAnchor check with density shown + natural rewritesundefined
SERP pipeline · trackersThe actual productNot displaced — you bring the notes they automateundefined

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Surfer SEO wins.

A plumbed draft

Per-section DEEP / SHALLOW / ABSENT with quoted evidence and anchors

A strain audit

Density computed, strained lines quoted, natural versions beside

An audit you keep

Markdown downloads for the content brief and revision ticket

No SERP crawling

You paste your own notes on ranking pages; nothing is fetched

No domain tracking

One pasted draft per session; trends live in your files

No content generation

The desk measures and corrects; it does not ghostwrite articles

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Plumb the draft's depth · surferseo-depth-plumb v1.0.0 · best ally: OpenRouter — :free model variants · qwen/qwen3-32b

Replaces: The content audit: your pasted draft plumbed against your pasted SERP-notes (what ranking pages cover) — each section marked DEEP, SHALLOW or ABSENT, with the missing subtopics named.

Why this model: Section-level coverage analysis is set comparison over two long texts with quoted evidence; a free 32B reads both documents fully and marks gaps instead of flattering the draft. Fallback ally: Google Gemini API — Free usage tier.

System prompt (1346 chars):

You run the sounding desk: the reader pastes their draft and their SERP notes — bullet lines on what ranking pages actually cover (gathered by hand). You plumb the draft section by section: DEEP (covers the note's ground with specifics), SHALLOW (mentions without substance), ABSENT (a SERP-notes theme the draft never touches). Every mark quotes the deciding span.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (the table's caption, max 8 words),
  "columns": [ { "label": "Draft section" }, { "label": "Mark" }, { "label": "The evidence" }, { "label": "The missing anchor" } ],
  "rows": [ [ value, value, value — one array per row, same order as the columns, every cell a short string ] ],
  "notes": [ string (one short footnote each) ]
}

Hard rules:
1. Every section of the draft gets one mark, in order; ABSENT rows name the SERP-notes theme instead of a section.
2. DEEP requires specifics (steps, numbers, examples), quoted from the draft — topic mentions are SHALLOW.
3. ABSENT rows quote the SERP-notes line that the draft never answers.
4. The missing anchor column names the one addition that would convert SHALLOW to DEEP.
5. No invented SERP data: the notes are the whole ocean; nothing is fetched.
6. Write in the language of the pasted draft.

User message template:

Plumb my draft. The target keyword: {{keyword}} My draft (paste): {{draft}} My SERP notes — what ranking pages cover: {{serp}}

Variables:

  • {{keyword}} — Target keyword (max 80 chars) sample data shipped with the tool
  • {{draft}} — Your draft (paste) (max 5000 chars) sample data shipped with the tool
  • {{serp}} — SERP notes (paste) (max 2000 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array", "minItems": 2, "maxItems": 6 }, "rows": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.2 · max 2200 output tokens · responseMimeType application/json · budget ~1,600 in / ~1,100 out for a 1,200-word draft · cost per run: 1 request against the free OpenRouter daily pool; the relay floor needs no key at all.

Prompt 02 — 2. Check for strained anchors · surferseo-anchor-check v1.0.0 · best ally: Groq Cloud — free tier · llama-3.3-70b-versatile

Replaces: The over-optimization meter: your pasted draft read for keyword strain — stuffed phrases, echo-sounding headings, sentences that bend grammar for the term — with the natural rewrite beside each.

Why this model: Spotting keyword stuffing is density counting plus tonal judgment about what reads unnatural; a free 70B counts honestly, quotes the straining lines, and rewrites them plainer without losing the term entirely. Fallback ally: OpenRouter — :free model variants.

System prompt (1375 chars):

You check the desk's anchors: given the draft and its target keyword, you count the term's appearances (exact and variants), compute the density, and mark every spot that strains — repeated exact phrase where a pronoun reads better, headings echoing the term word-for-word, sentences bent around it. Each mark quotes the line and writes the natural version beside it.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (the table's caption, max 8 words),
  "columns": [ { "label": "Span" }, { "label": "Fault" }, { "label": "Natural version" }, { "label": "Density note" } ],
  "rows": [ [ value, value, value — one array per row, same order as the columns, every cell a short string ] ],
  "notes": [ string (one short footnote each) ]
}

Hard rules:
1. The density note counts exact-term uses per 100 words and compares to the pasted draft length — arithmetic shown.
2. Only genuinely strained spans are marked; honest topical use passes unnamed.
3. Natural versions keep meaning identical and drop the contortion (pronouns, synonyms the subfield uses).
4. Heading rows get their own check: two consecutive headings echoing the term is a fault regardless of count.
5. Drafts whose density reads natural return one CLEAN row with the count shown.
6. Write in the language of the pasted draft.

User message template:

Check my anchors. Target keyword: {{keyword2}} My draft (paste): {{draft2}}

Variables:

  • {{keyword2}} — Target keyword (max 80 chars) sample data shipped with the tool
  • {{draft2}} — Your draft (paste) (max 5000 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "columns", "rows" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "columns": { "type": "array", "minItems": 2, "maxItems": 6 }, "rows": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.2 · max 1600 output tokens · responseMimeType application/json · budget ~1,400 in / ~800 out · cost per run: 1 request against Groq's free daily quota; the relay floor needs no key at all.

Questions worth asking before you cancel

Without crawling SERPs, how real is the audit?

It's as real as your notes — which is honest to say. Spend ten minutes on the ranking pages, jot what they cover (the paste box suggests categories), and the plumb does the precise comparison work. Surfer automates the gathering; here you gather, the desk audits, and nobody pays US$99 a month for one article.

What does the ABSENT mark catch that rereading doesn't?

Invisibility by familiarity: you cannot see what your own draft never mentions. ABSENT quotes the SERP-notes line your text never answers — cold, quoted, and impossible to unsee once it's on the desk.

Is Surfer's US$82 'AI Search' card separate from Standard?

As read on 2026-09-27, yes: a separate card at US$82/month billed yearly for tracking a daily prompt set in AI answers — recorded in the artifact alongside the Standard/Pro/Peace-of-Mind grid and its savings lines.

Where does my draft go?

Into one request to your free ally and nowhere else — no content editor account, no stored documents, no domain profile. The soundings download as Markdown; the desk forgets the draft when the tab closes.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger