Humainbox: A Filter That Stops AI Spam on Contact Forms
Humainbox is our own product. A business sends its contact form to a Humainbox address. AI-written spam and sales pitches are held back. Real enquiries go to the right people, with the sender's real reply address. No code and no plugin are needed. Setup is one field in the form settings. An optional WordPress plugin can connect every form on a site at once.
- Project
- SaaS product
- Our role
- Own product, end-to-end
- Platform
- Laravel
- Country
- Global
- Year
- 2026
The challenge
Spam that reads like a customer
Contact form spam is now written by AI. It names the business, sounds plausible and passes captchas, so someone has to open every message to find out it is junk.
The sender tells you nothing
Form notifications all come from the site's own server and address. Filters that judge the sender have nothing to work with, so the decision has to rest on what the message says.
Filters are hard to install and harder to trust
Most anti-spam tools need a plugin, a script or a developer, often on a site nobody wants to touch. And the fear of losing a real enquiry stops many businesses from filtering at all.
Our approach
One field is the whole install
Each form gets its own generated address on in.humainbox.com. The owner pastes it into the form's notification settings, and nothing on the site changes. Integration pages show the exact field in WordPress, WPForms, Contact Form 7, Gravity Forms, Elementor, Webflow, Squarespace, Shopify, Wix, HubSpot and Typeform. For WordPress sites with many forms, an optional free plugin on WordPress.org changes that field on every form in one go. It keeps the old address so it can be put back.
Judged on the message, with reasons
Rules score every message first. When they cannot decide, the text goes to an OpenAI language model (an AI that reads text). Each workspace can turn this step off. Every decision is saved with the signals that matched and how much each one counted. Corrections are saved for each inbox, so repeat campaigns are caught.
Built so nothing real is lost
Held messages are never deleted and can be released in one click. Each inbox has its own strictness level. If the filter cannot reach a decision, the message is delivered. Every inbox starts with a dry run, a test week that delivers everything and lists what would have been held.
Routing and the reply address
Real enquiries go to a named person or a team, and each gets their own copy. The copy carries the visitor's real reply address, taken from the message or the Reply-To header. Agencies get separate workspaces per client that cannot see each other.
Screens
Inside Humainbox
How we delivered
From first brief to running in production
-
01
DesignOne-field install
We designed the product around the one setting every form already has: the address it sends to.
Generated addresses11 builder guides -
02
Filtering with reasons
AIWe combined rules with an optional language model step and stored the reasoning behind every decision.
RulesOpenAIPer-inbox thresholds -
03
Mail handling & routing
DevelopmentWe built background handling of incoming mail, routing to teams and detection of the real reply address. When in doubt, mail is delivered.
Laravel HorizonRedisReply-To -
04
Dry run & trust
LaunchWe added a week-long dry run, EU hosting in Frankfurt and a public trust page that says how long data is kept.
Dry runEU hostingRetention
Results
What is running today
Live, with a free plan
Humainbox runs on humainbox.com with a free plan and paid plans priced per company rather than per message. Billing goes through Creem as merchant of record (the company that legally handles the sale).
Clear about data
A trust page lists where mail goes: the app, database and stored messages on DigitalOcean in Frankfurt, mail arriving through an EU provider, and the optional OpenAI step. Messages are kept 30 days by default and then deleted, with export and deletion available from settings.
Pages for the people who need it
Pages for agencies, growing teams and businesses that quote for work, a free contact page check, a contact page study and a blog explain the problem to the people who answer contact forms.
More work
Other things we built and run
Framezone
Framezone is our own product: one private dashboard for tasks, habits, goals, money, fitness, reading and a journal. It also has an MCP server with 62 tools. MCP is a standard way for AI assistants to connect to apps. So Claude, ChatGPT, Cursor and other MCP clients can read and update the account when the user asks.
SchoolVita
SchoolVita is our own product: a directory of private and international schools in 20 cities where families relocate. Parents compare estimated fees and curricula, then send an enquiry to the schools they choose. Schools can claim their listing and receive those enquiries.
Syntask
Syntask is a Finnish startup that helps logistics teams make better decisions (decision intelligence). It needed its website to match a sharper position. We replaced an Elementor WordPress site with a Laravel build. It has pages for each buyer group and use case, the old blog moved over, a custom admin for posts and leads, and one clear next step for buyers.