Hermes Agent for lead generation works best as a prospect desk: it finds companies that match your rules, checks them against public pages, scores them and hands a short list to a human.
That's the whole job on this page: the top of the funnel.
Closing deals, chasing quotes and pipeline reviews belong to a different build, so I keep them out of this one.
Below is the order I'd wire it on a fresh install, with the commands, the config keys and the traps that bite on day one.
Want my team to look at your lead sources before you build anything? Book a free SEO strategy session.
What This Prospect Desk Does, And Where It Stops
The desk does four things: research, enrich, qualify and queue.
Research means finding businesses that fit a profile you wrote down.
Enrich means adding facts from their public website to a row in a list.
Qualify means scoring each row against your rules and writing one line on why.
Queue means a short morning list lands in your chat, ready for a person to act on.
Once a lead is qualified, the follow-up work moves to a sales setup like the one in my Hermes Agent for sales walkthrough.
Keeping the two apart makes each one easier to test.
Step 1: Put Your Ideal Customer Profile In A Skill
Skills are documents the agent loads when it needs them, and they all live in ~/.hermes/skills/, per the skills docs.
Your ideal customer profile is the first skill to write, because every later step reads it.
The fastest route is /learn, which turns notes, a doc URL or a PDF into a skill without hand-writing the file.
/learn our ideal customer: commercial cleaning buyers. Fit = offices or clinics with 20+ staff in Leeds, Bradford or York, a facilities or office manager named on the site, no in-house cleaning team. Disqualify = residential, franchises, anyone who asked not to be contacted. Score 0-10 and give the reason in one line.
Notice the disqualify rules.
A score without exclusions turns into a list of everyone, and that list is useless to a small team.
Read the generated SKILL.md once and fix any rule the agent guessed at.
Step 2: Turn On Web Search And Web Extract First
Most prospect research never needs a browser, and the browser docs say so: prefer web_search or web_extract for plain retrieval because they're faster and cheaper.
The tools reference says web_search returns five results by default and accepts a limit from 1 to 100.
Search operators like site:, intitle: and quoted phrases may work, depending on the backend you pick.
web_extract pulls clean text from up to five URLs per call, PDFs included, with a 15,000-character budget by default.
Both tools need a key for one supported backend, such as Exa or Firecrawl, so run hermes tools and set one before anything else.
A good first test: ask for ten clinics in one city, then ask it to extract the contact page of each and fill your profile fields.
🔥 Want the prospect-desk skills already written? Inside the AI Profit Boardroom you get step-by-step video trainings on Hermes skills and cron, the installable Agent OS, four coaching calls a week and 3,400+ members comparing setups. → Join the AI Profit Boardroom
Step 3: Use The Browser Only When A Page Needs Clicking
Some directories hide details behind tabs, filters or a search box.
That's when browser_exec earns its place: it drives a real browser by running Python with browser helpers already loaded.
By default Hermes launches its own headless Chromium, one per session, with no API key.
You can also attach your own Chrome, Brave or Edge with /browser connect, or use a cloud browser such as Browserbase.
If a directory needs a login you're allowed to use, save it in the credential vault so the password is filled into the page and the model never sees it.
Before the agent touches any directory, read that site's terms.
If the terms forbid automated collection, leave it out of the skill and say so in writing.
Step 4: Add Public X Search For Buying Signals
People announce hiring, moves and new locations in public posts, and those are decent signals for a cleaning firm or an IT shop.
Hermes has an x_search tool for this, and it's read-only.
It doesn't post, reply, like or DM, and it's off by default.
Turn it on in hermes tools under X (Twitter) Search, and note it only appears once xAI credentials are set.
Tell the skill what a signal looks like: "opening a second office", "we're hiring a receptionist", "moving to a new unit".
For named companies you already watch, the bundled competitor-news-monitor skill in the skills catalog gives cited digests of material news.
Step 5: Give The List A Home In Airtable Or Google Sheets
Airtable is in Nous's approved MCP catalog, the optional-mcps folder where presence in the directory means approval.
Install it by name and finish the OAuth sign-in in your browser:
hermes mcp catalog
hermes mcp install airtable
hermes mcp configure airtable
Its manifest describes access to bases, tables and records in your workspace.
Prefer a spreadsheet? The bundled google-workspace skill covers Sheets, Docs, Drive, Gmail and Calendar through the gws CLI or Python.
Either way, fix the columns before the first run: company, website, city, size signal, named role, source URL, score, reason, date found.
The source URL column matters most, because it lets a person check every claim in seconds.
Step 6: Connect Attio Or Close For The Handoff, And Mark Them Untrusted
Only two CRMs sit in that catalog for this job: Attio, for records, lists and notes, and Close, for leads, opportunities, calls and emails.
There's no HubSpot, Pipedrive or Salesforce CRM entry, and no Apollo, Hunter or Clay either, so don't plan around them.
If your CRM isn't listed, export a CSV from the sheet and import it yourself.
Before the first write, mark the CRM server untrusted in config.yaml:
mcp_servers:
attio:
url: https://mcp.attio.com/mcp
auth: oauth
trust: untrusted
The MCP config reference says an untrusted server needs your approval for every tool call that isn't marked read-only.
YOLO mode and approvals.mode: off skip that prompt, so leave both alone on this profile.
Step 7: Score Inbound Form Leads With A Webhook
Inbound leads are the cheapest ones you'll ever get, so qualify them the minute they arrive.
The webhooks adapter runs an HTTP server that accepts POST requests, checks HMAC signatures and turns the payload into a prompt.
Run hermes gateway setup, enable webhooks, set a secret, then add a route:
platforms:
webhook:
enabled: true
extra:
port: 8644
routes:
site-enquiry:
secret: "long-random-string"
prompt: "New enquiry: {name}, {company}, {message}. Score it with the ICP skill and draft a reply for me. Draft only."
skills: ["ideal-customer"]
deliver: "telegram"
Point your form tool at http://your-server:8644/webhooks/site-enquiry, and make sure it can sign requests with that secret.
The docs warn that payload fields are untrusted even when the signature checks out, so never let form text change the agent's rules.
📞 Not sure which lead source deserves the first webhook? Book a free SEO strategy session and my team will look at where your enquiries come from today. → Get the free call
Step 8: Schedule The Morning Prospect List With Cron
The cron docs let you schedule jobs in plain language, attach skills and deliver the result to a chat, a file or another platform.
hermes cron create "every weekday at 8am" "Find 10 new businesses that match the ideal-customer skill, add them to the Leads table with source URLs, and send me the top 5 with reasons. Draft only. Do not contact anyone." --skill ideal-customer --name "Morning prospects"
Pin the model for this job with --model and --provider, or it follows whatever your chat model is when it fires.
Cron runs can't create more cron jobs, which stops a scheduling loop before it starts.
Optional: Community Plugins, With Their Tier
Catalog entries carry a tier: official, verified or community, as the plugin catalog page explains.
Three community entries fit this desk.
RedReplier finds leads in public conversations on Reddit, X, Bluesky, Facebook and a popular tech news forum, scored 0 to 100. FOUND calls itself an AI SDR for LinkedIn and email, and says campaigns made from Hermes start paused. Precleared checks cold email against rules like UK PECR and UK GDPR, CAN-SPAM and CASL, and routes anything not cleared to Hermes's approval prompt.RedReplier and FOUND mark their own servers untrusted, so Hermes asks before their write tools; that protection comes from the plugin, not from Hermes itself.
Install any of them with hermes plugins install <name>, and read the README first, because each one talks to a hosted service.
Outreach Stays Draft Only, Every Time
Hermes approvals cover dangerous commands, per the security docs, plus write calls on untrusted MCP servers.
There's no built-in step that holds an email or DM for your sign-off.
So every job that writes outreach carries the words draft only, and every delivery target is your own chat or inbox, never a prospect's.
A person reads the draft, edits it and sends it from their own account.
The Legal Duty You Can't Hand To The Agent
Lead research touches personal data, and cold outreach is regulated in most places.
Respect each site's terms of use, and follow the anti-spam and privacy rules that apply where you and your prospects are.
Collect only what the profile needs, keep the source URL, and drop anyone who has opted out.
Aim for a short list of good fits, not a giant database, because volume is where the trouble starts.
A Worked Example: A Commercial Cleaning Firm's First Week
Picture a three-person cleaning company that wants more office contracts in one county.
Monday, the owner runs /learn on a page of notes about the contracts they already hold and why those clients picked them.
Tuesday, web search finds clinics, dental practices and small offices in three towns, and web extract reads each about page for staff numbers and a named office manager.
Wednesday, every row lands in an Airtable base with its source link, a score and a one-line reason.
Thursday, the webhook route starts scoring enquiries from the quote form on their own site, and drafts a reply for the owner in Telegram.
Friday, the cron job goes live, and each weekday morning the owner gets five scored names with links to check.
The owner reads each page, deletes the weak fits and writes the first email by hand, using the agent's draft as a starting point.
Nothing in that week sends a message to a stranger.
The agent's whole contribution is a cleaner list and better notes, which is the part most small firms skip.
Five Gotchas I'd Check Before Day One
- No search key set:
web_searchandweb_extractsimply aren't there. x_searchmissing: it stays hidden until xAI credentials exist.- CRM writes going through silently: the server isn't marked
trust: untrusted. - Webhook route answering everyone: the secret was left as
INSECURE_NO_AUTHfrom testing. - Morning list on the wrong model: the cron job wasn't pinned.
Fix those five and the desk runs quietly, which is exactly what you want from it.
If you'd rather build it alongside people running the same stack, the AI Profit Boardroom walks through each piece on video.
Also On Our Network
- 🌐 Four small-business lead-gen use cases and who should hold off
- 🌐 Eleven top-of-funnel lead jobs scored out of ten, with reasons
- 🌐 Five copy-paste Agent OS prompts for finding and scoring prospects
- 🌐 Which benchmarked models to pin to each Hermes lead-gen job
- 🌐 The complete Hermes Agent for Lead Generation guide on the AI Profit Boardroom blog
FAQ: Hermes Agent For Lead Generation
Which command adds Airtable to Hermes?
Run hermes mcp install airtable, finish the OAuth sign-in, then review its tools with hermes mcp configure airtable. Airtable is in Nous's approved MCP catalog.
Do I need the browser tool for prospect research?
Usually not. The Hermes docs recommend web_search and web_extract for plain retrieval and the browser only when a page needs clicking or form filling.
Can Hermes send cold emails for me?
Don't let it. Hermes has no built-in sign-off step for outbound messages, so write draft only into every outreach job and send from your own account.
Is there a HubSpot or Apollo integration?
Not in the v0.23.0 catalog. For CRM handoff the approved MCP entries are Attio and Close; anything else goes through a CSV export.
How do I stop the CRM connection writing without asking?
Set trust: untrusted on that server in config.yaml. Hermes then asks before every tool call that isn't marked read-only, unless YOLO or approvals.mode off is on.
📺 Video notes + links to the tools 👉
🎥 Learn how I make these videos 👉
🆓 Get a FREE AI Course + Community + 1,000 AI Agents 👉
About Julian
I'm Julian Goldie, an SEO entrepreneur, author and founder of the AI Profit Boardroom, which has 3,400+ members.
I help business owners scale with AI agents, automation and SEO.
- I've built a 7-figure SEO and link building agency, Goldie Agency, with a team of 70+ SEO experts.
- I've grown a YouTube channel to 400,000+ subscribers.
- I wrote "Link Building Mastery".
- My Udemy courses have taught over 29,000 students.
→ Get my best AI training inside the AI Profit Boardroom
Write the profile skill tonight, wire search tomorrow, and book a free SEO strategy session if you want my team to check your plan for Hermes Agent for lead generation.











