SOLOOS / AI ENGINEERING
Better context. Better applications.
An AI-assisted career workspace connecting profile evidence, job research, writing and follow-up.
View on GitHubYour role calls for clear workflows and a consistent design system. My experience turning complex product requirements into usable interfaces is directly relevant to that work.
Illustrative product views · fictional content · not live data
Soloos is a self-directed product, not a recruitment assignment. I connected product design with a full-stack implementation: collect candidate context, understand the role, draft a relevant letter, keep the person in control and track what happens next.
01 / CONTEXT
Context before generation
A letter is only as useful as the evidence behind it. The workflow combines a structured career profile with job requirements and optional public work evidence before calling the model.
- 01
Profile & CV
PDF import and editable career context
- 02
Job research
Role, requirements and company signals
- 03
AI draft
Contextual Gemini writing actions
- 04
Human review
Edit, shorten, improve or translate
- 05
Save & follow up
Export documents and track applications
02 / PRODUCT
A workspace, not another chatbot
AI appears as specific actions inside a familiar editor. The application remains a product with persistent documents, explicit states and a clear next step—not a prompt box pretending to be one.
Summary
Experience
Skills
Summary
Experience
Skills
Product Designer
Example Studio A
Product Designer
Example Studio B
Product Designer
Example Studio C
Illustrative product views · fictional content · not live data
Evidence-based drafting
CV import, structured job research, screening answers and optional Figma evidence supply context instead of a generic biography.
Editable CVs
Profile-prefilled documents, plain-text sections, live preview, duplication and downloadable PDFs.
Application tracking
Search, five statuses, notes, follow-up dates, due indicators and links to owned cover letters.
Three document languages
English, Russian and Armenian interfaces and document output, with bundled fonts for multilingual PDF export.
03 / ARCHITECTURE
Small contracts. Clear boundaries.
Next.js handles the workspace and server endpoints. Supabase supplies authentication and user-owned Postgres records. Gemini drafts and transforms text; the human decides what to keep. PDFKit handles document export.
Workspace
Next.js · React · TypeScriptEditors, profile context and application states
AI & research
Gemini · structured researchDiscrete actions with user-provided evidence
Persistence
Supabase · Postgres · RLSAuthenticated, owner-scoped records
Documents
PDFKit · bundled fontsEnglish, Russian and Armenian PDF output
04 / SOURCE
Inspect the implementation
These excerpts come from the published source. They show the contracts behind the interface—not decorative pseudo-code.
Scope data to its owner
Reads include the authenticated user ID. Mutations and linked-letter checks use the same ownership boundary alongside database RLS.
const { data: { user }, error: authError } =
await db.auth.getUser();
if (authError || !user)
return reply({ error: "unauthorized" }, 401);
let query = db.from(table[kind])
.select("*")
.eq("user_id", user.id);Mark untrusted model input
External text is explicitly framed as input data. This is one defensive layer, not a guarantee against prompt injection.
function safeUserInput(label: string, content: string): string {
return [
`<<<USER_INPUT:${label}>>>`,
content,
`<<<END_USER_INPUT:${label}>>>`,
].join("\n");
}05 / VERIFICATION
What is verified—and what is not
11 automated tests passed
Tests cover outbound-request boundaries, mocked CRUD and ownership checks, input validation, and real PDF text extraction and pagination in all three languages. Type checks and the production build also passed.
tests/ ↗