Automating Job Role Extraction Using Prosus AI Assistant in Production

olx · E-commerce · 2024 · source Agentic: no · promotional bias: low · summary-only (no fetched source) · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Marketplace job-search enrichment

OLX needed to extract normalized job roles from unstructured job-ad titles and descriptions so job seekers could find relevant listings more effectively.

Constraints:

Architecture

OLX built a multi-stage job-role extraction pipeline using Prosus AI Assistant, an OpenAI-backed internal service. The system preprocesses ads, trims descriptions for token/cost control, translates where needed, extracts job roles, matches them into standardized taxonomies, publishes extracted roles to AWS Kinesis, and feeds the search indexing pipeline. A separate taxonomy-generation workflow uses searched keywords and extracted roles to build hierarchical job-role trees.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  ad-event-subscriber[Ad event subscriber] --> preprocessing-layer[Preprocessing layer]
  preprocessing-layer --> prosus-ai-assistant[Prosus AI Assistant]
  prosus-ai-assistant --> aws-kinesis-stream[AWS Kinesis stream]
  aws-kinesis-stream --> search-indexing-pipeline[Search indexing pipeline]
  taxonomy-generator[Taxonomy generator] --> search-indexing-pipeline
  prosus-ai-assistant --> taxonomy-generator
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Ad event subscriber Consumes new and updated job-ad events. Preprocessing layer
Preprocessing layer Cleans, trims, and translates job-ad text before model calls. Ad event subscriber, Prosus AI Assistant
Prosus AI Assistant Extracts job roles and maps them into normalized taxonomy information. Preprocessing layer, AWS Kinesis stream
Taxonomy generator Builds hierarchical job-role taxonomies from searched keywords and extracted roles. Prosus AI Assistant, Search indexing pipeline
AWS Kinesis stream Delivers enriched job-role data into downstream search indexing. Prosus AI Assistant, Search indexing pipeline
Search indexing pipeline Indexes extracted roles with ad titles and parameters for search lookup. AWS Kinesis stream, Taxonomy generator

Data flow

New or updated ads are cleaned and trimmed, sent to Prosus AI Assistant for job-role extraction and taxonomy matching, emitted through AWS Kinesis, and incorporated into the search index. Periodically, searched keywords and sampled job roles feed taxonomy-tree generation when category structures change.

4 supporting quotes
“The job-role extraction system operates through a multi-stage pipeline that processes job advertisements to create structured, searchable job role data.”summary, stated
“The preprocessing pipeline includes text cleaning, trimming content to the first 200 words/tokens (to manage API costs and stay within token limits), and translation where necessary since the initial focus was on the Polish market.”summary, stated
“A dedicated service subscribes to ad events and uses Prosus AI Assistant to extract job taxonomy information. The extracted job roles are then sent to AWS Kinesis, which feeds into the search team's indexing pipeline.”summary, stated
“The extracted job roles are then sent to AWS Kinesis, which feeds into the search team's indexing pipeline. The enriched data connects extracted job roles with other ad information like titles and parameters for search lookup.”summary, stated

Why this architecture

OLX decomposed the job into extraction, taxonomy generation, and indexing because role discovery and search retrieval have different cadences. Continuous extraction handles daily ad updates, while taxonomy regeneration happens only when category trees change. Using Prosus AI Assistant accelerated deployment under privacy terms, but the cost profile pushed the team toward evaluating self-hosted models.

3 supporting quotes
“The production implementation consists of two main operational modes: • Backfilling: A comprehensive operation to process all existing ads retrospectively to extract and store job roles”summary, stated
“For taxonomy generation, the API request volume depends on the number of sub-categories and is only triggered when there are changes or updates”summary, stated
“• Time-to-Market: Using an existing API allowed for rapid deployment and immediate benefits • Privacy and Security: Prosus's special agreement with OpenAI includes enhanced data handling measures and a zero-day data retention policy”summary, stated

Models used: Prosus AI Assistant · OpenAI-backed LLM service

Scale

Alternatives considered (roads not taken)

Self-hosted LLMs

Rejected because: Prosus AI Assistant enabled faster deployment and privacy handling, though self-hosting remained a future cost-control option.

“• Time-to-Market: Using an existing API allowed for rapid deployment and immediate benefits • Privacy and Security: Prosus's special agreement with OpenAI includes enhanced data handling measures and a zero-day data retention policy”summary, stated
“However, the solution costs approximately $15K per month, prompting the team to consider transitioning to self-hosted models for long-term sustainability.”summary, stated

Single monolithic model task

Rejected because: The team split processing into extraction and taxonomy matching, which doubled request count but simplified the task.

“The team made an architectural decision to break down the processing into two sub-tasks—job-role extraction and matching within the standardized tree—resulting in approximately 4,000 daily API requests to Prosus AI Assistant.”summary, stated

Integrate extracted roles directly into ranking first

Rejected because: The initial A/B test used retrieval only, leaving ranking integration for later.

“The team conducted A/B testing to evaluate the impact of the job-role extraction system, focusing on the retrieval stage of search (not yet integrated into search ranking).”summary, stated

Patterns

structured-output-contract (data)

The LLM extracts unstructured job ads into normalized job-role taxonomy data for indexing.

“extract job roles from unstructured text and build normalized job-role taxonomies.”summary, stated

prompt-chaining (workflow)

The production path decomposes extraction and matching into two LLM sub-tasks.

“break down the processing into two sub-tasks—job-role extraction and matching within the standardized tree”summary, stated

cost-aware-routing (operations)

OLX trims inputs, separates periodic taxonomy generation from daily extraction, and evaluates self-hosting because API costs are significant.

“trimming content to the first 200 words/tokens (to manage API costs and stay within token limits)”summary, stated
“approximately $15,000 per month for the Prosus AI Assistant service.”summary, stated

eval-driven-development (evaluation)

OLX used A/B testing and segmented search metrics to validate search impact.

“The team conducted A/B testing to evaluate the impact of the job-role extraction system”summary, stated

Tradeoffs

Use Prosus AI Assistant first

Chose external/internal managed LLM API over self-hosted models at launch.

Rationale: The API offered accuracy, privacy terms, and faster time-to-market, but created long-term cost and dependency concerns.

“Accuracy: Informal monitoring during annotation showed a low incidence of flaws”summary, stated
“Time-to-Market: Using an existing API allowed for rapid deployment and immediate benefits”summary, stated

Split extraction and taxonomy matching

Chose two sub-tasks over one LLM call per ad.

Rationale: The split improved task clarity but doubled daily API request volume.

“resulting in approximately 4,000 daily API requests to Prosus AI Assistant.”summary, stated

Trim ad descriptions before model calls

Chose first 200 words/tokens over full ad text.

Rationale: Input trimming managed API costs and token limits while preserving enough context for role extraction.

“trimming content to the first 200 words/tokens (to manage API costs and stay within token limits)”summary, stated

Gotchas (what bit them)

External API cost became a strategic concern.

Root cause: Daily extraction required around 4,000 API requests and cost about $15,000 per month.

Resolution: The team began evaluating self-hosted models for long-term sustainability.

“This cost revelation prompted serious reflection on sustainability and efficiency for ongoing operations.”summary, stated
“The team is now evaluating a pivot toward self-hosted models”summary, stated

Search impact was limited by retrieval-only integration.

Root cause: Extracted roles were not yet integrated into ranking.

Resolution: The team treated initial A/B results as promising but limited.

“the impact currently resides only in the retrieval stage and is not yet integrated into search ranking”summary, stated

Taxonomy evolution can create inconsistencies.

Root cause: Changing job categories may require recreating role taxonomies.

Resolution: OLX planned automated sub-category change detection and taxonomy regeneration.

“changes can necessitate recreation of job-role taxonomies and potentially introduce inconsistencies”summary, stated
“detects changes in sub-categories and automatically regenerates necessary job-role taxonomies.”summary, stated

Evaluation

OLX used A/B testing focused on retrieval-stage search metrics and segmented results by low/medium/high result-count groups.

Metrics: Successful Events uplift · search extensions · keyword searches per user · confidence intervals · retrieval-stage impact

3 supporting quotes
“A/B testing to evaluate the impact of the job-role extraction system, focusing on the retrieval stage of search”summary, stated
“dividing results into low, medium, and high segments.”summary, stated
“Positive uplift in most metrics related to Successful Events (SE)”summary, stated

Outcomes

Summary-only evidence reports daily ad/API volume, $15K monthly cost, and retrieval-stage search improvements.

“significant decrease in search extensions and keyword searches per user when results were fewer than 50”summary, stated
“approximately $15,000 per month for the Prosus AI Assistant service.”summary, stated