Skip to content
Tomer Naydnov
← All workPRODUCT STUDY / Applytide

THE PERSONAL JOB-SEARCH WORKSPACE

Applytide

Find it. Make it yours. Move it forward.

A personal workspace for a job search: capture a posting in your browser, prepare your documents for that role and keep the application’s next step in view.

Job seekersOne account, one search
A LOOK INSIDE / Pipeline
applytide / in use
Applytide: From application to interview
Applytide: A saved opportunity, not another bookmarkPersonal job-search workspace ↗

Original application. Fictional demo data.↗ Screens open at full resolution

MY ROLE
Product · design · full-stack engineering
CONTEXT
Solo project · sole creator
TIMELINE
Aug 2025 - Apr 2026
PROJECT STATUS
Source archived

THE IDEA, IN A MOMENT

Every opportunity has a next step.

A job search is a collection of small decisions. Keep the posting, application, documents and follow-up in one personal workspace.

Where I contributed

I designed and built the complete product: Chrome extension, React interface, FastAPI backend, data model, document tools, and AI cost controls.

Capture the opportunity

That promising tab becomes a real plan.

Save a fictional Northstar Studio posting with the actual installed extension. The role, company and location arrive in the same personal workspace, ready for a closer look.

IN MOTION

From a posting to a personal opportunity

An installed extension captures a fictional posting, saves it through the actual backend, and opens the result in the same account.

Download video
Read the walkthrough
  1. Capture the opportunity

    An installed browser extension is connected to a real isolated Applytide backend.

  2. Capture the posting in your browser

    The real installed extension captures a clearly labeled fictional local job page. The wait is condensed to 1.25×.

  3. Keep a structured opportunity

    The original popup confirms that the backend saved the extracted role, company and location.

  4. Find it in the same personal workspace

    The opportunity appears in Alex’s authenticated jobs list.

  5. Read the saved context before applying

    The original detail view retains the posting text and location, with its existing Apply to Job action.

Applytide: detail of A saved opportunity, not another bookmark
DETAIL / ORIGINAL SCREEN
View screen
01 / Personal job-search workspace

A saved opportunity, not another bookmark

The original extension confirms the real backend record, including Product Engineer, Northstar Studio and London.

Applytide: detail of Keep the original posting in context
DETAIL / ORIGINAL SCREEN
View screen
02 / Personal job-search workspace

Keep the original posting in context

The opportunity opens inside Alex’s personal workspace, retaining the captured role, location and description.

Prepare for the role

A resume, with the right context.

Choose a saved role inside the document review. Look past the score to the category explanations and missing terms - useful prompts for an honest revision.

IN MOTION

Review a resume in the context of one role

Alex previews the uploaded resume, selects a saved Fieldnote role, and inspects the real local heuristic result by category and keyword.

Download video
Read the walkthrough
  1. A role-aware review

    A real uploaded fictional resume and a saved role provide the review context.

  2. Start with the original document

    Alex opens the uploaded sample resume inside the original document viewer.

  3. Choose the role, not a generic score

    The original analysis dialog selects the saved Fieldnote Frontend Engineer role as context.

  4. Run the local checks

    With no model configured, the real backend returns its rule-based scoring fallback. These scores are not an employer ATS assessment.

  5. Read the reasons behind the result

    Category scores identify strong technical coverage alongside weaker role wording.

  6. Turn the result into a revision list

    The original result shows found and missing keywords, with a reminder to mirror wording only where truthful.

Applytide: detail of Look beyond the headline score
DETAIL / ORIGINAL SCREEN
View screen
01 / Personal job-search workspace

Look beyond the headline score

The original local result separates keyword coverage, readability, technical skills and soft skills. These category values provide review prompts.

Applytide: detail of See the wording behind the result
DETAIL / ORIGINAL SCREEN
View screen
02 / Personal job-search workspace

See the wording behind the result

The original result separates found and missing terms and reports role-specific matches. All results here come from the local heuristic fallback; no model was called.

Keep moving

Every opportunity has a next step.

Move an application forward, preserve the conversation in a note, keep documents close and set a follow-up. The pieces stay with the search instead of disappearing into separate tabs.

IN MOTION

One opportunity, all the way to the next conversation

Alex saves a role at Lattice Studio, attaches an existing resume, advances the application, saves a note and schedules an interview reminder.

Download video
Read the walkthrough
  1. Save a role worth pursuing

    Save a fictional Product Engineer role through the original manual-entry form.

  2. Attach the right resume

    Select an uploaded PDF and attach it to the application record.

  3. Move to Phone Screen

    Update the application stage through the original pipeline menu.

  4. Keep the conversation in context

    Save a note with useful context for the next interview.

  5. Schedule the next conversation

    Create a dated reminder within the application.

  6. Return to your follow-ups

    Open the reminder list and see the saved follow-up in the same account.

Applytide: From application to interview
View screen
01 / Pipeline

From application to interview

Alex can see the applications grouped by stage and open the context for each opportunity.

Applytide: Context beside the application
View screen
02 / Application detail

Context beside the application

Fieldnote’s application keeps the portfolio conversation and technical-interview preparation together.

Applytide: The next conversation, remembered
View screen
03 / Reminders

The next conversation, remembered

Upcoming interview preparation and follow-ups belong to Alex’s individual workspace.

More of the product 6 additional screens
Applytide: Saved opportunities
View screen
01 / Opportunities

Saved opportunities

Alex keeps prospective roles, requirements and application actions in one searchable job collection.

Applytide: Documents ready to attach
View screen
02 / Documents

Documents ready to attach

A resume, cover letter and portfolio PDF are available inside Alex’s document library.

Applytide: Capture without leaving the posting
View screen
03 / Personal job-search workspace

Capture without leaving the posting

The actual installed extension is ready to capture the active fictional job page.

Applytide: Keep the source document close
View screen
04 / Personal job-search workspace

Keep the source document close

The original document viewer opens Alex’s uploaded fictional sample PDF.

Applytide: Choose the role you are applying for
View screen
05 / Personal job-search workspace

Choose the role you are applying for

The original analysis dialog selects Fieldnote’s saved Frontend Engineer role before running the review.

Applytide: A local review result
View screen
06 / Personal job-search workspace

A local review result

The backend’s rule-based fallback returns 64/100 for this fictional resume and role. This is an internal heuristic, not an employer ATS assessment.

FOR THE TECHNICALLY CURIOUS

The thinking underneath.

The important boundaries, implementation choices and trade-offs. Open a topic for the details.

  1. 01

    Capture at the source

    The MV3 extension collects structured, rendered and readable page content with a per-tab capture guard.

  2. 02

    Keep an owned record

    Authenticated FastAPI routes connect the posting to a user’s jobs, applications and documents.

  3. 03

    Review in context

    Resume text and the selected role feed a content-sensitive cache, local rules and optional providers.

  4. 04

    Account for the work

    PostgreSQL records, Redis controls and provider-usage attribution support the application boundary.

Product surfaces

React · TypeScript · Chrome MV3

An authenticated workspace manages the search. A browser extension provides a separate capture entry point.

Application services

FastAPI · PostgreSQL · Redis

API and domain layers handle user records, documents, sessions and usage controls.

Background work

Scheduler · React Email · AI budget

Email rendering and scheduled infrastructure are separate from requests. Optional model usage has accounting and configurable controls; delivery is not demonstrated.

01

Extract useful page data before asking a model.

The extension gathers JobPosting data, rendered DOM and readable content. The backend merges staged extraction results. A per-tab guard prevents overlapping captures, and a short cache avoids repeating work on the same page.

THE TRADE-OFF

A varied web page can still produce missing fields or duplicated description text. The successful HTML path does not establish compatibility with every job board; pasted-text extraction has a separate model requirement.

02

Cache the content, not just the document name.

Role-aware analysis keys include document and job IDs plus hashes of resume text and job context. Changing the source material changes the cache identity, even when the underlying record is the same.

THE TRADE-OFF

Cached analysis expires after 30 days. The local fallback checks terms, structure and readability heuristics; a higher internal score is not evidence of better hiring outcomes.

03

Separate request limits from spending guarantees.

Provider accounting records user, model, token usage, estimated cost, latency and success. Redis-backed limits and a daily spend check provide operating controls around optional model features.

THE TRADE-OFF

The daily budget check fails open if Redis errors, while particular per-user AI limiters fail closed. These controls should not be described as a hard global spending guarantee under concurrent requests or infrastructure failure.

04

Keep account access close to the data boundary.

Current-user resolution loads the account before protected operations; document services check ownership. Session rotation and revocation live in the auth routes. Realtime connections use short-lived, one-use Redis tickets rather than long-lived credentials in the connection URL.

THE TRADE-OFF

The captured flows verify one fictional account’s records, not a security audit of every endpoint. The ticket and session lifecycle were source-reviewed; external realtime notification delivery was not demonstrated.

SCOPE

What this evidence establishes

  • The archived source was run locally with PostgreSQL, Redis and fictional account data. This page does not imply an active hosted service or real customer adoption.
  • The installed extension, saved opportunity and selected-role document analysis were exercised against the real backend. Paid model calls, external email and push delivery were disabled.
  • The original UI calls document review AI analysis. The recording explicitly labels the actual local rule-based fallback; no model response was fabricated.
  • The review found incomplete notification, filtering and document-shortcut behavior. Failed paths are documented in the source review and excluded from successful demonstrations.