Two of the tools we build sit either side of the same problem. Scout knows who visited your site, why they came, and how sure we are about it. SwarmGen turns an HTML template into a pixel-perfect PNG or PDF on demand. Point one at the other and you get the thing clients actually want: a branded report, generated for them, that reads like you wrote it by hand.
This is how we do our visitor-intelligence reporting — not by bolting a PDF library into Scout, but by letting each tool do the one thing it's good at and passing the data between them.
Why two tools, not one
It would have been easy — and wrong — to grow a PDF generator inside Scout. Rendering documents well is its own discipline: fonts, page sizing, image handling, a headless browser to paint it all. That's exactly what SwarmGen already is. So Scout stays focused on the part only it can do (identifying companies, scoring confidence, attributing intent) and hands a finished bundle of facts to SwarmGen, which owns the pixels.
The dividing line is clean: Scout owns the data and the confidence; SwarmGen owns the document. Each is independently useful — you can pull a CSV out of Scout, or render any template through SwarmGen's API — and together they're a reporting pipeline.
How a report gets made
When a report is due, Scout assembles it for a single workspace: the companies identified in the period, each with its confidence score and band, the entry paths that pulled them in, the search intent behind the visit, and a few headline totals. It pulls the workspace's own branding alongside — name, logo, currency — because the report should look like the client's, not ours.
That bundle is poured into a SwarmGen template as merge fields. SwarmGen templates are plain HTML with {{token}} placeholders, so the report's design lives in one editable template rather than buried in code. SwarmGen merges the data in, renders it with a headless browser, and hands back a branded PDF.
{{tokens}} → the merged, rendered reportThe bits that make it feel finished
- It's on their letterhead. The workspace logo and name come straight off the account, so the document reads as the client's report, not a tool's export.
- The design lives in a template. Because the layout is an HTML template with merge tokens, changing how every report looks is a template edit — no redeploy, no code change.
- It runs on a schedule. Weekly or monthly, the report builds and goes out on its own. Nobody exports a CSV and reformats it by hand on a Monday morning.
- The render is the same API anyone gets. We didn't build a private path. Scout calls SwarmGen's public render endpoint — the exact one available to any SwarmGen user.
The pattern, not just the pipeline
This is how we like to build: small, sharp tools with clean edges, composed into something bigger. Scout didn't need to learn how to render PDFs, and SwarmGen didn't need to learn anything about visitor intelligence. The integration is just one passing the other a well-shaped bundle of data — and the result is a report that looks hand-made, produced automatically.
You can read more about each half on its own — Scout for the visitor intelligence, SwarmGen for the rendering — or if you've got a reporting job that sounds like this, tell us about it.