Open Due August 15, 2026 0 submitted

Multilingual self-talk search-demand map (en/es/de/fr/pt)

About 1,000 keyword rows covering how people search for negative self-talk and stuck-thought problems in English, Spanish, German, French and Portuguese. Each row carries verified search demand, competition, and the pages that currently rank.

What to deliver

  • 2 minimum · 6 preferred · 42 maximum files
  • How much of each field to fill is spelled out below
  • 220 MB total, at most
  • Every file gets a tamper-proof fingerprint on upload
  • 1+ “documentation” file
  • 1+ “evidence” file

Accepted formats

.MD.PDF.TXT.CSV.XLSX.PNG.JPG.JPEG

What each record needs

phrase_verbatimtextRequired

Search phrase (verbatim). The search phrase as real people type it, in the row's language.

Produce it: Natural, first-person phrasing as actually searched. Not a marketing keyword, not a translated English phrase. Lowercase as typed. Non-English rows must be genuine queries in that language.

Output path: phrase_verbatim

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: keywordqueryphrase

Example: why do i always think im not good enough

Missing values: Not allowed.

Source: Name the tool that surfaced this phrase in the methodology file.

Buyer review: Reject marketing-style keywords, translated English, and phrases that are not plausibly typed by a person about their own thinking.

localetextRequired

Language. Language of the phrase.

Produce it: Exactly one of: en, es, de, fr, pt. Lowercase, no region suffix.

Output path: locale

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: languagelanglocale

Example: de

Missing values: Not allowed.

Buyer review: Verify the phrase is genuinely in the declared language.

countrycountryRequired

Market. The country the search volume is measured in.

Produce it: ISO 3166-1 alpha-2, uppercase. Must match the tool's geo setting for this row.

Output path: country

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: countrygeomarket

Example: DE

Missing values: Not allowed.

Source: State the geo setting used per locale in the methodology file.

Buyer review: Country must be a plausible market for the declared language.

monthly_search_volumeintegerRequired

Monthly search volume. Average monthly searches for this phrase in this country.

Produce it: Must come from the tool named in data_source. Never hand-estimated, interpolated or model-guessed. Minimum 20; drop anything below.

Output path: monthly_search_volume

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: avg_monthly_searchesvolumesearch_volume

Example: 320

Missing values: Not allowed.

Source: The tool named in data_source must be the actual origin of this number.

Buyer review: Re-query a random sample against the declared source. Material mismatches fail the submission.

keyword_difficultydecimalOptional

Keyword difficulty. Competition score from 0 to 100 as reported by the source tool.

Produce it: Leave blank if your tool does not report it. A blank is acceptable; a fabricated value is not.

Output path: keyword_difficulty

Coverage: 0 minimum populated · 700 preferred · 1,200 maximum · 0% minimum · 70% target

Flat-file columns: difficultykdcompetition_index

Example: 34.5

Missing values: Allowed When the source tool does not report a difficulty score..

Source: Must come from the same tool as the volume figure.

Buyer review: Blank is fine. Invented numbers are not.

cpc_usddecimalOptional

Cost per click (USD). Average cost per click in US dollars, as reported by the source tool.

Produce it: Convert to USD if the tool reports another currency, and say which rate you used in the methodology file. Blank is acceptable.

Output path: cpc_usd

Coverage: 0 minimum populated · 700 preferred · 1,200 maximum · 0% minimum · 70% target

Flat-file columns: cpccost_per_clicktop_of_page_bid

Example: 1.42

Missing values: Allowed When the source tool does not report CPC..

Source: Must come from the same tool as the volume figure.

Buyer review: Blank is fine. Invented numbers are not.

serp_top3_domainstextRequired

Top 3 ranking domains. The three domains ranking highest organically for this phrase in this country, in order.

Produce it: Pipe-separated, bare domains, rank order. Example: reddit.com|healthline.com|betterhelp.com. Organic results only, no ads.

Output path: serp_top3_domains

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: top_domainsserp

Example: reddit.com|healthline.com|betterhelp.com

Missing values: Not allowed.

Source: State how SERPs were inspected, including location and personalisation settings.

Buyer review: Re-check a random sample. Allow for normal SERP drift, but the top domains should be recognisably the same.

serp_top1_titletextRequired

Top result page title. Page title of the number one organic result.

Produce it: Copy the title as displayed in the SERP.

Output path: serp_top1_title

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: titletop_result_title

Example: How to Stop Negative Self-Talk: 10 Techniques

Missing values: Not allowed.

Source: Same SERP inspection as the domains column.

Buyer review: Should correspond to the first domain in serp_top3_domains.

serp_content_typetextRequired

Top result format. What kind of page holds position one.

Produce it: Exactly one of: forum, article, video, app_store, quiz, clinic, other. This tells us what format we would have to beat.

Output path: serp_content_type

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: content_typeresult_type

Example: forum

Missing values: Not allowed.

Buyer review: Check the classification matches the actual page at position one.

themetextRequired

Theme cluster. Which of our 15 priority themes this phrase belongs to.

Produce it: Exactly one of: procrastination, perfectionism, engimposter, burnout, breakup, dating, parenting, moneyfear, socialfear, pleaser, griefloss, bodyimage, jobloss, adhd, boundaries. Pick the closest fit; do not invent new themes.

Output path: theme

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: themeclustercategory

Example: procrastination

Missing values: Not allowed.

Buyer review: Check the phrase plausibly belongs to the assigned theme. Reject rows using themes outside the list of 15.

data_sourcetextRequired

Metrics source. Which tool produced the metrics on this row.

Produce it: Exactly one of: google_keyword_planner, dataforseo, google_search_console, google_trends, other. Must be the genuine origin of the volume figure.

Output path: data_source

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: sourcetool

Example: google_keyword_planner

Missing values: Not allowed.

Source: This column is the source attribution.

Buyer review: Cross-check against the exports supplied. A source with no matching export fails.

captured_atdateRequired

Date captured. The date the metrics for this row were pulled.

Produce it: ISO 8601, YYYY-MM-DD. Must be within 90 days of submission.

Output path: captured_at

Coverage: 1,000 minimum populated · 1,000 preferred · 1,200 maximum · 100% minimum · 100% target

Flat-file columns: datecaptured_atpulled_at

Example: 2026-07-20

Missing values: Not allowed.

Buyer review: Reject rows older than 90 days at submission time.

View the full field spec
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "phrase_verbatim",
      "locale",
      "country",
      "monthly_search_volume",
      "serp_top3_domains",
      "serp_top1_title",
      "serp_content_type",
      "theme",
      "data_source",
      "captured_at"
    ],
    "properties": {
      "theme": {
        "type": "string",
        "title": "Theme cluster",
        "examples": [
          "procrastination"
        ],
        "description": "Which of our 15 priority themes this phrase belongs to."
      },
      "locale": {
        "type": "string",
        "title": "Language",
        "examples": [
          "de"
        ],
        "description": "Language of the phrase."
      },
      "country": {
        "type": "string",
        "title": "Market",
        "examples": [
          "DE"
        ],
        "description": "The country the search volume is measured in."
      },
      "cpc_usd": {
        "type": "number",
        "title": "Cost per click (USD)",
        "minimum": 0,
        "examples": [
          "1.42"
        ],
        "description": "Average cost per click in US dollars, as reported by the source tool."
      },
      "captured_at": {
        "type": "string",
        "title": "Date captured",
        "format": "date",
        "examples": [
          "2026-07-20"
        ],
        "description": "The date the metrics for this row were pulled."
      },
      "data_source": {
        "type": "string",
        "title": "Metrics source",
        "examples": [
          "google_keyword_planner"
        ],
        "description": "Which tool produced the metrics on this row."
      },
      "phrase_verbatim": {
        "type": "string",
        "title": "Search phrase (verbatim)",
        "examples": [
          "why do i always think im not good enough"
        ],
        "maxLength": 200,
        "minLength": 3,
        "description": "The search phrase as real people type it, in the row's language."
      },
      "serp_top1_title": {
        "type": "string",
        "title": "Top result page title",
        "examples": [
          "How to Stop Negative Self-Talk: 10 Techniques"
        ],
        "maxLength": 300,
        "description": "Page title of the number one organic result."
      },
      "serp_content_type": {
        "type": "string",
        "title": "Top result format",
        "examples": [
          "forum"
        ],
        "description": "What kind of page holds position one."
      },
      "serp_top3_domains": {
        "type": "string",
        "title": "Top 3 ranking domains",
        "examples": [
          "reddit.com|healthline.com|betterhelp.com"
        ],
        "description": "The three domains ranking highest organically for this phrase in this country, in order."
      },
      "keyword_difficulty": {
        "type": "number",
        "title": "Keyword difficulty",
        "maximum": 100,
        "minimum": 0,
        "examples": [
          "34.5"
        ],
        "description": "Competition score from 0 to 100 as reported by the source tool."
      },
      "monthly_search_volume": {
        "type": "integer",
        "title": "Monthly search volume",
        "minimum": 20,
        "examples": [
          "320"
        ],
        "description": "Average monthly searches for this phrase in this country."
      }
    },
    "additionalProperties": false
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "minItems": 1000
}

Record relationships

No cross-field rules are required.

Files and relationships

documentation

Methodology write-up

One file, plain prose is fine.

1 minimum · 1 preferred · 2 maximum files · .md, .pdf, .txt · 10 MB each
evidence

Raw tool exports

Must collectively cover at least 10 percent of submitted rows.

1 minimum · 5 preferred · 40 maximum files · .csv, .xlsx, .png, .jpg, .jpeg, .pdf · 25 MB each

Rights and sourcing

  • Must be free to use commercially
  • Whoever delivers it confirms they have the right to share it
AcceptedCC0-1.0CC-BY-4.0ODC-BY-1.0

Additional instructions

RealityWipe publishes programmatic landing pages for self-talk patterns across five locales. We can generate pages faster than we can tell which ones deserve to exist. This dataset shows which patterns have real demand outside English and which SERPs are winnable, so page production follows demand instead of guesswork.