AI Product

JobEmber. AI Job Application Agent

Automates job search and application. AI agents discover jobs, research companies, tailor CVs and cover letters in the applicant’s own voice, and track everything through a five-stage web interface.

JobEmber. AI Job Application Agent cover
Duration
Mar 2026 to present
Role
Product Owner, Product Designer
Company
JobEmber
Country
Romania
Team
  • Diana HubskaProduct Owner & Designer
  • Denys HDeveloper, Security Expert
  • Claude Code
  • AI product
  • B2C
  • Startup
  • Multi-agent

Context

Most job search advice focuses on finding roles. The hours actually go into assembling each application. For every position: research the company, match your CV to the job description, write a cover letter that sounds like you, fill the form, track where you applied. Two to three hours per application is normal for anyone doing it properly.

I own this product, designed it, and built it with Claude Code alongside Denys H, who handles security and infrastructure.

Outcome

  • 87.5%Reduction in time per application in beta
  • 12015 minTime to complete one application
  • 20+Agents in the production pipeline
  • 3 to 5Testers applying to real jobs throughout

Problem

The mechanical assembly work dominates the process, and it crowds out the part that actually needs a person. Deciding whether a role is worth applying to takes judgment. Reformatting a CV for the fourth time this week does not.

People applying at volume end up doing the second thing until they have no attention left for the first.

How might we

remove the mechanical burden of job searching so people can spend their time on the decisions only they can make?

Solution

Agents search platforms, profile employers, and produce application documents that sound like you wrote them, because the generation is constrained by samples of your own writing. A detection pass runs on every output to catch anything that reads as machine-made before it reaches a recruiter. Everything flows through a five-stage dashboard; a Chrome extension pulls in positions you find while browsing. The product is multi-tenant and launched now.

Beta testing brought application time down from around 120 minutes to around 15. The fifteen minutes that remained were the part that actually needed a person.

Research

What the competitors got wrong

Before writing a line of code, I ran a market research pass. Tools like LazyApply, Sprout and Sonara all run the same play: spray applications at volume with minimal customisation and no voice matching. That approach produces a lot of applications and very few conversations.

The niche we found was the opposite end: fewer applications, higher quality, output that actually sounds like the person sending it. That gap drove every product decision that followed.

Competitive analysis of LazyApply, Sprout and Sonara against the quality-first positioning

Architecture

From three terminal scripts to a product

JobEmber started as three scripts I ran in a terminal for myself: job-searcher, employer-profiler and cv-adapter. The terminal version worked and was unusable by anyone else.

It grew into more than twenty agents triggered from a web interface, covering discovery, research, tailoring, scoring, AI-detection screening and application tracking. The product is multi-tenant and in production.

The agentic system: Claude Code running the cv-adapter agent against a real job description

Design decisions

The dark version failed a contrast check

The first interface was dark, and it failed WCAG contrast in several places, which I found in a check afterwards. The whole thing had to be rebuilt.

The rebuild validated the five-stage architecture at the same time.

The pipeline system in the first dark build, showing the five stages of discover, research, generate, export and apply

Design decisions

Why the product is cream and not dark

The warm cream palette came out of user research. Job seekers kept using the same word for the experience, and the word was “exhausting”. A dark, dense, high-contrast tool aimed at people already running low on attention adds to that.

I read what exists on emotional design in high-stress contexts and moved the whole palette to warmer tones that reduce perceived cognitive load.

Interface redesign explored in Claude Design

UI/UX redesign via Claude Code

Implementation ran through Claude Code. Position colour-coding by geography made the job list scannable at a glance. A template selector let users choose between Standard and ATS document output per application. Sorting and filtering gave the applications tracker real utility. A price calculation surface made the cost per action visible, which matters once the product moves toward a paid tier. Each feature came directly from something testers couldn’t do without.

UI and UX redesign implemented through Claude Code

Design decisions

Voice matching

A hiring manager reads a cover letter and then speaks to the candidate in a screening call. When the two do not sound like the same person, it creates doubt that is easy to notice.

The voice-capture layer analyses a user’s own writing samples for sentence length, vocabulary, formality and rhythm, then constrains generation to match. This is the same problem my voice-applier skill solves, applied inside a product.

The voice capture and matching layer built from a user's own writing samples
AI-detection screening applied to generated documents before export

Design decisions

Two features, one added and one removed

Testers kept losing track of what they had sent. Past Applications stores every CV and cover letter version submitted, with filter pills for stage, company and date.

The Evaluator went the other way. It was a one-shot assessment offering learning recommendations, and people actively job-searching did not want it. An Experience tracker replaced it, holding verified project and education data that feeds CV generation. Removing a feature I had built was the right call and it did not feel like one at the time.

Past Applications tracking with filter pills for stage, company and date
The Experience tracker that replaced the Evaluator feature

Design decisions

Chrome extension

Roles turn up while browsing, on niche boards and company career pages that no aggregator indexes. The extension captures those positions and pre-fills application form fields. It also reads the application form in real time, so Q&A fields are pre-populated from the user’s profile by the time they reach Stage 5.

The Chrome extension capturing a role from a company career page

Testing

Three to five testers used JobEmber for real applications throughout development, which is different from testing a prototype. Their feedback arrived as actual problems: a cover letter that did not sound like them, an application they could not find again, a feature pulling attention away from the work.

The filter pills, the geographic colour coding, the voice settings and the Evaluator removal all came from watching that.

Reflection

Application time fell from roughly 120 minutes to roughly 15, an 87.5% reduction, which means eight applications in the time one used to take. The remaining 15 minutes hold the judgment work, and that is where they belong.

Denys H runs security and infrastructure. Marketing is the current phase I’m working on.