The Evolution of an AI Workflow

Two attempts at the same AI hiring helper, a year apart. The first failed, the second shipped — and the difference wasn't that AI got better.

Architectural diagram of an agentic AI workflow.

A year ago I tried to build an AI hiring helper inside Microsoft Power Automate. It mostly didn't work. I went back to it recently and rebuilt the same idea as an agentic system — and this time it does. What's interesting isn't the build. It's why the second attempt worked.

I want to walk through the arc, because the lesson isn't "AI got better." It's something more useful than that.

The Power Automate Era

Two years ago, my workflow obsession was Microsoft Power Automate. I wired up flows for inbox triage, Teams notifications, Outlook-to-calendar plumbing — the kind of unglamorous automation that quietly saves a few hours a week. When Microsoft launched AI Builder inside Power Automate, the next step felt obvious: slot some AI into one of those flows and see what happened.

The First AI Experiment

The goal was specific. Read a job description, extract must-haves and nice-to-haves, score candidate resumes against them.

In practice, the walls went up fast. Power Automate's Word document extraction was poor enough that I needed a paid third-party plugin or had to manually crack open the .docx as a zip archive and parse the XML. The AI scoring was inconsistent — same resume, same job description, different fit score on different runs. And every time I solved one problem, the platform's licensing tiers were quietly hiding the next basic feature I needed.

I shelved it.

Editorial diagram of the original Power Automate workflow. Nine steps: trigger on file creation, load job PDF, branch into load resume PDF and extract job requirements, then three parallel AI extraction steps (applicant summary, SWOT, experience), converging into an applicant summary creator, then create file.
Nine boxes, four extraction agents, and three branches — to read one PDF and compare it to another. This is where I shelved it.

The Rebuild

A couple of weeks ago, I tried again — and this time I tossed the platform. Small custom app. A frontier LLM as the core logic engine. A local data store for persistence. The work decomposed naturally into focused agents: one pulls structured job descriptions from the Greenhouse public API. One parses each posting into must-haves and nice-to-haves stored as JSON. One handles candidate sourcing. One assessment agent compares candidates to requirements and produces a color-coded dashboard, with a quoted line from the resume backing every judgment it makes.

Each agent has a tight, specific job. The orchestration is intentionally dumb. And it works.

High-level architecture diagram of the agentic AI recruitment system. Data sources flow into an agent layer with five specialized agents and an orchestrator. A platform and data layer holds raw and processed data, a vector database, a knowledge base, and candidate profiles. A model layer powered by Google Gemini connects to model evaluation, integrations, and metrics.
The architecture the LLM drew up itself. Embeddings and a vector database are a stretch.

What Actually Changed

Here's what surprised me. The lesson isn't "the model got smarter," even though it did. The lesson is that AI workflows are evolutionary, not static.

The platform that fought me a year ago is still fine — for the things it was built for. But the job I was trying to do needed a different architecture. If I'd just swapped in a newer model inside Power Automate, I'd still be stuck. The bottleneck wasn't intelligence. It was the shape of the workflow.

The other thing I underestimated: subjective scoring is treacherous. A "fit score" that gives different answers on the same input twice isn't useful — it's noise dressed up as signal. The agentic version is better partly because it's forced to cite evidence. The judgment is still the model's, but I can audit it.

Worth a Second Look

What I'm taking from this: when the tooling is moving this fast, the right reflex isn't "this didn't work, abandon the idea." It's "this didn't work yet — what's changed in the last twelve months that makes it worth another swing?"

I'm sitting with that question on a few other side projects right now. The list of things I gave up on a year ago is longer than I'd like.

What's on yours?