The road to $100/day with AdSense in one of the hardest niches [ JOURNEY ]

DozeX

Senior Member
Joined
Nov 7, 2017
Messages
1,096
Reaction score
928
I’ve built a business insurance blog with claude, with a pipeline that will write, check and publish one article per day.

The site launched on Oct 23, 2026. To get it started, I first generated 71 articles in batches with the same pipeline, and they’re all published yesterday (Oct 23). After that, it’s one new article per day.

#1: Why this niche

I picked business insurance for US small businesses and self employed people. It’s one of the most expensive niches for ads. It’s also YMYL (Your Money or Your Life), so Google is strict about it, and AdSense reviewers are even stricter.

Most people avoid this niche for that reason. I’m trying it anyway and documenting it as I go.

#2: The angle

I don’t write generic “what is liability insurance” posts. Every article targets one profession and one specific question that profession would actually search for. The clusters are professions, and the keywords are long tail ones where the competition is thinner and the reader needs a real answer.

#3: The stack

  • Next.js (App Router), no database
  • Articles are plain Markdown files with frontmatter
  • Self hosted on a VPS for fastest speed
  • Pushing to master auto deploys through a CI pipeline
  • Pages revalidate every 5 minutes, and the sitemap is read from disk on every request. New posts go live without a rebuild.
#4: From keyword to article

First, a separate script finds keywords:


  1. For each profession cluster, it asks a model with web search for new long tail keywords
  2. The code filters out duplicates. It stems the words and compares similarity against everything already in the queue, in the suggestions and in published posts.
  3. Surviving ideas are saved as “suggested”. Nothing is written yet.
  4. I review them in the admin panel, then approve or reject each one
  5. Approved keywords go into the publishing queue. Rejected ones are stored so they’re never suggested again.
The model isn’t allowed to state search volume or CPC, because it would make those numbers up. That means I don’t have real keyword data yet. Once Search Console has data, I’ll use the real queries to pick the next keywords.

Then a second script writes the articles. It runs the whole process:

  1. It takes the next keyword from the queue
  2. A model with web search writes the article
  3. The output is parsed into metadata and body
  4. Every external link is tested, and dead links are removed
  5. The result is validated
  6. A second pass edits the language only
  7. Four images are generated
  8. It saves the file and adds inbound internal links from older posts

#5: Validation happens in code, not in the prompt

I don’t trust a prompt to enforce rules. The code checks:

  • Minimum word count, at least 5 H2s, at least one table
  • Title length and uniqueness
  • Description length
  • Internal links only to posts that exist
  • At least 3 external sources
If a check fails, the exact error messages go back to the model and it rewrites the article. It gets 3 tries, then the run aborts and the keyword stays in the queue.

#6: The YMYL guardrails

This part matters most in this niche:


  • The model isn’t allowed to invent numbers, prices, laws or personal experience
  • Example scenarios must be labelled as hypothetical
  • The editing pass is thrown away if it changes any number, link or heading
  • Real first hand notes can be added per cluster, and the model may use them but not embellish them
I also made sure the pages show the signals Google looks for in YMYL: a disclaimer, an editorial policy page, author info and sources.

#7: Control panel

A password protected admin panel lets me:


  • Approve or reject keyword suggestions
  • Reorder the queue and bulk select keywords to write next
  • Preview any article, including drafts
  • Publish or unpublish articles, one at a time or in bulk, and sort by draft/live status
  • Follow live job logs and see the API cost per run
New articles can go out as drafts first, so I can read them before they go live. There’s also a mode that auto publishes only when no warnings were raised.

#8: The plan

The system is built and the site is up. I haven’t started auto posting yet. The plan is 1 article per day, run by a nightly job.

I’ll start with drafts and spot check live articles regularly. A pipeline can fail quietly, and in a YMYL niche one bad article is a real risk.

#9: AdSense

I’m not applying for AdSense yet, and I won’t until I can see real numbers: traffic, rankings, and whether visitors actually stay and read instead of bouncing.

Also, the domain is brand new. New sites usually go through what people call the Google “sandbox”, a testing period where rankings are weak or unstable. It’s often described as lasting a few weeks, so I’m expecting roughly 3–6 weeks of Google testing the site.

Applying too early with no traffic is a good way to get rejected, so I’ll wait for the data.

#10: What I’ll share next

  • Analytics numbers: visitors, sessions, time on page and bounce rate
  • Search Console data: impressions, clicks, average position and rankings
  • Cost per article
  • When I apply for AdSense, and the result either way
 
Last edited:
Are you planning to check how many of those 71 articles actually get indexed over the next few weeks? That might give you a better idea of how Google is handling the content before you publish too many more.
 
Are you planning to check how many of those 71 articles actually get indexed over the next few weeks? That might give you a better idea of how Google is handling the content before you publish too many more.
Yes, that's actually what I'm planning to do. I haven't started publishing one article per day yet because I want to see how Google indexes the existing content first. I'm hoping to get past the Google Sandbox effect before publishing more articles. So far, Google has indexed 115 pages on the site, and I'll monitor how many of the 71 articles get indexed over the next few weeks.
 
This is very interesting, lots of impression in just 2 days! are most of the users still from the US?
Yes, most of the users are still from the US. The domain is still in the testing phase, so it will be more interesting to see how things develop over the next 5–6 weeks.

countries.PNG
 
will be interesting to see if those impressions turn into actual clicks over the next few weeks
 
Interesting Journey, definitely following.

I am curious, what made you decide to focus on 1 specific site instead of doing multiple (lets say 50) at the same time and picking your winners?
I also did the same as you did and am still unsure what the better approach would be
 
I’ve built a business insurance blog with claude, with a pipeline that will write, check and publish one article per day.

The site launched on Oct 23, 2026. To get it started, I first generated 71 articles in batches with the same pipeline, and they’re all published yesterday (Oct 23). After that, it’s one new article per day.

#1: Why this niche

I picked business insurance for US small businesses and self employed people. It’s one of the most expensive niches for ads. It’s also YMYL (Your Money or Your Life), so Google is strict about it, and AdSense reviewers are even stricter.

Most people avoid this niche for that reason. I’m trying it anyway and documenting it as I go.

#2: The angle

I don’t write generic “what is liability insurance” posts. Every article targets one profession and one specific question that profession would actually search for. The clusters are professions, and the keywords are long tail ones where the competition is thinner and the reader needs a real answer.

#3: The stack

  • Next.js (App Router), no database
  • Articles are plain Markdown files with frontmatter
  • Self hosted on a VPS for fastest speed
  • Pushing to master auto deploys through a CI pipeline
  • Pages revalidate every 5 minutes, and the sitemap is read from disk on every request. New posts go live without a rebuild.
#4: From keyword to article

First, a separate script finds keywords:


  1. For each profession cluster, it asks a model with web search for new long tail keywords
  2. The code filters out duplicates. It stems the words and compares similarity against everything already in the queue, in the suggestions and in published posts.
  3. Surviving ideas are saved as “suggested”. Nothing is written yet.
  4. I review them in the admin panel, then approve or reject each one
  5. Approved keywords go into the publishing queue. Rejected ones are stored so they’re never suggested again.
The model isn’t allowed to state search volume or CPC, because it would make those numbers up. That means I don’t have real keyword data yet. Once Search Console has data, I’ll use the real queries to pick the next keywords.

Then a second script writes the articles. It runs the whole process:

  1. It takes the next keyword from the queue
  2. A model with web search writes the article
  3. The output is parsed into metadata and body
  4. Every external link is tested, and dead links are removed
  5. The result is validated
  6. A second pass edits the language only
  7. Four images are generated
  8. It saves the file and adds inbound internal links from older posts

#5: Validation happens in code, not in the prompt

I don’t trust a prompt to enforce rules. The code checks:

  • Minimum word count, at least 5 H2s, at least one table
  • Title length and uniqueness
  • Description length
  • Internal links only to posts that exist
  • At least 3 external sources
If a check fails, the exact error messages go back to the model and it rewrites the article. It gets 3 tries, then the run aborts and the keyword stays in the queue.

#6: The YMYL guardrails

This part matters most in this niche:


  • The model isn’t allowed to invent numbers, prices, laws or personal experience
  • Example scenarios must be labelled as hypothetical
  • The editing pass is thrown away if it changes any number, link or heading
  • Real first hand notes can be added per cluster, and the model may use them but not embellish them
I also made sure the pages show the signals Google looks for in YMYL: a disclaimer, an editorial policy page, author info and sources.

#7: Control panel

A password protected admin panel lets me:


  • Approve or reject keyword suggestions
  • Reorder the queue and bulk select keywords to write next
  • Preview any article, including drafts
  • Publish or unpublish articles, one at a time or in bulk, and sort by draft/live status
  • Follow live job logs and see the API cost per run
New articles can go out as drafts first, so I can read them before they go live. There’s also a mode that auto publishes only when no warnings were raised.

#8: The plan

The system is built and the site is up. I haven’t started auto posting yet. The plan is 1 article per day, run by a nightly job.

I’ll start with drafts and spot check live articles regularly. A pipeline can fail quietly, and in a YMYL niche one bad article is a real risk.

#9: AdSense

I’m not applying for AdSense yet, and I won’t until I can see real numbers: traffic, rankings, and whether visitors actually stay and read instead of bouncing.

Also, the domain is brand new. New sites usually go through what people call the Google “sandbox”, a testing period where rankings are weak or unstable. It’s often described as lasting a few weeks, so I’m expecting roughly 3–6 weeks of Google testing the site.

Applying too early with no traffic is a good way to get rejected, so I’ll wait for the data.

#10: What I’ll share next

  • Analytics numbers: visitors, sessions, time on page and bounce rate
  • Search Console data: impressions, clicks, average position and rankings
  • Cost per article
  • When I apply for AdSense, and the result either way
You've definitely thought it all out! Have a good luck and following!
 
I’m not applying for AdSense yet, and I won’t until I can see real numbers: traffic, rankings, and whether visitors actually stay and read instead of bouncing.
According to G-AdSense update, if you apply today they will answer you in 2 weeks minimum.

So why not to apply and see what G-AdSense say. maybe that will help you.

You will win in the both side: if they accepted you, congratulation
I they rejected you, see the issue and fix it.
I wish you the best
 
According to G-AdSense update, if you apply today they will answer you in 2 weeks minimum.

So why not to apply and see what G-AdSense say. maybe that will help you.

You will win in the both side: if they accepted you, congratulation
I they rejected you, see the issue and fix it.
I wish you the best
Why should I apply for AdSense now when I don't have any traffic yet? AdSense normally rejects websites with little no traffic, so I think it makes more sense to focus on growing my traffic first and apply when the website has a better chance of getting approved. But thanks for the advice, I appreciate it!
You've definitely thought it all out! Have a good luck and following!
thanks man
Interesting Journey, definitely following.

I am curious, what made you decide to focus on 1 specific site instead of doing multiple (lets say 50) at the same time and picking your winners?
I also did the same as you did and am still unsure what the better approach would be
If you’re paying for all 50 websites, I can start 50. I already own two different websites, and this is my third one that I’m starting. For me, it’s more about focusing my time and resources on one site at a time rather than spreading myself too thin.

Following Good Luck!
Thanks man.
 
Back
Top