You have a list of 300 agencies and SMBs you want to reach out to. You know a generic email will fall flat. So you open the first prospect's website, right-click their logo, save it, drop it into your email template. Then the second. Then the third. By the fifteenth, you've spent an hour and haven't written a single line of your message. Visual personalization sounds great in theory; in practice, it dies at row fifteen of a spreadsheet.
The problem isn't the idea — it's the collection. A company's logo and brand visuals are public; they're on the website, and they're often declared in the page code so that Google and social networks display them correctly. The manual process is just too slow to work at list scale. When you automate that collection, visual personalization becomes feasible again — not just for three hand-picked prospects, but for the entire list.
Module brand_assets — Logo & visuals
A list of companies with their websites comes out with each company's logo and brand visuals automatically retrieved and ready to drop into an email, a mockup, or a landing page.
Here is how to extract a company's logo from its website at list scale, exactly what the brand_assets module on outsend.xyz retrieves, and what you can concretely do with that visual raw material when preparing a first outreach.
Why a real logo changes the nature of a first contact
Because a familiar visual signals that the message was prepared for this company, not blasted to a thousand addresses. The recipient recognizes their own logo in a fraction of a second, and that recognition shifts the email from the "advertising" pile to the "someone paid attention to me" pile. That's a difference in attention before they've even read the first line.
The effect of personalization on response rates isn't just a marketer's intuition. In a controlled trial published in BMC Medical Research Methodology, 2015, recipients of a personalized invitation responded at 69% versus 50% for a generic version — 1.5× more responses, even though both groups had already been informed in advance. Visual personalization pushes this lever further: it is seen before it is read.
For a creative agency, a studio, or a SaaS that sells through custom demos, the prospect's logo is not decoration — it is the hook itself. A mockup saying "here's your brand on our product" is worth ten lines of pitch copy.
Where a brand's logo lives and how to extract it from a website
A company's logo is almost never hidden: it is declared in the page so it displays correctly in search engines and on social networks. Extracting a logo from a website means reading these known locations in the code rather than hunting visually for an image. Three standardized sources carry most of the signal.
The first is schema.org markup: the logo property, attached to the Organization type, designates "an associated logo" — the official logo the site declares to Google for its Knowledge Graph. When present, this is the most reliable source, because the company itself is pointing to its reference logo.
The second is the Open Graph protocol: the og:image tag, one of the four basic properties of the protocol, provides "an image URL which should represent your object within the graph" — the image displayed when the page is shared on social networks. It often surfaces a brand visual, sometimes a banner or large logo.
The third is the actual page: the favicon declared in the header, and the <img> tags in the page header whose file names or class names reveal the logo. Combining these signals yields, for most well-built sites, a usable logo without any human intervention.
How the brand_assets module retrieves logos at list scale
You provide a list of companies with their websites — typically the output of a Google Maps scrape exported to CSV — and the module visits each site to extract the logo and brand visuals, row by row, without a single manual right-click. The results are added to your list, with the assets stored alongside it.
The screenshot option is an explicit opt-in, not a default: it is valuable for client presentations, but it adds processing overhead, so it should only be enabled when you actually need it. The rest — logo collection — runs at the normal speed of a batch enrichment job, the same principle as tech stack detection: a list goes in, a richer list comes out.
Hi, I imagined what Studio Nord could look like inside our tool…
The real logo is placed at the top of the message — retrieved automatically, not downloaded by hand.
Three use cases where extracting a company's logo saves hours
Automated logo collection only makes sense when tied to a concrete use case. Three profiles benefit directly, because their first outreach relies specifically on visuals.
The creative agency or studio. You prospect brands by showing them what you would do with their identity. With logos from your entire list retrieved at once, you produce personalized mockups in bulk instead of one per evening. The mockup becomes your hook, and that is what high-quality lead generation does best.
The SaaS that sells through demos. A landing page or email that shows the prospect's product in their own brand colors converts better than a neutral screenshot. The retrieved logo powers a personalized demo at scale, with no designer needed for each account.
The freelancer starting out. When you are looking for your first clients without buying a contact list, the quality of each approach matters more than volume. A first message that shows you actually looked at the prospect's brand stands out in a saturated inbox.
The logo alone is not enough: chain it with the rest of the record
A logo without a valid email address or company context is a pretty pixel with no recipient. The strength of an all-in-one suite is being able to chain visual collection with the other enrichment layers inside a single prospecting pipeline, without exporting and re-importing CSVs between five different tools.
In practice, the logo pairs with the company's social profiles for a multichannel message, with legal identifier enrichment to qualify which prospects deserve the creative effort, and with a site speed audit when your hook is specifically about improving their online presence. The visual earns attention; the rest of the record delivers relevance.
Everything exports with your list. outsend.xyz is in alpha and access is free by application: you can request access here and describe the type of list you want to retrieve logos for.
Want a full overview? See all OutSend features.
Try outsend for free
All-in-one, built for European B2B. Free alpha access by application.
Request free alpha accessFAQ — Extracting a prospect's logo and brand visuals
How do you extract a company's logo from its website?
By reading the locations where the site itself declares its logo: the logo property in schema.org markup attached to the Organization type, the Open Graph og:image tag, and the favicon in the header. The brand_assets module in outsend inspects these sources for each site in a list and retrieves the visual without any manual right-clicking.
What visuals does the module retrieve exactly?
The brand logo declared on the site, and optionally a full-page screenshot of the homepage rendered at 1280×800 by headless Chromium. Assets are stored with your list and can be exported. The module does not generate a missing logo or create a brand identity — it collects what is already publicly available on the site.
Is it legal to retrieve a prospect's logo?
The logo is publicly published by the company on its own website, and is often declared in the code specifically so that Google and social networks can display it. Retrieving it to prepare an outreach message is equivalent to consulting publicly available information. The use you make of it remains subject to trademark law and copyright: a prospecting mockup is generally accepted, but avoid any use that implies a partnership or endorsement by the brand.
What happens if a site has no usable logo?
If the site exposes neither schema.org markup, nor Open Graph tags, nor a usable favicon — or if its logo is only CSS-styled text — the row may come back without an asset. This is a known limitation of the alpha: the module collects logos that are properly declared; it does not reconstruct a missing visual.
Does every company in the list need a website?
Yes for this step: the module works from each row's website URL. Rows without a website are not enriched with visuals. That is why a Google Maps scrape is often run first — it surfaces the websites — followed by logo collection on the rows that have one.
In what format are the visuals returned?
Logos and any screenshots are stored as assets alongside your list, and the enriched list exports with its other columns. You get both the visual files and the structured list, ready to feed into an email, a mockup, or a landing page.