ResourcesGuides

Hermes Agent for marketing: 16 PPC skills, 9 routines and 6 workflows

Quick answer: Hermes Agent, the open-source AI agent from Nous Research, can take on the routine side of paid ads: the morning check, the Monday search terms, new-client audits and the monthly client report. Install AdPlug's Hermes plugin for 16 PPC skills, add AdPlug's server with one command and connect your ad accounts, and Hermes reaches Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads and Reddit Ads. The plugin's 9 routines only read and report to Telegram, Slack or Discord, and Hermes shows AdPlug's preview and waits for your yes before any change.

I wrote these 16 skills from how I run ad accounts, and I built AdPlug, the connector they work through. I'm biased, obviously, so I've stuck to what you can check: the plugin is public on GitHub, and the Hermes facts come from Nous Research's own docs.

Daniel Popa, PPC expert and founder of AdPlug
Daniel PopaPPC Expert & Founder of AdPlug8 min read
Hermes Agent and AdPlug: AdPlug's plug mascot flexing in the middle, cabled to Hermes Agent on one side and to Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads and HubSpot on the other, under three badges: 16 PPC skills, 9 routines and 6 workflows

Hermes Agent keeps working when you're not in the chat, which is exactly what makes PPC people nervous.

Say “connect your ad account to AI” to anyone who runs paid media, and what they hear is: something else is about to change my account while I'm asleep, and I'll find out when it's too late.

So here's Hermes Agent for marketing, set up the way I'd trust it with client money. The scheduled jobs only read and report to Telegram or Slack. Nothing changes until you say yes in a chat, and new campaigns and ads start paused (drafts on LinkedIn).

You need two things from AdPlug. Its Hermes plugin adds 16 PPC skills, which are how I run accounts, written down. Its server connects Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads and Reddit Ads to Hermes, and HubSpot and Google Search Console have servers of their own.

A Monday in 35 seconds: one review across three ad platforms, then two changes, each previewed and approved. Acme and its numbers are made up.

Set up Hermes Agent for PPC in 3 steps

  1. Install AdPlug's plugin. In a terminal where Hermes runs (Hermes Agent 0.21.6 or later, see its install guide):
    hermes plugins install adplug-app/adplug-hermes-plugin --enable

    That's the 16 skills. The plugin holds no code or scripts, and it's public on GitHub if you'd like to read it first.

  2. Add AdPlug and sign in. A plugin can't set up a sign-in by itself, so this is a second command:
    hermes mcp add adplug --url https://api.adplug.app/mcp \
      --auth oauth --connect-timeout 300

    A browser tab opens on AdPlug. Sign in (or create a free account), click Approve, and answer Y when Hermes asks to enable all 53 tools. The --connect-timeout 300 part gives you five minutes to sign in instead of about 30 seconds.

    Hermes Agent's web dashboard, MCP page: adplug (http, enabled, https://api.adplug.app/mcp, 53 tools), adplug-hubspot and adplug-search-console, each set to trust: untrusted
    Hermes' MCP page: AdPlug's ads server (53 tools), HubSpot and Search Console, each set to trust: untrusted (see safeguards), so Hermes asks before any change.
  3. Connect your ad platforms in AdPlug. On the Connections page, sign in to each platform once. A Google Ads manager (MCC) sign-in reaches every account under it, and on Meta you pick the ad accounts. The free plan covers one platform.
    AdPlug's Connections page with Google Ads, LinkedIn Ads, Microsoft Ads, Meta Ads and Reddit Ads all connected, email addresses blurred
    AdPlug's Connections page with all five ad platforms connected. Emails and account names blurred.

Type /reload-mcp in Hermes (or start a new session) and ask for a first look:

Prompt

Check the last 30 days across every ad account I've connected, and tell me what needs my attention first, platform by platform.

On a server or VPS with no browser, put this in ~/.hermes/config.yaml and run hermes mcp login adplug:

mcp_servers:
  adplug:
    url: https://api.adplug.app/mcp
    auth: oauth

Open the sign-in link on your laptop. When it lands on a page that won't load, copy that address and paste it back into Hermes, or forward the port over SSH instead. Hermes' OAuth over SSH guide covers both.

HubSpot (on paid plans, for lead quality) and Search Console (paid and organic search side by side) have servers of their own:

hermes mcp add adplug-hubspot --url https://api.adplug.app/mcp/hubspot \
  --auth oauth --connect-timeout 300
hermes mcp add adplug-search-console --url https://api.adplug.app/mcp/google-search-console \
  --auth oauth --connect-timeout 300

Don't add a single-platform AdPlug server, such as /mcp/google-ads, next to adplug, or Hermes sees the same tools twice.

6 PPC workflows I'd hand to Hermes Agent first

1. A new client, before the first call

Every new account gets an audit from me, and Hermes can have it ready before the first call. First the brief, from the client's website and ad accounts:

Prompt

Set up a brief for Acme from acme.com and their connected ad accounts. Work out what they sell, who converts and what it costs now, then ask me only what you couldn't find.

Then the audit:

Prompt

Use adplug:account-audit on all of Acme's ad accounts against their brief, and tell me what to fix first.

You get the brief as a file in ~/adplug/clients/, findings ranked by severity and a week-by-week plan. Ask for adplug:find-opportunities next and it sizes what's missing.

None of it changes the ad accounts, which makes it a safe first job on an account you don't know yet.

Hermes Desktop chat: Acme's brief written to ~/adplug/clients/acme.md, then the audit's top findings ranked by severity and a week-by-week plan, with nothing changed
The brief saved, two questions it couldn't answer from the site, then the audit by severity and a week-by-week plan. Acme and its numbers are made up.

2. Every weekday at 8am: the morning check

This is the first routine I'd set up on any account big enough to lose real money in a day:

Prompt

Every weekday at 8am, check Acme's ad accounts: spend, clicks and conversions against a normal day, tracking gone quiet, ads disapproved or not delivering, and pages that don't load. Message me on Telegram only what needs me. If nothing does, say so. Change nothing.

Two lines matter most. “If nothing does, say so” means a quiet morning still sends a message, so silence means something broke.

“Change nothing” keeps it read-only. With Hermes set to ask first (see safeguards), a scheduled run can't make a change anyway, because nobody's there to say yes.

For an agency, there's a digest version: one message a morning, grouped by client.

A Telegram chat with Hermes Agent: Acme's 8:00 morning check with two things that need attention, then a reply asking for the negatives and AdPlug's preview of one phrase-match negative, with nothing changed yet
The 8am check in Telegram, then a reply that gets AdPlug's preview, not a change. Acme and its numbers are made up.

3. Monday: the review, then the search terms

Monday is the review across every platform, then the search terms, placements and communities that spent without converting (the report we all mean to read every week):

Prompt

Every Monday at 8am, find Acme's Google search terms, Microsoft search queries and placements, and Reddit communities and keywords that spent enough to judge without converting, with the negative or exclusion you'd add. Change nothing. I'll pick in chat.

Nothing changes until you pick in chat. Then AdPlug shows the preview, you say yes, and Hermes asks once more before it runs. That's the video at the top, negatives and all.

The skills behind it are adplug:performance-review and adplug:cut-wasted-spend.

4. Ads wearing out on Meta or LinkedIn

On Meta, a tired ad shows it in frequency and click-through rate first, then in cost per result. Ask before the client spots it:

Prompt

Which of Acme's Meta ads are wearing out, with frequency up, click-through rate down and cost per result up? Tell me which to replace first.

Ask for replacements and adplug:ad-copy writes them from the brief's personas and the landing page. They go in as new ads beside the old ones, paused on Meta and as drafts on LinkedIn, with AdPlug's preview first.

That's how the video ends. For more Meta prompts, see how to connect Meta Ads to Hermes Agent.

5. Which leads were any good

In lead gen, the cheapest lead is rarely the one sales wants. With AdPlug's HubSpot MCP added, adplug:lead-quality follows the leads into the CRM:

Prompt

Which ad platforms and campaigns brought Acme's qualified leads and deals in HubSpot this quarter, and what did each cost per qualified lead and per deal?

It also finds paid leads nobody followed up, and where the junk comes from. Then it can send qualified leads back to Google, Microsoft, LinkedIn and Reddit as offline conversions, showing you what it'll send and waiting for your yes, so each platform bids towards the leads that mattered.

6. First of the month: the client report

I used to dread reporting. The same questions every week, and none of it the job I'm paid to do. The monthly one makes a good routine:

Prompt

At 9am on the 1st of each month, build Acme's client-ready PDF report for last month: a short summary, results against target and the month before, the insights behind them and what changes next. Change nothing.

adplug:performance-review has the PDF waiting at 9am on the 1st. It comes to you, not the client. Read it, add the judgement only you have, and send it yourself.

The 16 Hermes Agent marketing skills

AdPlug's plugin has five platform skills and eleven job skills, and Hermes picks the right one on its own (or you name it: “use adplug:account-audit”).

The 16 PPC skills in AdPlug's Hermes plugin
SkillWhat it does
adplug:google-adsSearch, Performance Max, Demand Gen and Shopping
adplug:meta-adsPixel, audiences, creative fatigue, lead ads and catalogues
adplug:linkedin-adsJob title and company targeting, Lead Gen Forms, Thought Leader Ads
adplug:microsoft-adsBing search, Audience Network, LinkedIn profile targeting, Google imports
adplug:reddit-adsCommunities, conversation keywords, brand safety, the Reddit Pixel
adplug:ppc-agentThe working rules, including a preview and your yes before every change
adplug:client-briefOne brief per client, with a change log. Every skill reads it
adplug:account-auditAn audit ranked by severity, with a week-by-week plan
adplug:find-opportunitiesWhat's missing, sized and ranked
adplug:cut-wasted-spendSearch terms, placements, job titles and communities that spend without converting
adplug:build-campaignsGroundwork for a new ad account, and new campaigns from the brief, created paused or as drafts
adplug:ad-copyAds from the personas and landing page, character limits checked
adplug:performance-reviewMorning check, weekly review, pacing, monthly report
adplug:lead-qualityWhat ad leads become in HubSpot, and qualified leads sent back as offline conversions
adplug:diagnoseWhy something stopped spending or converting
adplug:routinesSets up the routines as Hermes cron jobs, per client
Hermes Desktop's Skills page with the PPC category open, listing AdPlug's 16 skills
AdPlug's 16 skills in Hermes Desktop, under PPC.

9 Hermes Agent routines that only read

adplug:routines sets these up as Hermes cron jobs per client, delivered to Telegram, Slack or Discord, and every one ends with “Change nothing”.

The 9 routines in AdPlug's Hermes plugin
RoutineWhen
1. Morning checkEach weekday morning
2. Agency morning digestEach weekday morning
3. Monday reviewEvery Monday
4. Waste and search termsEvery Monday, or every other week
5. Lead quality, with HubSpotEvery Monday
6. Client reportThe 1st of each month
7. Competitor sweepMonthly
8. Audit and growth scanQuarterly
9. Change checkOn the date in the change log
Hermes Agent dashboard, Cron page: Acme's routines (morning check, Monday review, waste and search terms, lead quality, client report, competitor sweep, quarterly audit), each delivering to Telegram or Slack
Seven of the nine routines for one client on Hermes' Cron page, all read only. Acme is made up.

The easiest way to set them up is to ask:

Prompt

Use adplug:routines to set up Acme's routines, delivered to Telegram. Run the morning check once now so I can see what it sends.

Or from the terminal (0 8 * * 1-5 means 8:00 every weekday):

hermes cron create "0 8 * * 1-5" "Morning check for Acme: message me only what needs me. If nothing does, say so. Change nothing." --skill adplug:ppc-agent --skill adplug:performance-review --name "Acme morning check" --deliver telegram

Hermes' gateway runs the jobs, so set it up once with hermes gateway install, then hermes gateway start. Jobs run on the server's clock unless you set Hermes' time zone, so check it before you trust “8am” (Hermes' cron docs have the details). Every run uses AdPlug requests, so match how often it runs to the money at stake.

Why I'd trust Hermes Agent with client ad accounts

I built AdPlug, and I still wouldn't let an AI agent touch an ad account with zero oversight. 12 years in PPC and $100M+ of other people's ad spend will do that to you.

So every change comes back as AdPlug's preview, and the plugin has Hermes wait for your yes to that exact change. On Google Ads, HubSpot and Search Console, AdPlug's server also refuses a change that wasn't previewed. On Meta, LinkedIn, Microsoft and Reddit the preview is the plugin's rule, not a lock, which is why I'd add Hermes' own check below.

New campaigns and ads start paused (drafts on LinkedIn), so they don't spend until you switch them on.

Then there's Hermes' own check. Add trust: untrusted to AdPlug's entry in ~/.hermes/config.yaml and type /reload-mcp:

mcp_servers:
  adplug:
    url: https://api.adplug.app/mcp
    auth: oauth
    trust: untrusted

Reads and previews run as normal. A change stops on “MCP server 'adplug' is asking”, with [o]nce | [s]ession | [a]lways | [d]eny. Choose once (always rather defeats the point).

Don't use /yolo or approvals.mode: off, since both skip the question. Hermes' MCP config reference has the details.

Routines only read. In a scheduled run nobody's there to answer, so with trust: untrusted set, Hermes refuses a change rather than make it.

On Max and Agency, the team owner sets each teammate to View only or Can edit per platform, and AdPlug enforces it, as long as each teammate signs Hermes in as themselves (everyone who can message one Hermes shares its AdPlug login). The free plan can't change anything. Every call and change lands in AdPlug's Usage and Audit Log.

Every platform sign-in stays encrypted on AdPlug's servers and never passes through Hermes. Hermes only keeps its own AdPlug sign-in, in ~/.hermes/mcp-tokens/.

And it all runs through each platform's official API with the platform's own sign-in, the route each platform built for tools. No tool can promise an account is never reviewed, and your ads still have to follow each platform's policies.

What Hermes Agent does on each ad platform

Hermes turns search terms into negatives, reads Performance Max's search terms and can make more than 170 kinds of change, each previewed, across every account under a manager account. Setup, 10 prompts and 5 routines: connect Google Ads to Hermes Agent.

Meta Ads (Facebook and Instagram)

Meta Ads connects with a normal Facebook sign-in, no developer app or token. Hermes Agent then finds ads that should be running and aren't, spots creative wearing out and builds new campaigns, paused. Setup, 10 prompts and 5 routines: connect Meta Ads to Hermes Agent.

LinkedIn Ads

LinkedIn Ads is where I first ran AdPlug in Hermes Agent. Hermes reports cost per lead, reads job titles from Lead Gen Form responses (LinkedIn's demographic reports leave those leads out) and creates new campaigns as drafts. Setup and prompts: connect LinkedIn Ads to Hermes Agent.

Microsoft Advertising (Microsoft Ads)

Hermes reviews search queries, what Microsoft's Google import brought over or missed, and LinkedIn profile targeting on search. New campaigns start paused. More on the Microsoft Ads MCP.

Reddit Ads

Hermes reports by community and keyword, works out why ads aren't spending, and excludes communities that spend without converting. Everything new starts paused. More on the Reddit Ads MCP.

What it costs

Hermes Agent is free and open source, and you pay your model provider (local models are free to run).

AdPlug's free plan covers one ad platform, view only, with 500 requests in your first 5 days, then 50 a month. Pro is $29 a month for every platform, with 5,000 requests and 200 edits a month. Max is $89 a month with unlimited requests and edits, and 3 team members.

Pro and Max start with a 7-day free trial (checked 10 November 2026, details on the pricing page). Every routine run uses requests, so daily checks across clients need a paid plan.

I'd start free on one platform, with a brief and an audit. Both only read.

Questions, answered honestly.

Can Hermes Agent run Google Ads or Meta Ads?

Yes, with you approving every change. Connect your ad accounts through AdPlug and Hermes Agent can check, report on and change Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads and Reddit Ads. AdPlug's Hermes plugin has it show you AdPlug's preview and wait for your yes before each change, and new campaigns and ads start paused, or as drafts on LinkedIn.

How do I connect Hermes Agent to my ad accounts?

Install AdPlug's plugin with hermes plugins install adplug-app/adplug-hermes-plugin --enable, then run hermes mcp add adplug --url https://api.adplug.app/mcp --auth oauth --connect-timeout 300 and approve the sign-in in your browser. Connect each ad platform on AdPlug's Connections page, then type /reload-mcp in Hermes. There's no API key to manage.

Can Hermes Agent change my ad accounts while I'm asleep?

Not with this setup. The routines only read and end with “Change nothing”, and with trust: untrusted on AdPlug's entry, Hermes asks before every change and refuses one in a scheduled run, where nobody's there to say yes. Changes happen in a chat, after AdPlug's preview and your yes.

Will connecting Hermes Agent get my ad account banned?

It connects the way the platforms approve. AdPlug uses each platform's official API with the platform's own sign-in, not a bot clicking around a logged-in browser. That's the Google Ads API with Google's approval, LinkedIn's Marketing Developer Platform, Meta's Marketing API through an app Meta approved in App Review on 3 November 2026, Microsoft Advertising's API as a verified publisher, and Reddit's Ads API with Reddit's approval. Your ads still have to follow each platform's policies, and no tool can promise an account is never reviewed.

Does Hermes Agent work on a VPS or through Telegram?

Yes, both. On a server with no browser, write AdPlug's entry into ~/.hermes/config.yaml, run hermes mcp login adplug, then paste the address your browser lands on back into Hermes or forward the port over SSH. Hermes' gateway sends routines to Telegram, Slack, Discord and more, as long as it's running.

What Hermes Agent skills are there for marketing?

AdPlug's Hermes plugin has 16 PPC skills: one each for Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads and Reddit Ads, and 11 for jobs such as client briefs, audits, wasted spend, ad copy, performance reviews, lead quality and routines. Hermes picks the right one when you ask, or you name it.

Can a PPC agency use Hermes Agent across many clients?

Yes. Each AdPlug sign-in reaches every ad account that login can see, such as every account under a Google Ads manager account, so you connect once per platform, not once per client. The client-brief skill keeps one brief per client, and the agency morning digest sends one message each morning, grouped by client. On Max and Agency, each teammate signs in as themselves, set to View only or Can edit per platform.

How much does Hermes Agent for marketing cost?

Hermes Agent is free, and you pay your model provider. AdPlug's free plan covers one ad platform, view only. Pro is $29 a month and Max is $89 a month, both with a 7-day free trial (checked 10 November 2026). Daily routines across clients need a paid plan, because every run uses AdPlug requests.

Should I use Hermes Agent or Claude for marketing?

Use both, from the same AdPlug account. Hermes Agent suits jobs that run on a schedule on your own machine or a server and report to Telegram or Slack, like the morning check or the monthly report. Claude suits the back-and-forth in a chat window, like working through an audit finding by finding. Your connected ad accounts, plan and audit log are the same in both.

What is Hermes Agent?

Hermes Agent is an open-source AI agent from Nous Research, under the MIT licence. It runs on your own computer or a server, keeps its memory and skills between sessions, runs scheduled jobs, and answers in the terminal, its desktop app, or Telegram, Slack, Discord and WhatsApp.

Try this on your account.

Connect Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads, or Google Search Console to Claude or ChatGPT in two clicks. Free tier, read-only by default, no card required. HubSpot is included from Pro.