Skip to content
back to achievements

Case study · SeedLinked

Client project · AugmentProject period2022 – 2025

AI enrichment workflow

Implemented a LangChain-based AI enrichment workflow, orchestrated with GCP Workflows, to transform collected seed data into structured descriptions covering strengths, weaknesses, growth and yield, flavor and appearance, disease resistance, maturity, and growing conditions, with human review before approval and persistence.

01

Why

The client team wrote every description by hand. Most of the text came from the external sources anyway, and when they approved a record they rewrote sentences to make them clearer for the reader. They thought: why not integrate AI? It simplifies the whole process and saves a lot of time.

02

Decision

A LangChain workflow with Gemini turns the collected data into structured descriptions: strengths, weaknesses, growth and yield, flavor and appearance, disease resistance, maturity and growing conditions.

  • GCP Workflows coordinates the steps. Each step is a Cloud Run function that is triggered by the action before it. That makes the flow flexible and easy to maintain, and it's easy to see each result and to debug. It's also consistent and solid, so I didn't look at other options. New records arrive through a Cloud Tasks queue, which retries a failed step instead of losing it.
  • Gemini because my company is a Google partner and uses Google's products for every client.
  • A person approves before anything is published. Approved data is saved to MongoDB. Rejected data is removed from the flow and from its stored data.
  • Monitoring. LangSmith records each production run and alerts the backend, which posts the alert to Slack.

How it fits

Hover or focus a box for the story behind it.

A scheduled pipeline scrapes sources, skips duplicates, queues new records, enriches them with AI, sends them for human review, and saves approved data while removing rejected data. Failed items return to the queue. LangSmith monitors production runs and alerts Slack through the backend. A separate lane runs offline evals and a quality gate whenever the model or prompt changes.Runs on a schedule, coordinated by GCP WorkflowsThe server scrapes a fixed set of sources and checks source ID and name against the database. Records it already has are ignored, and only new ones move on.Collect Skip duplicatesNew records are queued through the Cloud Tasks API. If processing fails, the task is retried instead of lost.Queue Cloud TasksA LangChain workflow using Gemini turns the collected data into structured descriptions, coordinated by GCP Workflows.AI enrich LangChainGenerated content is never published directly. A person approves or rejects it first.Human review Approve, rejectApproved seed information is saved to the database and becomes available in the app.Save MongoDBRejected information is removed from the processing flow and from its associated stored data.Removed Data deletedFailed: back to queueLangSmith covers both kinds of evaluation. Offline, it checks changes before release in CI/CD. Online, it records each production run, so you can see the incoming data and what happened inside the AI enrich step.LangSmith Online monitoring, offline evalsLangSmith sends an alert to a webhook on the SeedLinked backend, which turns it into a message for Slack.Backend WebhookThe team sees the alert in Slack.Slack Alert postedRuns when the AI changesSwitching to a new model version, editing a prompt, or changing the generation logic all count as an AI change.AI change Model or promptEval tests run as a GitHub Actions workflow instead of inside the live pipeline, so checking quality never slows it down. The results are recorded in LangSmith.Eval tests GitHub ActionsThe regression check: if the generated descriptions get worse, the change is blocked.Quality gate Pass or blockOnly a change that passes the gate is deployed.Ship Deploy changeBlocked: fix and rerun

On a schedule, the server scrapes the sources and skips records it already has. New records go into a Cloud Tasks queue. The AI step writes structured descriptions covering strengths, weaknesses, growth and yield, flavor and appearance, disease resistance, maturity and growing conditions, and a person approves or rejects them. Approved data is saved to MongoDB and rejected data is removed. If a step fails, the item goes back to the queue and is retried. LangSmith watches each run and can alert Slack through the backend.

03

Alternatives considered

  • The client team writing the descriptions, which is how it was before.
  • An automatic quality check instead of the human approval. It would be easy: if the quality is poor, the workflow goes back and tries again. The client wanted a person to approve every record, and it's the client's call, so we didn't build the automatic check.
  • Other AI models. We use Gemini because of the Google partnership.

04

What I built

Designed and implemented an automated workflow for processing newly discovered seed information and transforming raw externally collected data into enriched seed content suitable for the platform.

The workflow followed a multi-stage process:

External Sources → Data Extraction → Scheduled New-Data Detection → AI Enrichment → Human Review → Approval / Rejection → Database

After new seed information was collected from external sources, scheduled backend processing identified newly arrived data and passed it through an AI-assisted enrichment process.

The AI analyzed the available seed information and generated structured descriptions across relevant characteristics, including:

  • Strengths
  • Weaknesses
  • Growth and yield
  • Flavor and appearance
  • Disease resistance
  • Maturity
  • Growing conditions

Rather than allowing AI-generated information to be published directly, incorporated a human-in-the-loop approval stage into the workflow.

Approved seed information was persisted to the application's database and made available for application use. Rejected information was removed from the processing flow and associated stored data.

Used GCP Workflows to coordinate the different stages of the processing pipeline.

05

Trade-offs

  • A person has to review every record, which takes time. The client chose that on purpose.
  • Gemini only, because of the company's Google partnership.

06

Outcome

The description process is simpler and faster, and generated content reaches the site only after a person approves it.

Technologies