LogoYevgeniy Akimenko
home
projects
⬡
SkillSetGo!
LSavr
ReNoun
RanPic
ConCord
Innota
First Maps
about
⬡
SkillSetGo!
LSavr
ReNoun
RanPic
ConCord
Innota
First Maps

My story: SkillSetGo!

OpenAI API

Structured Outputs

Prompt Engineering

TypeScript

Next.js

React

Sonner

Tailwind CSS

An award-winning AI tool that helps job seekers overcome resume writer's block by generating tailored, impact-oriented experience bullet points using structured LLM outputs.
SkillSetGo! screenshot
SkillSetGo! screenshot
Live Demo
Hackathon submission
GitHub

Overcoming Resume Writer's Block

Job hunting is one of the most demanding and time-consuming challenges professionals face. A persistent bottleneck in this process is “blank page syndrome”—the cognitive fatigue of translating raw competencies and technical tools into crisp, impact-oriented experience bullet points. Yet composing these from scratch across multiple skill sets is exhausting.
SkillSetGo was created as a creative launchpad to eliminate this friction. By choosing from a structured taxonomy of skills or entering custom proficiencies, applicants can instantly generate tailored, professionally phrased resume bullet points that jump-start their writing process. You can explore the experience directly in the interactive live demo.

15-Hour Hackathon Sprint & Award-Winning Prototype

The project originated as an individual submission for the BCIT Hack the Break 2023 hackathon. The competition challenged developers to build software addressing the rapid industry transformations impacting workers and new graduates.
Conceived, designed, and developed solo within an intensive 15-hour window, SkillSetGo focused on delivering immediate, practical value with zero unnecessary barriers. The prototype was rapidly built using React, Vite, and Tailwind CSS to maximize velocity and responsive UI iteration under strict hackathon time constraints.
Judges commended the tool for its polished user experience, clear value proposition, and timely application of generative AI to solve a real-world problem, awarding SkillSetGo 3rd place in the hackathon. The original open-source submission is hosted on GitHub.

Prompt Engineering & Structured AI Generation

Early generative AI implementations frequently suffered from verbose, unpredictable outputs, including unwanted preambles (such as “Sure! Here are two resume bullet points:”), inconsistent markdown formatting, and conversational filler that required tedious manual editing.
To produce clean, actionable bullet points, I crafted prompt instructions that position the model as an expert career coach and technical resume writer. The instructions enforce rigorous criteria: every bullet point must begin with an assertive action verb, illustrate practical context or quantifiable impact where possible, and strictly avoid introductory pleasantries or numbered prefixes.
Parameter tuning and token budgeting were essential aspects of the design. By capping output tokens and calibrating model parameters, the system produces focused, high-relevance suggestions while keeping API latency low and operating costs economical.
In modernizing the application for this portfolio, the integration was upgraded to utilize OpenAI's Responses API with native structured outputs (JSON schema mode). By enforcing a strict schema that demands a typed array of bullet points, the API delivers guaranteed, deterministic JSON payloads without markdown artifacts, backed by resilient fallback parsing for maximum reliability.

Interactive In-App Demo & UX Design

Rather than leaving SkillSetGo as an archived hackathon project, I rebuilt and integrated it as a fully interactive demo within this portfolio.
The interface provides a categorized selection of popular industry skills across five key domains: Languages, Frameworks, Databases, Design, and General professional competencies (such as leadership, adaptability, and problem-solving). Job seekers can add their own unique, specialized skills or emerging tools (such as prompt engineering or cloud orchestration) alongside catalog selections, with an intuitive five-skill maximum limit to maintain focused generation.
Selected skills render as dismissible badge pills with instant removal, clear counter feedback, and graceful boundary enforcement. During generation, an animated pulsing skeleton mimics the shape and dimensions of the incoming bullet point cards, eliminating layout shifts and reassuring the user that their request is actively processing.
Each generated bullet point features a one-click copy button powered by the Clipboard API (with an offscreen fallback), paired with an animated checkmark state and Sonner toast notifications, along with seamless retry and reset workflows.

Full-Stack Evolution: From Client Prototype to Secure Next.js Architecture

The original hackathon project operated entirely as a client-side single-page application. When bringing SkillSetGo into this portfolio, I re-architected the solution into a secure, full-stack implementation using the Next.js App Router and TypeScript.
All OpenAI API requests are handled through a dedicated server route. API credentials remain entirely server-side, never exposed to client browsers.
The server endpoint strictly validates incoming requests before making external API calls—ensuring the payload is a JSON object, verifying the keyword array length (between 1 and 5 items), capping individual keyword lengths at 50 characters, and sanitizing whitespace.
Custom error classification via SkillSetGoApiError gracefully maps upstream rate limits (429), authentication issues (401), invalid payloads (400), and service unavailability (502) into clear, friendly error messages with automatic retry prompts.
Front-end state transitions and network coordination are encapsulated within a custom typed hook (useSkillSetGo), separating presentation components from data fetching while seamlessly adhering to the portfolio's system-aware light and dark themes.
akimenkoy@gmail.com
LinkedIn
GitHub