The idea

Structure the data.
Automate the repetition.
Keep judgement human.

A job search contains a surprising amount of operational work: extracting requirements, comparing experience, deciding how much to tailor an application, finding the right contact, preparing outreach and remembering to follow up.

Instead of treating every vacancy as a separate task, I decomposed the workflow into repeatable stages and connected those stages through structured data and decision rules.

THE WORKFLOW

From unstructured posting to next action.

Scroll to follow the pipeline
01
↳
Extract

Structure the job posting

Turn an unstructured JD into company, role, technical skills, target contact type and a searchable outreach path.

OUTPUTStructured job metadata
↓
02
◎
Assess

Measure fit before investing effort

Check dealbreakers first, then assess requirements against an authoritative candidate experience pool and produce a fit score.

OUTPUTFit score + gaps + strategy
↓
03
↗
Decide

Allocate effort to the opportunity

The score feeds a defined application strategy: skip, apply cautiously, apply, or prioritise, with different tailoring depth.

OUTPUTEffort level
↓
04
▣
Tailor

Generate the right application

Use the selected strategy to tailor the professional title, summary, competencies and relevant experience without inventing evidence.

OUTPUTRole-specific resume
↓
05
↗
Execute

Connect application and outreach

Carry the structured job record into the tracker, then connect the vacancy with a relevant LinkedIn or email contact and tailored message.

OUTPUTApplication + outreach record
↓
06
↻
Follow up

Close the loop

Track contact status, follow-up dates, messages and application status so the workflow continues after the Apply button.

OUTPUTNext action
Decision layer

The score is not the decision.

The fit assessment separates judgement from the downstream action. Requirements are assessed against the candidate profile, then the result is mapped to a predefined application strategy.

This prevents the workflow from becoming a black-box “apply or reject” machine. The system reduces repetitive analysis while keeping the final positioning and application decision human.

86 / 100HIGH MATCHMAX TAILORING
68 / 100APPLYMEDIUM TAILORING
54 / 100MEDIUM MATCHAPPLY CAUTIOUSLY
SYSTEM VIEW

A workflow, not a collection of prompts.

Inputs → decisions → actions → feedback
JOB POSTING→STRUCTURED METADATA→FIT ASSESSMENT
RESUMELINKEDINEMAILTRACKER
FOLLOW-UP + STATUS FEEDBACK
↻
ChatGPTGoogle SheetsGoogle Apps ScriptHunterGmail
DESIGN DECISIONS

A few choices I am proud of.

01

Fit score separated from strategy

The score informs the next step, but does not become the final application decision. A defined strategy layer controls how much effort to invest.

02

Human-in-the-loop by design

AI handles extraction, classification and drafting. Judgement, positioning and relationship-building remain human responsibilities.

03

Structured data before automation

Company, role, skills, contact type and application metadata are standardised before downstream workflows use them.

04

Effort is proportional to opportunity

High-fit roles receive deeper tailoring and targeted outreach. Weaker opportunities require less manual effort.

05

Ownership stays visible

The workflow is designed around evidence from the candidate experience pool, so tailoring does not invent experience simply to match a JD.

06

The workflow closes the loop

The process continues after application submission through outreach, follow-up dates, response tracking and status updates.

Why I built it

The interesting part was not automating the job search. It was redesigning the process.

I was spending too much time managing the mechanics of the search and not enough time on the parts that required judgement. Building the workflow became an opportunity to apply the same principles I use professionally: structure the process, make the data usable, identify bottlenecks, automate repetitive steps and create visibility over what needs attention next.