← All work Content operations · AI pipeline

Paste a Google Doc. Get a finished draft.

LazyRush turns raw writing into a review-ready HubSpot blog draft. It cleans the formatting, writes the SEO metadata, licenses a fresh stock image, adds internal links and routes the post to the right regional blog, in English or Arabic.

My roleSolo architect & builder
UsersSEO, editorial & regional marketing
Destinations4 regional blogs, 2 languages
TypeInternal web app, live in production
7 → 1manual steps per post, now a single action
4internal links added to every post automatically
0repeated stock images, tracked per region
Bulkpaste a list of docs and process them all in one run

The problem

Writing the article was the easy part. Getting it into the CMS properly was slow, repetitive, and easy to get wrong.

Copy, paste, fix, repeat

Google Docs formatting breaks in the CMS. Headings, links and comments all needed cleaning by hand for every post.

Image hunting

Search the stock library, check the image hadn't been used before on that blog, license it, download it, upload it.

SEO busywork

Meta descriptions, slugs, tags, author and related-post links, multiplied by four blogs and two languages.

The pipeline

One click runs five stages. AI handles the judgement calls (metadata, image search terms, related posts). Deterministic code handles everything else.

1 · Source
Pasted text or HTML
Google Doc linkone, or a list for bulk
2 · Clean
Strip comments
Unwrap redirect links
Detect H2 headings
Title + clean slug
3 · AI enrich
Meta descriptionunder 155 characters
Image search query
4 related postssame language
4 · Image
Search stock library
Skip AI-generated & used
License + upload
5 · CMS draft
HubSpot drafttag, author, language, links
Archive + editor link
Human input Deterministic rules AI step Output is always a draft. A human publishes.

Three ways to handle images

Every licensed image costs money, so the team chooses how much control they want on each run.

Automatic

AI writes the search query and the first eligible, unused image is licensed. Fastest option, one license per post.

Pick from six

Six unlicensed previews, an editable query, and "show me more". Only the chosen image gets licensed.

No image

Create the draft without one and add it later. No license used.

Decisions that matter

Automation that editors trust, because they stay in control of what goes live.

Drafts only, never auto-publish

The tool does the heavy lifting and stops at "draft". Final edits and publishing stay with a person in the CMS.

An image ledger per region

Every licensed image is recorded against its blog. No repeats within a region, but deliberate reuse across regions is allowed.

Bulk runs keep going

If one document in a batch fails, the rest carry on. At the end you download a CSV with the status and link for every row.

Fail soft where it's safe

If tags or related links can't be found, the draft is still created. Only critical steps stop the run.

Region and language routing

Each post lands on the right blog, with Arabic versions going to their own destinations and related links matched by language.

A diagnostics screen

One page to test the CMS, stock library, scraper and AI connections, so problems get found in seconds, not hours.

Where else this works

Any team that publishes content at volume and loses hours between "written" and "live".

  • Media & publishing
  • E-commerce product pages
  • Knowledge bases
  • Multi-market brands
  • Content agencies
  • SaaS content marketing

Built with

ReactTypeScriptViteDeno edge functionsPostgreSQLGemini (via AI gateway)HubSpot CMS APIShutterstock APIFirecrawlGoogle DocsTailwind CSSLovableClaude