Product Updates5 min read

What We Shipped This Week — May 9, 2026

A week of HiringFunnel updates: the coach inbox now matches interview emails to the application that triggered them, the digest stopped sending duplicates, and the marketing site got faster and easier for Google to find.

Why we publish these

Last week we started writing these updates because the platform our members apply through this month should be visibly better than the one they applied through last month. The way to keep that promise is to ship in public. Here is what landed between last Saturday and today.

The coach inbox now knows what an interview is for

If you are a HiringFunnel member, your coach watches your inbox alongside you. When a recruiter writes back to schedule a screen, that email lands in the coach console with a label that says "interview." Useful, but until this week the label stopped there. The coach saw "interview email from Stripe" and had to dig through your application history to figure out which Stripe role it referred to, when you applied, and what the JD looked like.

That changes today. When an interview email arrives, the system now pairs it against your recently applied jobs and stamps the matching application directly on the email. The coach sees an "Application: {role title} — applied {date}" chip on the row, with a hover that opens the original posting. If the match is high-confidence, it shows up automatically. If it is borderline, a "confirm match" affordance appears so the coach can pick the right one in two clicks instead of digging.

Behind the scenes the matcher runs a Haiku tool-use call against the member's recent applied jobs at the moment the email lands, scores the candidates, and writes a foreign key on the activity row. We gated it on a twenty-case eval before shipping — precision had to clear 0.85 or it was not allowed in the prod path. The result is that the next time you book a screen, your coach is already on the same page about which application sourced it before they ever open Slack.

A quieter, more honest digest

The morning opportunity digest had been quietly double-counting. If two recruiters reached out about the same job, or if a single email hit the inbox twice through Gmail's quirks, it could show up twice in the day's summary. Subtle, but it eroded trust in the count at the top of the email.

We rewrote the digester's query path to dedupe at the source. The number you see at the top of the digest is now the number of distinct opportunities, full stop. Same change closed a loop on the inbox classifier — we trimmed it back to the smallest set of categories that actually drive routing decisions, so an email is now either an interview, an offer, a rejection, an opportunity, or noise. No more half-categories that made the inbox harder to scan.

We also fixed a small but persistent bug where clicking an interview row in the dashboard inbox would scroll the wrong drawer open. Tiny issue, hundreds of taps a day across the member base. Worth a fix.

A cleaner coach console

A few coach-side improvements that members will only feel indirectly:

State targeting on scans.: Coaches can now restrict a member's job scan to a specific list of US states from the member detail page. Useful when a member is locked to a particular region for visa, family, or compliance reasons. Backed by a real multi-select instead of the previous freeform text field, with the fifty-state list sourced from one canonical file so it cannot drift between frontend and backend.

Location normalization moved off the scanner.: The job scanner used to do its own city-to-region parsing inline. We pulled that out into a dedicated worker that backfills locations on a schedule, which means the scanner runs faster and the location data on every job is now consistent regardless of which source it came from.

A marketing site that is faster, findable, and honest about who runs it

Most of the week's other work happened on the public site:

A real /faq page.: The questions members ask in the discovery call now have first-class answers indexed by Google. Forty of them, organized by topic.

Founder bylines on every blog post.: Each post now carries the author's name, role, and schema.org Person markup so search engines understand who is making the claims. The about page got the same treatment. If a post is making a recommendation, you should know who is making it.

Internal links from posts to the right places.: Every blog post now links to the career guides and competitor comparisons that match its topic. If you are reading the automated job applications guide, the relevant comparison and career pages are one click away.

The app subdomain stops showing up in Google.: `app.gethiringfunnel.com` is the member dashboard. It has no business being indexed. We added a host-aware noindex header at the middleware layer so members logging in never have a stranger find their dashboard via search.

Faster first paint on marketing pages.: We trimmed the font preloads on the homepage to only the weights actually used above the fold, and pinned a poster frame on the founder video so it no longer shifts the layout as it loads. Both showed up as Lighthouse regressions and both are now back in the green.

Lighthouse CI on every PR.: The marketing pages now run Lighthouse on every pull request and fail the build if Core Web Vitals regress past a baseline. The site cannot get slower without someone choosing to make it slower.

What is next

A few designs went into the repository this week that we have not started building yet:

A pre-webinar funnel that puts a short interactive scorecard in front of cold traffic before they ever see a registration form. Higher conversion than a static page, and the score itself becomes the hook for showing up live.

A FAANG readiness quiz on the member side — short, opinionated, scored against the same rubric a hiring manager at a top-tier company would actually use. It exists to give members an honest read on where they actually stand before they spend two months interviewing.

The next round of the multi-step apply flow. The schema and the form pieces are in. The Stripe checkout for the self-serve path and the calendar embed for the high-fit path are the work for next week.

If you are an engineer thinking about a move and want to see the funnel from the inside, the application form is open. If you are evaluating whether a coached search is right for you, our comparison of HiringFunnel versus LazyApply lays out where each approach actually fits.

Ready to Land Your $200K+ Role?

Join hundreds of engineers who've transformed their careers with HiringFunnel.

Get Started Now