Skip to content
Alex Smorodin

Product design lead

Jobio · Product-design decision

Keeping job capture useful when import fails

Evolving manual entry and a browser extension into built-in capture with layered extraction and a usable recovery journey.

Project context: An AI-powered application workspace for understanding roles, preparing documents and tracking a job search. The work spans the application, marketing website, payment model and practical service delivery.

My contribution: Evolve job capture across manual entry, an extension and built-in URL import. Connect provider and extraction failures to clear user recovery paths. Unify save semantics and preserve source/input context through recovery.

Saving an opportunity is the first step in Jobio's preparation workflow. That task crosses a difficult boundary: the opportunity often lives on a job board that Jobio does not control.

Evolving the capture surface

The early product used manual forms and linked employer records. A browser extension later extracted information from supported sources and let the user review a draft. Paid URL import and extension credits were another stage. The extension was eventually deprecated, while built-in URL capture became free.

Those stages matter because capture is both an interaction and a delivery problem. A user should not need to understand which provider is used, but the product still needs to handle different page structures, incomplete information and access restrictions. The record establishes the extension's retirement; it does not establish every motive behind that decision.

Designing for imperfect sources

Later investigation found failures around provider access, regional job-board URLs and pages that returned HTTP success with anti-bot content instead of a usable description. A generic “check the URL” message could not represent those different situations or help the user finish the task.

Alternative considered

End the journey with a generic import error and ask the user to restart elsewhere. It discarded useful context and made knowledge of the separate manual route a prerequisite for recovery.

Deliberate choice
Combine layered import with typed errors, retained input, pasted-description recovery and minimal manual entry.
Accepted trade-off
Multiple extraction and recovery paths require consistent validation and save behaviour; they still cannot make every source readable.
Jobio Import Job from URL dialog with an empty URL input, supported-source explanation and Cancel and Import Job controls.Inspect image and full context
Local demo URL-import entry point. Recovery and fallback behaviour are explained from the documented workflow; this dialog does not demonstrate successful capture from every named source.

I connected the technical recovery with the product flow: alternate providers and structured-data extraction where available, clearer failure categories when automation cannot proceed, and a way to paste the description or enter the minimum information manually. The source URL and entered material remain available instead of forcing a restart.

Explanatory reconstruction: Preserve the opportunity. Try a link: Read the source page. Extract: Providers + structured data. Recover: Keep input; paste or enter basics. Save: One application draft.Inspect image and full context
Explanatory workflow reconstruction from project documentation; this is not a product screenshot. A successful HTTP response is not always a usable job page. Failure must remain recoverable.

One destination across successful and recovered capture

The endpoint is a saved job, not a successful scraping request. Automated capture, pasted content and basic entry therefore needed consistent draft semantics and a shared destination. That also made recovery part of activation rather than an obscure fallback for experienced users.

Built-in capture includes provider fallback, structured extraction, clearer failure categories and pasted/manual recovery that preserves input and reaches a saved job.

The extension is a historical stage. Its retirement is documented, but universal URL support and measured extraction-success gains are not established.

I owned the capture experience and its AI-assisted implementation across these stages. The result demonstrates integration constraints, failure design and end-to-end task thinking. It does not promise that every URL works or that free capture has no infrastructure cost.