VOOZH about

URL: https://apify.com/solutionssmart/brand-dna

⇱ Website Brand Analyzer & Identity Extractor Β· Apify


Pricing

from $5.00 / 1,000 results

Go to Apify Store

Extract structured brand identity from any website β€” colors, fonts, tone, positioning, and reusable marketing templates β€” using deterministic heuristics with no AI hallucinations.

Pricing

from $5.00 / 1,000 results

Rating

5.0

(1)

Developer

πŸ‘ Solutions Smart

Solutions Smart

Maintained by Community

Actor stats

1

Bookmarked

98

Total users

13

Monthly active users

a month ago

Last modified

Share

πŸš€ Brand DNA Actor (No LLM)

Website Brand Analysis & Identity Extraction β€” Deterministic & Repeatable

πŸ‘ Brand DNA visual concept

Visual concept for Brand DNA live view, brand signal extraction, and campaign insight output.

Brand DNA Actor automatically analyzes any business website and builds a structured Brand DNA profile β€” visual identity, tone, positioning, and reusable marketing templates β€” using deterministic heuristics only.

No LLMs. No hallucinations. No unpredictable output.

Just repeatable brand intelligence you can plug into audits, automation, and marketing workflows.

πŸ‘‰ Extract brand signals in seconds.

πŸ” Why Use Brand DNA Actor?

Understanding a brand manually takes time:

  • visual style analysis
  • tone detection
  • positioning evaluation
  • copy signal extraction

This actor automates the entire process β€” turning website content into structured brand intelligence.

Perfect for agencies, growth teams, analysts, and automation builders.

πŸ†š Brand DNA vs Creation Tools

πŸ‘ Brand intelligence vs brand creation comparison

A positioning snapshot showing Brand DNA as a deterministic brand intelligence engine built for structured extraction, workflows, and automation use cases.

⚑ What Happens When You Run It

For each website:

βœ… Crawl homepage + key internal pages
βœ… SPA detection with Playwright fallback (new in v2.0)
βœ… Extract colors, fonts, logo candidates
βœ… CSS variable extraction for brand colors (new in v2.0)
βœ… Detect tone and voice dimensions
βœ… Identify positioning signals
βœ… CTA extraction with weighted scoring (new in v2.0)
βœ… Multi-signal extraction: JSON-LD, NEXT_DATA, meta tags (new in v2.0)
βœ… Generate hero/tagline candidates
βœ… Build reusable CTA & ad templates
βœ… Produce a structured brand summary \

All deterministic. All repeatable.

🎯 Ideal Use Cases

  • Competitor brand analysis
  • Client onboarding audits
  • Marketing template generation
  • Website tone evaluation
  • Creative direction baselines
  • Automation pipelines (n8n / CRM workflows)
  • Brand intelligence dashboards

🧠 Key Capabilities

Visual Identity Extraction

  • Primary/secondary colors
  • Accessibility contrast signals
  • Typography detection
  • Logo candidates
  • CSS variables for brand colors

Copy & Voice Signals

  • Top keywords & phrases
  • CTA analysis with scoring
  • Tone heuristics
  • Voice dimensions

Positioning Intelligence

  • Industry guess
  • Audience signals
  • Value propositions
  • Brand attributes
  • Positioning summary

Marketing Templates

  • CTA rewrite variants
  • Social post skeletons
  • Short ad copy templates

Multi-Signal Extraction (new in v2.0)

  • JSON-LD structured data (Organization, WebSite, LocalBusiness)
  • Next.js __NEXT_DATA__ parsing
  • Nuxt data detection
  • Meta/OpenGraph tag collection

πŸ“¦ Output

Each run writes to the default dataset. The actor does not create separate datasets named "BrandKit" and "Templates".

Each analyzed website writes one type: "brandDNA" item to the default dataset.

Optional extras are nested into that same item:

  • brandKit
  • templates
  • pages when outputPages is enabled
  • delta when outputDiff is enabled
  • debug when debug output is enabled
  • campaignInsights for dashboard-ready monitoring, benchmarking, CTA prediction, localization, and automation cues πŸ“Š

The brandDNA.brandKit payload includes:

  • Visual identity
  • Tone & positioning
  • Hero/tagline candidates
  • Contacts
  • Signals from JSON-LD, NEXT_DATA, meta tags
  • Markdown brand summary

For multi-URL comparison runs, the side-by-side comparison is written to the key-value store as comparison.json instead of adding an extra dataset item.

The visual live view is written to the default key-value store for every successful run:

Optional extra file exports are written to the default key-value store, not the dataset:

  • brand-dna-output.json
  • brand-dna-report.md
  • brand-dna-report.pdf
  • RUN_SUMMARY
  • homepage-screenshot.png when screenshots are enabled

The Actor now also defines a key-value store schema and an expanded output schema, so Apify Console can surface these files more clearly in the Output and Storage tabs. Collections are grouped as:

  • HTML reports
  • JSON exports
  • Written reports
  • Screenshots
  • Comparison outputs
  • Run summaries

Example Output

{
"type":"brandDNA",
"startUrl":"https://www.apify.com",
"detectedLanguage":"en",
"artifacts":{
"liveView":{
"key":"brand-dna-live.html",
"contentType":"text/html"
},
"runSummary":{
"key":"RUN_SUMMARY",
"contentType":"application/json"
}
},
"brandKit":{
"name":"Apify",
"style":{
"fonts":{
"body":"Inter",
"headings":"Inter",
"buttons":"Inter"
},
"logo":{
"url":"https://www.apify.com/img/apify-logo/wordmark.svg"
}
},
"positioning":{
"industryGuess":[{"label":"software","confidence":0.95}],
"audience":[{"label":"B2B","confidence":0.95}],
"valueProps":["automation","speed","security","reliability"],
"positioningStatement":"Software platform for businesses and developers focused on automation, speed, and security."
}
},
"templates":{
"ctaVariants":["Talk to a specialist","Get in touch","Reach out"]
},
"campaignInsights":{
"brandConsistencyMonitor":{
"status":"stable"
},
"abTestingPredictor":{
"winner":{
"text":"Try it now",
"confidence":"high"
}
}
}
}

πŸ†• New in v2.0

Hybrid Crawling (HTML-First + Fallback Rendering)

  • Fast HTML extraction by default using CheerioCrawler
  • Automatic SPA shell detection with Playwright fallback
  • Domain hit-rate tracking for adaptive rendering decisions
  • Configurable rendering timeout and selector waiting

Anti-Bot & Stability

  • Apify Proxy integration (Residential/Datacenter)
  • Adaptive concurrency (starts low, scales on success)
  • Exponential backoff for 403/429 responses
  • Request pacing to avoid rate limiting

Enhanced CTA Extraction

  • Weighted scoring based on position, class, text, and href
  • Hero/main position bonus, nav/footer penalty
  • Action verb detection and generic label filtering
  • Top-N ranked results

Multi-Signal Extraction

  • JSON-LD structured data (Organization, WebSite, LocalBusiness)
  • Next.js __NEXT_DATA__ parsing
  • Nuxt data detection
  • Meta/OpenGraph tag collection
  • CSS variable extraction for brand colors

πŸ“₯ Input Configuration

FieldTypeDefaultDescription
startUrlstringrequiredWebsite URL to analyze
startUrlsstring[]-Optional batch mode input (1-20 URLs). When provided, startUrl is ignored.
maxPagesinteger8Maximum pages to crawl (1-50)
respectRobotsTxtbooleantrueRespect robots.txt rules
timeoutSecsinteger120Maximum crawl duration
includeBlogbooleantrueInclude blog pages

πŸ–₯️ Rendering Options

FieldTypeDefaultDescription
useRenderingFallbackbooleantrueEnable Playwright for SPA shells
renderingTimeoutMsinteger1200Rendering timeout in ms
renderingWaitForSelectorsstring"main, h1, button"Selectors to wait for

🌐 Proxy Options

FieldTypeDefaultDescription
useProxybooleantrueEnable Apify Proxy
proxyGroupstring"DATACENTER"Proxy group (RESIDENTIAL/DATACENTER)

🚦 Concurrency Options

FieldTypeDefaultDescription
maxConcurrencyinteger2Maximum concurrent requests (1-8)
adaptiveConcurrencybooleantrueAuto-adjust based on success
requestDelayMsinteger0Delay between requests

πŸ” Retry Options

FieldTypeDefaultDescription
maxRequestRetriesinteger3Max retries per request

πŸ›£οΈ Path filtering (new)

FieldTypeDefaultDescription
includePathsstring[]β€”Optional path allowlist (wildcards, e.g. /products/*). Start URL is always included.
excludePathsstring[]β€”Optional path denylist (wildcards, e.g. /blog/*, /legal/*).

🌍 Multi-language & translation

FieldTypeDefaultDescription
languagestring"auto"Content language: auto (detect), en, de, es, fr, it, pt
useLanguageDetectorbooleantrueWhen language is Auto, use Apify Language Detector for ML-based detection
useTranslationbooleanfalseTranslate page content to a target language before extraction
translateToLanguagestring"en"Target language when translation is enabled
translationActorIdstringβ€”Apify actor ID for translation (e.g. tkapler/deepl-actor) when Use translation is enabled
translationBatchModebooleantrueSend all page texts in one batch to the translation actor; falls back to sequential mode if unsupported

πŸ“¦ Output extras (new)

FieldTypeDefaultDescription
outputFormatstring"single"single: one default-dataset item with type: brandDNA containing nested outputs. split is deprecated and Store runs are forced to single-item output for billing safety.
outputComparisonbooleanfalseWhen 2-5 URLs are provided, write side-by-side comparison output to comparison.json in the key-value store.
outputPagesbooleanfalsePush one dataset item per crawled page with page-level extracted fields.
outputDiffbooleanfalseCompare current brandKit with previous cached snapshot and output a delta item.
exportFormatsstring[]β€”Optional extra file exports to KV store: json, markdown, html, pdf. The visual brand-dna-live.html live view is now written automatically for every successful run; html remains supported for backward compatibility.

πŸ”” Webhook options (new)

FieldTypeDefaultDescription
webhook.urlstringβ€”Webhook destination URL (preferred over callbackUrl).
webhook.eventsstring[]["completed","failed"]Events to send: started, completed, failed.
webhook.retriesinteger1Retry attempts on network error / 5xx.
webhook.retryDelayMsinteger2000Delay between retries.
webhook.timeoutMsinteger10000Request timeout per attempt.
webhook.secretstringβ€”Optional HMAC signing secret (x-branddna-signature: sha256=...).
webhook.headersobjectβ€”Optional custom headers map.
callbackUrlstringβ€”Legacy fallback URL used when webhook.url is not set.

Cache & cost

FieldTypeDefaultDescription
cacheTtlSecondsinteger0Reuse a persisted cached result for the same URL and settings across runs within this many seconds.
forceRefreshbooleanfalseSkip reading from cache and always perform a fresh crawl.

Example Input

Use https://www.apify.com as the recommended demo and smoke-test URL. It produces a representative multi-page brand profile without requiring special handling.

{
"startUrl":"https://www.apify.com",
"mode":"full",
"maxPages":8,
"crawlScope":"site",
"respectRobotsTxt":true,
"useProxy":true,
"proxyGroup":"DATACENTER",
"captureScreenshot":true,
"outputPages":true,
"outputDiff":true,
"exportFormats":["json","markdown","pdf"]
}

Supported locales: English (en), German (de), Spanish (es), French (fr), Italian (it), and Portuguese (pt). Extraction uses locale-specific stopwords, tone markers, industry/audience keywords, CTA maps, and templates. Add more languages by adding a src/data/xx.js locale file and registering it in src/data/index.js.

🧾 Translation actor contract

When Use translation is enabled, Brand DNA calls your translation actor to translate page content before extraction. The actor must accept:

  • Single-text input: text (string), targetLanguage (e.g. en, de), and optionally sourceLanguage (e.g. auto).
  • Batch input (optional): texts (array of strings), targetLanguage. If supported, Brand DNA will send one batch per run instead of one call per page.

The actor’s default dataset should return items where each item has a translated string in one of: translatedText, text, or translation. For batch mode, return either one item per text in the same order, or one item with a translations array.

Known-compatible actors include DeepL (AI translation). If batch mode fails (e.g. actor does not support texts), Brand DNA falls back to sequential single-text calls.

πŸ”— Integrations: n8n, Make, Slack/Teams

n8n & Make: Use the Apify node (n8n) or Apify module (Make) to run Brand DNA. Input: startUrl or startUrls (array, max 20), plus optional mode, maxPages, language, outputFormat, exportFormats, webhook, etc. Output goes to the default dataset primarily as type: brandDNA items, plus type: error when a URL fails. The visual live view is always exposed as brand-dna-live.html, and optional extra reports and summaries are exposed in the default key-value store and linked in the Actor Output tab.

Webhook: Set webhook.url to receive signed JSON events (started, completed, failed). Base payload includes { event, timestamp, runId, datasetId, status, startUrls, resultsCount, errorCount }. Configure retries/timeout/headers with webhook.retries, webhook.retryDelayMs, webhook.timeoutMs, and webhook.headers. If webhook.secret is set, the actor adds x-branddna-signature (HMAC-SHA256). callbackUrl remains supported as a fallback for backward compatibility.

πŸ”„ Demo Workflow

Run β†’ extract brand profile β†’ feed into workflow:

Brand DNA Actor
↓
n8n / automation tool
↓
brand audit / template generator /CRM enrichment

Instant brand intelligence β€” no manual review required.

πŸŽ₯ Video Walkthrough

See how the actor works and why to use it:

πŸ”’ Deterministic by Design

Unlike AI-driven analysis:

βœ” repeatable outputs βœ” explainable heuristics βœ” no hallucinations βœ” stable automation pipelines

Perfect for production workflows.

πŸ›  Integration Ready

Works seamlessly with:

  • Apify scheduling
  • n8n workflows (docs/n8n-integration.md, n8n-workflow-brand-dna.json)
  • OpenClaw (docs/openclaw-integration.md, skills/brand-dna/SKILL.md)
  • CRM pipelines
  • Reporting dashboards

⭐ Rate This Actor

If this actor helped you, please rate it on Apify. Your rating helps others discover it and supports future improvements.

⚠ Limitations

  • Rule-based approximations

Designed for structured automation β€” not creative AI writing.

🎯 Final Value

Instead of manually dissecting websites…

You get:

πŸ‘‰ automated brand intelligence
πŸ‘‰ reusable marketing assets
πŸ‘‰ structured identity signals
πŸ‘‰ repeatable analysis \

All in seconds.

πŸ’³ Pricing

Brand DNA uses Apify pay-per-event pricing and is billed per analyzed website.

  • Base result: one analyzed website, including up to 8 crawled pages.
  • Extended crawl: if a run crawls 9 to 20 pages, one extra extended_pages event is charged.
  • High-volume crawl: if a run crawls 21+ pages, the run charges extended_pages plus high_volume_pages.
  • Single-result billing: each website still produces one main type: "brandDNA" dataset item, so nested outputs do not multiply result charges.
  • Included in the same result: brandKit, templates, campaignInsights, optional pages, optional delta, and optional debug data.
  • Not billed as extra dataset items: the visual live view (brand-dna-live.html), RUN_SUMMARY, screenshots, and comparison.json are written to the key-value store.

Current Store pricing is designed around these tiers:

  • 1-8 pages: base result price
  • 9-20 pages: base result price + extended crawl
  • 21+ pages: base result price + extended crawl + high-volume crawl

This keeps smaller runs affordable while letting deeper audits cover their additional crawl and extraction cost more fairly.

You might also like

Local Business Lead Finder

solutionssmart/local-business-lead-finder

Discover, extract, and enrich local business leads from Google Maps. Find businesses by keyword and location, collect contact details, emails, and social profiles, and export clean, deduplicated data. Built for automation, CRMs, and recurring lead generation workflows.

πŸ‘ User avatar

Solutions Smart

80

Nextdoor Business Scraper

scraped/nextdoor-business-scraper

Scrape businesses from Nextdoor

Nextdoor Scraper

alizarin_refrigerator-owner/nextdoor-scraper

Scrape local business recommendations, neighborhood posts, and community data from Nextdoor. Get authentic local insights and recommendations that aren't available on other platforms.

153

angi.com (Angie's List) Scraper

igolaizola/angi-scraper

Extract verified business data from Angi (formerly Angie's List) including phone numbers, ratings, and contact details for home service professionals. Get comprehensive listings with company information, customer reviews, and contact data across 150+ categories like plumbers and contractors.

πŸ‘ User avatar

IΓ±igo Garcia Olaizola

309

5.0

Local.ch Business Scraper - Billig CheapπŸ”πŸ“žπŸ‡¨πŸ‡­πŸ’

scrapestorm/local-ch-business-scraper---billig-cheap

Looking to collect business listings from local.ch? πŸ’πŸ”Ž With this scraper, you can extract business data including name, categories, address, city, ratings, contact details (phone, email), websites, opening hours & more Perfect for lead generation, competitor research, and structured datasets πŸ“Š

14

3.3

Local Lead Generation Agent

apify/local-lead-generation-agent

Find truly local leads by scraping Instagram profiles based on search queries. Extract website links, contact details, emails, social media details. The AI agent matches and scores leads using LLMs via LangChain, explains scoring, and compiles the data into a common dataset for easy access and use.

WordPress Scraper

jupri/wordpress

πŸ’« Scrape WordPress and Woocommerce websites

WordPress Post Scraper

hgservices/wordpress-post-scraper

Extract every blog post from any WordPress site β€” title, content, date, author, image, categories and tags.

WordPress Articles Scraper

extremescrapes/wordpress-articles-scraper

The WordPress Articles Scraper is an Apify actor that extracts posts and metadata from any WordPress website using the WordPress REST API. It automatically handles pagination and fetches additional information like author details, categories, tags, and featured images.

πŸ‘ User avatar

Extreme Scrapes

136

Baidu Tieba Scraper

natanielsantos/baidu-tieba-scraper

This powerful tool allows you to easily extract posts from forums, profiles, search terms and topics from tieba.baidu.com. Only pay for what you use. Works with MCP and AI tools.

πŸ‘ User avatar

Nataniel Santos

14

Related articles

AI brand monitoring: How to track mentions in LLMs
Read more