CASE STUDY

How Workis Runs 260 Live Jobs Across Three Countries On One Click Per Job

Here’s how we built it 👇

The Challenge: A Business Built on Speed, Running on a System That Couldn’t Keep Up

Workis connects workers with short-term, shift-based jobs: warehouse, logistics, manufacturing, promo. Jobs open fast and close faster - a role posted Monday morning can be fully staffed by Monday afternoon.

This is great for their clients but adds a complexity layer for the internal team.

Every time a new job went live, someone on the team had to build an ad for it from scratch. That means opening Meta Ads Manager, an interface that crashes, moves slowly, and wasn't designed with speed in mind, creating a campaign, writing copy, finding or making a creative, setting targeting and budget, and publishing.

Then do it again for the next job.

At 10 to 15 new jobs per day across Lithuania, Latvia, and Estonia, that was two to three hours of manual, repetitive work every morning before the team could do anything else.

And when the job is filled, the ad doesn't turn off by itself. Someone on the team has to catch it and switch it off manually, job by job, country by country.

Because at the volume Workis operates, keeping tabs on which ads are still relevant and which ones are spending against roles that since the last daily check isn't only time consuming, it's a lot for a team to keep track of. There’s always a newer job to build an ad for.

What We Built

We built a system that runs the full lifecycle of every Workis job ad - a self-managing ad operation that handles everything from new job detection to the moment an ad is permanently retired, and everything in between.

The team’s job is now: review the prepared ad, click send.
The system does the rest.

New job to finished ad in 26 seconds

The team decides which jobs get ads and pastes the job posting URL into the system. From there, it automatically:

  • Pulls the full job details: title, employer, city, salary, hours, shift dates

  • Detects the country and language from the data automatically, across Lithuanian, Latvian, and Estonian

  • Writes the ad copy in the right language with the right local formatting, modelled on the real Workis ads we analysed to understand what was already performing

  • Generates a branded creative

  • Drops everything into a review queue on a custom Airtable interface. Nothing goes live without a human approving it first

  • On approval, publishes to the right Meta ad account, page, and campaign for that country

From a new job in the feed to two finished, reviewable creatives in the queue: around 26 seconds.

Ads that turn themselves off when the job is gone

This is the part that solves the actual problem.

Every ad the system creates is linked to its live job record. The moment a job’s shifts close, the ad pauses on Meta automatically. If shifts reopen, the ad comes back. When the job disappears from the feed entirely, the ad is paused, held for seven days in case the role reposts, and permanently archived if it doesn’t.

It runs 13 checks a day and the team doesn’t have to touch it.

Built with ad account security and protection in mind

One thing we see regularly: businesses automating Meta ads by connecting an LLM directly to their ad account with no guardrails. The AI starts making API calls at a volume that triggers Meta's fraud detection. The platform can't tell the difference between an AI assistant and a click fraud network, so it treats them the same way. The account gets banned and takes everything with it: conversion history, audience data, performance built over months or years. In most cases it's permanent.

The Workis system is built the way Meta's developer documentation actually recommends: developer API access, rate limits we stay well within, a system user token, stable IPs, and a human approval step before any ad goes live. The account has never been flagged. The team saves hours every week and the infrastructure underneath the automation is as stable as the automation itself.

Uncontrolled AI with direct API access and no human oversight is where accounts get lost. That's not a risk we take with client accounts.

Three countries, three languages, no manual language tagging

  • The pipeline detects country and language from the job data itself. 

  • Copy comes out in the right language with the right local conventions. 

  • Creatives are composited onto language-specific branded templates. 

  • Long job titles that don’t fit the template are handled by a custom line-breaking routine that keeps gendered word endings intact and accounts for the pixel width of diacritic characters.

It runs the same way for a warehouse job in Vilnius, a logistics role in Riga, and a promo shift in Tallinn, without anyone changing a setting. Branding stays consistent across all three markets, same look, same templates, same candidate experience. 

One screen. One click. Done.

The team sees the copy and creative for each job in a single Airtable interface. They pick which variants to send and approve with one click. No Ads Manager, no tab switching, no cross-referencing.

Before and After

What happens?

Before

After

New job appears

Marketing manager has to notice it and start working on the ad

Marketing manager pastes the new job ad link into the system

Build the ad

20–30 min of manual setup per job, per country

26 seconds. 10 seconds to approve.

Copy and localisation

Written by hand, quality varied, easy to get LT/LV/EE formatting wrong

On-brand, localised, modelled on best-performing real ads

Creatives

Sourced or made manually

Generated and composited automatically

Job fills up

Ad keeps running until the next manual daily check 

Auto-paused the moment shifts close

Job reposts

Resumed manually

Auto-resumed

Stale ads in the account

Accumulated unchecked. Only ~7% of active ads actually ran in the past week.

Reaped automatically. Only ads for live jobs run.

Visibility and reporting

No overview without digging through three separate Ads Manager accounts

Daily digest of every change in the past 24 hours (rolling out)

What It Looks Like in Practice

The first end-to-end run used a real job: packers in Kaunas, Lithuania.

In 26 seconds, the system spotted the job, extracted the details, detected Lithuania and Lithuanian language automatically, wrote the copy with the correct salary format, generated both creative variants on the Workis-branded template with the job title “Pakuotojas (-a)” typeset correctly, and dropped two finished ads into the approval queue.

One click to send. Published to the Workis LT ad account as a compliant Employment-category ad, routed to the right existing Kaunas campaign. From that point, the lifecycle engine owns it: pauses when the shifts close, retires it when the job leaves the feed.

The Results

Metric

Result

Ad setup time reduction

~85%

New job → finished, reviewable ad

~26 seconds (consistently under 80s)

Copy modelled on

3,000+ real Workis ads analysed and reverse-engineered

Account checks per day

13 (hourly, 08:00–20:00 LT)

Live jobs monitored right now

261 (June 2026 summer peak)

What Their Marketing Team Had to Say

"What made the biggest difference for our team wasn't just creating ads faster – it was knowing they would stay in sync with our live jobs automatically. We no longer have to manually track which ads should be paused or resumed, giving us confidence that our advertising budget is focused on active job opportunities and freeing up valuable time for our team."

– Eglė Zajankauskaitė, Marketing Team Lead, UAB Biuro / Workis

Who This Works For

If you're running ads against inventory that moves, jobs that fill, properties that sell, products that go out of stock, shifts that open and close, you already know the problem. By the time the ad is built, something has changed. By the next daily check , the budget has been running against something that no longer exists.

The businesses this works best for aren't necessarily doing anything wrong. They have the brand guidelines, the Canva templates, the process. The problem is that one ad taking a minute to update is fine. Fifty ads a week taking a minute each is a different conversation. The manual work doesn't break the brand, it just slows everything down and introduces enough variation that consistency becomes something you aim for rather than something you guarantee.

The system takes what's already working and runs it at a volume that would be challenging for a team to match manually without growing the headcount. Every ad goes out on-brand, in the right format, at the right time, and stops the moment it stops being relevant. The spend goes further and is better utilised because none of it is sitting on inventory that is no longer available.

Want Something Like This?

If your team is rebuilding the same ads every day, spending on ads that are no longer relevant, or managing a campaign volume that’s outgrown what any person can track manually — a short call is usually enough to see what’s possible.

Book a free intro call below and see if you qualify.

Your trusted partner in AI solutions, creating smarter systems for smarter businesses.

Europe, Lithuania

Business name: MB Klientai (AIFormula.co)

VAT: LT100016324410

Address: V. Nagevičiaus g. 3, LT-08237 Vilnius, Lithuania

This site is not a part of the Facebook website or Facebook Inc. Additionally, This site is NOT endorsed by Facebook in any way. FACEBOOK is a trademark of FACEBOOK, Inc.

© Copyright 2025. AI FORMULA. All Rights Reserved.