Skip to content

What we learned building LunarBid’s Job Analyzer

The most useful thing an AI proposal tool can do happens before any proposal is written. Here is how we designed the analyzer, and what it taught us about AI in production.

NWEE2 min read

When we started building LunarBid, the obvious feature was a button that writes a proposal. It worked, but it missed the hard part. Good proposals come from reading a job post closely, understanding what the client is really worried about, and deciding whether the job is worth bidding on at all.

Analyze first, write second

So we built the Job Analyzer. Paste a job post and it returns a short summary, the key requirements, the client’s underlying pain points, red flags such as vague scope or an unrealistic budget, angles that would stand out from other bidders, a suggested tone and length, an estimated budget range and a match score against your own profile. Only then do you generate a proposal, and you review it before it goes anywhere.

Structured output, validated every time

Language models are good at text and unreliable at formats. The analyzer asks for a strict structure, then checks every field on the server: lists are trimmed, scores are kept between 0 and 100, and unexpected values fall back to safe defaults. The interface never has to guess what it received.

No single point of failure

AI providers have outages and slow days. LunarBid can route requests across five model providers and falls back automatically when one fails, so a user in the middle of a deadline is not left waiting on someone else’s status page.

These patterns, analysis before generation, validated structure and provider fallback, now shape the AI features we build into client websites and applications.

Let’s build what’s next.

Tell us what you are working on. Someone from the team will reply personally.