The work
SalesAgencies

A salesperson finishes the call and the twelve page proposal is already written.

WEDOHYPE
/create-proposal12 pages · A4
ClientInferred from the conversation
Sitemap7 pages
PricingFrom the workspace files

Everything is filled in. Confirm and I render the PDF.

Nothing asked that could be inferred

Everything inferred first. One confirmation, then the PDF renders.

The situation

How this used to work

The twelve page proposal was already proven. Cover, welcome, introduction, the approach to design, the sitemap, the work, the process, the timeline, the bonuses, the price, thank you. That shape wins work.

What it cost was an afternoon of assembly per proposal, every time, for a document whose structure never changed.

What we built

The system

A command that treats the entire conversation as the brief.

It infers what it can, pulls the rest from the client's own files, and asks only about what it genuinely cannot know. Then it presents the whole filled-in plan in one message and waits.

Silent context gathering, one confirmation, execution. Not an interview.

How it works

The pipeline, step by step

01 / Read

The conversation is the brief

It works out who the client is from what has already been said, rather than asking a question whose answer is on the screen.

02 / Pull

Their file already knows

Status, decisions and source documents come out of the client's own workspace folder, so the proposal starts from what the agency has actually agreed with them.

03 / Confirm

One message, one yes

The filled-in plan is presented once: client, sitemap, pricing, timeline, bonuses. Every gap is asked about here or not at all.

04 / Render

A4, and it has to actually be A4

Chrome headless prints the PDF, because it is the only method that respects the template's page size. The browser automation tools ignore it and silently force US Letter, which is eighteen millimetres shorter, so the layout shifts and clips and the PDF looks nothing like the page that was approved.

Page boxPrint to PDF
A4
Letter
595 × 842 ptthe template
612 × 792 ptforced silently
50 pt shorter
The layout shifts and clips, and looks nothing like the approved page

Two page boxes, drawn to scale. The shorter one is what gets forced.

05 / Verify

Trust the bytes, not the render

The finished PDF is grepped for its own page box and the number is checked. It has to read A4 and not Letter. A visual check misses that one every time, because a clipped A4 layout looks like a design decision until it is next to the original.

Verify the bytesgrep the file
/MediaBox [0 0 595.28 841.89]A4
/MediaBox [0 0 612 792]Letter · reject
A visual check misses this every time

The page box, read back out of the finished file rather than looked at.

What changed

The result

A proposal that was an afternoon is a conversation and a confirmation.

The interesting part is what the automation refuses to do. It will not invent a welcome headline to fill an empty slot, because a forced line reads as a non-sequitur to the client even when it felt clever while writing it. The slot stays empty.

It also does not trust itself on layout. Greek text wraps differently from English, so the rendered page gets screenshotted and looked at before anything is called done. Counting characters in the source does not predict where a Greek sentence breaks.

The stack

Render

  • Chrome headless
  • print-to-pdf
  • CSS @page A4
  • ImageMagick

Sources

  • client workspace files
  • Airtable fallback

Brand

  • Manrope
  • 12 page A4 template

Free 30 minute call

Let's find where AI fits in your business

A 30 minute call, free, no commitment. You leave with two or three things worth building, whether or not you work with us.

Free, no commitmentYou own everything we buildNo slide deck