OPTIONAL DEEPER READING
Workflow, prioritization, and automation lessons.
Open a topic to explore the decisions, examples, and implementation evidence.
Next steps: ranked jobs and an application task board
PRODUCT DECISION / OCTOBER 15, 2026
Keep what works. Make the next action explicit.
ChatGPT-assisted discovery and human evidence review are useful, and entering openings through SQL is manageable. I am retaining PostgreSQL for persistent job history and duplicate detection, including the existing job_analysis records. This iteration does not migrate or remove either table.
The next bottleneck is the handoff from a ranked opportunity to application work. The proposed change focuses on actionable priorities rather than rebuilding discovery as an autonomous agent.
| Existing workflow | Proposed increment |
|---|---|
| ChatGPT-assisted search, posting checks, SQL records, AI assessment, and human review. | Retain discovery and records. Pass the current priority shortlist plus new openings to a versioned ranking function. |
| AI priorities and stored review ranks help organize analysis. | Use deterministic JavaScript or Python rules for numeric ranking, with rule contributions, source facts, and unknowns visible. |
| Reviewed opportunities still need a handoff into application tasks. | Create or update selected open opportunities in a Notion action board with posting links, next steps, and application materials. |
Rules before automation
- Separate hard eligibility checks from weighted preferences. Full-time work, the USD70,000 gross-base floor, geography/commute, weekday schedule, and role scope inform screening; unknown facts remain unknown and require clarification.
- Check availability before ranking active openings. Reassess the current shortlist alongside new candidates rather than ranking new finds in isolation.
- Make scores reproducible and explainable. Exact weights and treatment of incomplete evidence still need calibration against prior human decisions.
- Use stable posting identity or Job ID for Notion updates. Preserve user-owned decisions, notes, application records, and material links; repeated runs must not duplicate tasks or reset statuses.
- Keep up to three priorities and two optional backups as an attention limit. Fewer eligible opportunities is acceptable; reserves do not automatically become new work.
- Human actions remain explicit: review, tailor, apply, and follow up. No automatic application submission or outreach.
Smallest next test
Run one fixed batch through a standalone ranking function, compare its ordering and explanations with existing human judgments, and manually review the Notion handoff. Test repeat runs and preserved decisions before adding programmatic sync. n8n transport or notifications can follow only if useful.
Status: This is the next design direction. The ranking function, opportunity-board sync, and n8n handoff are not implemented or verified by this portfolio update. Existing SQL analysis remains useful and intact; any future retirement would require a separate backup and dependency review.
Success still needs evidence: useful priorities, clear next actions, fewer repeated handoffs, and measured application effort. No time saving or hiring result is claimed. The earlier model, queue specification, and local-agent findings below document how this direction evolved.
How job information and assessments are organized
Tracking applications wasn’t the whole problem.
Searching across adjacent career paths meant comparing roles with inconsistent titles, buried qualifications, and different expectations. I needed to understand which opportunities were aligned with my experience and which were realistic transition targets.
A record of applications captures what happened. I also needed to preserve the evidence and reasoning behind what to do next.
Which opportunities deserve my limited application time—and how should I position my experience?
Design around the decisions.
- Capture useful evidence.
Preserve responsibilities, required qualifications, preferred skills, salary, and location when available. - Make reasoning reviewable.
Separate posting information from fit assessments, gaps, and review notes. - Support a deliberate handoff.
Move from opportunity review to application strategy, then to résumé tailoring. - Keep human choice central.
Use AI recommendations to inform review rather than treating them as final decisions.
03 / SOLUTION DESIGN
Analyze first. Review a bounded queue.
Posting evidence feeds AI assessment before the consequential human decision. Availability and career fit remain separate signals.
- 01Discovery & evidence
Capture responsibilities, qualifications and source links.
- 02Store & check availability
Store records; exclude closed or likely removed listings.
- 03AI fit analysis
Assess alignment, gaps and uncertainty.
- 04Ranked review queue
Surface up to three; retain inspectable reserves.
- 05 / HUMAN DECISIONHuman decision
Review evidence, question recommendations, and record a decision.
- 06Application preparation
Develop positioning and tailor materials with further review.
Personally operated: AI produces SQL, I execute it in DBeaver, and exported records feed the next prompt. Queue SQL is prepared; working-database verification is pending. This site does not connect to the job database.
Separate the opportunity from the opinion.
Posting information and analysis change for different reasons. Keeping them in separate tables allows an opportunity to be reassessed without conflating the source record with its interpretation.
jobs
Title · Company · Location
Salary · Posting evidence
Application link · Application status
Listing availability · Checked date
job_analysis
job_id · Human fit stage
AI fit stage · AI priority
Decline reason · Review notes
Analysis basis · Analyzed at
Review batch · AI review rank
job_id relates the tables; job_review_queue derives labels from availability, AI fit, rank, and human decisions. Batch/rank fields are part of the prepared migration.
05 / DESIGN DECISIONS
The thinking behind the system.
Select a perspective to explore the same project through different hiring lenses.
BUSINESS ANALYSIS
Better inputs make the assessment more useful.
The discovery prompt was revised to capture responsibilities and qualifications rather than relying on introductory snippets or company marketing. The requirement was driven by a downstream need: fit analysis must have relevant posting evidence.
Evidence → requirements → a more reviewable recommendation.
Why fit review comes before résumé tailoring
Fit review answers whether an opportunity is worth pursuing. Application strategy determines positioning and extracts keywords from the full description. Résumé tailoring then uses that strategy and an existing résumé as inputs. Each component has a narrower job and a clearer handoff.
Recognizing transferable experience and career fit
Stages including “Not a Fit” and “Transition Target” give the workflow vocabulary beyond a simple match score. They help distinguish misalignment from an opportunity that could support a career transition.
Separating closed listings from poor-fit roles
A closed opening is not evidence that the candidate is a poor fit. Availability lives with the job record. Unavailable jobs skip new analysis and the active queue; historical assessments remain.
Prioritizing jobs: review limits, examples, and testing
AI assessment.
Human judgment.
A recorded decision.
Explore the project source I used the workflow to evaluate 17 opportunities, storing structured fit assessments and adding my own classifications and review notes. AI recommendations inform the review; the decision to pursue an opportunity remains mine. Some opportunities are still awaiting human review.
This is a personally operated, single-user prototype. Separate AI prompts and database records support the workflow; I review the analysis and record my judgment.
WORKED EXAMPLE / AI ENABLEMENT OPPORTUNITY
Assess the gap alongside the transferable experience.
- AI assessment
High-priority “Transition Target,” based on responsibilities spanning workflow analysis, internal tools, automation, training, and adoption.
- Human review
I identified a possible seniority gap while recognizing strong overlap with my previous tools-engineering experience.
- Recorded judgment
Retained “Transition Target” and noted that the opportunity was worth applying for.
The review checkpoint preserves nuance: a possible experience gap can warrant further consideration when the underlying responsibilities align with demonstrated capabilities.
An anonymized example from an actual tracker record. This shows a review decision, not a completed application or hiring outcome.
Observed iteration: strengthen the posting evidence.
I revised discovery to preserve responsibilities and required and preferred qualifications, then reran the fit analysis using the enriched posting excerpts. The stored analysis basis records the changed evidence and identifies the profile and prompt versions used.
Reassessment replaced the previous AI analysis. The current export documents the revision and rerun; a retained before-and-after comparison is still needed to evaluate whether the recommendations improved.
Next product decision: clarify what each field means.
Reviewing the prototype revealed two opportunities to reduce ambiguity in the data model:
- Separate review status from fit classification. “Pending review” describes completion; “Transition Target” describes alignment.
- Separate concerns from final declines. A qualification or work-style concern can inform a review without meaning the opportunity has been rejected.
Evidence: October 12, 2026 export containing 17 opportunity analyses. Proposed field refinements are next iterations, not implemented features.
07 / PRODUCT ITERATION
More opportunities created more work.
After a six-job discovery run, I found that reviewing every listing and updating the table was too much work. I defined a queue that surfaces three eligible candidates while preserving the rest for later.
A clear stopping point.
Three now. Inspectable reserves.
SQL prepared; database verification pending.
Rules before interface.
- Ranks 1–3 are Review now; later ranks are Reserve.
- Closed or likely removed listings are Unavailable, independently of fit.
- AI screening and human decisions remain separate.
- No automatic promotion; fewer than three is allowed.
- Equal candidates receive a job-ID tie-break; new batches keep separate queues.
The tradeoff.
I retained reserves so recommendations can be inspected and overridden. I deferred automatic replenishment because it would turn a bounded session into a moving target.
The joined view derives labels. Human decisions stay in the original tables and survive AI reassessment.
The cap applies to a selected batch, not all historical batches combined. The current search presents three review priorities plus up to two optional backups; the original six-item example below illustrates the underlying reserve rules.
INTERACTIVE EXAMPLE / SYNTHETIC DATA
A decision changes the label, not the backlog.
Change availability or mark a candidate reviewed. Reserves stay in place. These controls illustrate the rules and do not update the database.
| Candidate | Rank | Availability | Human review | Queue |
|---|
Nine reference checks passed for queue labels, uniqueness, missing evidence, human decisions, and batch separation. PostgreSQL fixtures, working-database verification, and user evaluation remain pending. This example is illustrative, not live output.
Show the work. Measure the effect.
Implemented and used
Structured opportunity assessments, AI priority and fit classifications, and recorded human review notes support an active job-search workflow. The worked example above demonstrates how I review an assessment before deciding whether to pursue a role.
What I’ll evaluate next
- Actual review minutes and whether the three-item stopping point feels manageable.
- Useful top-three candidates and promising opportunities in reserves.
- Where AI recommendations and human judgment differ, and why.
- Promising roles incorrectly classified as poor fits.
- Whether the strategy output is usable in résumé tailoring.
Six records becoming three default review items describes presentation scope. It does not establish a 50% reduction in time. Review-time savings, ranking quality, and hiring impact remain to be measured.
Automation experiment: findings and a smaller scope
Connect the tools.
Keep the decisions clear.
I built and tested a local n8n workflow to reproduce my ChatGPT-assisted search process. The experiment exposed quality gaps and implementation overhead, leading me to narrow automation toward clerical handoffs. Source evidence, AI assessments, and human decisions remain separate.
CURRENT PROJECT TOOLKIT
Data, configuration & evidence
- PostgreSQL & SQL
- Relational opportunity records, separate assessments, joined review queries, and prepared queue logic.
- DBeaver
- Database inspection, query execution, and exports for the current workflow.
- GitHub & Git
- Versioned prompts, search configuration, feature requirements, SQL, and verification examples.
- YAML & Markdown
- Explicit search preferences, reusable AI instructions, and readable decision records.
- AI-assisted analysis
- Posting interpretation and evidence-grounded fit reasoning, followed by human judgment.
LOCAL AUTOMATION EXPERIMENT
n8n, Docker & JavaScript
- n8n
- Built a search and preliminary-analysis workflow; the broader database and review integration remains incomplete.
- Docker
- Ran the experiment locally in a container-based environment.
- JavaScript
- Implemented workflow logic and data handling for the local automation experiment.
- Ollama & Qwen
- Tested local model inference for posting interpretation and preliminary fit analysis.
- Search APIs & structured JSON
- Used web-search results and structured model responses; validation surfaced unsupported claims and contradictions.
- Run & assessment history
- Planned: retain configuration versions, evidence timestamps, errors, and reassessments so ranking changes can be explained.
Revised scope: support the application process.
Prioritize collecting posting text, recording links and deadlines, tracking status, and organizing documents. Keep selection, fit assessment, and résumé tailoring in the ChatGPT-assisted process until an automated alternative demonstrates useful quality and time savings.
The local experiment is not an end-to-end autonomous service. Database integration, versioned assessments, and measured time savings remain unverified or planned. Human decisions and the bounded review queue remain core requirements.
When automation
became extra work.
Local prototype evaluation · October 2026
The goal was to spend less time processing opportunities and more time applying. I explored whether a local agent could reproduce the job-search workflow I had been using in ChatGPT. Testing showed that the implementation was not yet meeting that goal.
What I tried
I combined n8n, JavaScript, Docker, and Ollama/Qwen models on my machine to search for openings, interpret posting evidence, and assess preliminary fit against my YAML profile. In a separate experiment, I used ChatGPT to discover ATS keywords and tailor a résumé without first supplying Jobscan’s keyword list.
What the evidence showed
EXAMPLE 01 / LOCAL FIT ASSESSMENT
A Product Manager result was marked as a preliminary pass, but its summary said compensation was acceptable while its salary check said unknown. It also treated general engineering and coordination experience as evidence for independent SQL proficiency and product seniority. The validator rejected the assessment.
The workflow then blocked full-posting retrieval because the preliminary assessment was invalid. This exposed a sequencing problem: it required a supported fit decision before collecting the evidence needed to make one.
EXAMPLE 02 / ATS KEYWORD EXPERIMENT
The closest result I reached without providing Jobscan’s keyword list was a 63% Jobscan score. That test did not reproduce the tool’s grading result; it did not establish that my résumé was only a 63% fit or predict an employer’s decision.
Self-reported experiment result. No controlled comparison or hiring outcome is claimed.
The product decision
In the outputs I tested, the local workflow did not reproduce the match quality of my ChatGPT-assisted process. Continuing to engineer the search also competed with the time available to submit applications. I revised the scope around the actual user outcome: qualified applications completed, with useful evidence and accurate positioning.
- Retain the working process. Use ChatGPT and human review for job selection, fit assessment, and résumé tailoring.
- Automate clerical work first. Collect descriptions, record links and deadlines, track application status, and organize documents.
- Defer score replication. Use relevant posting terminology where supported by actual experience; stop optimizing the workflow around reproducing Jobscan’s score.
- Cap experimentation. Prioritize application work. The current employment plan caps skill refresh at 90 minutes weekly; do not let tracker engineering become a prerequisite to applying.
Will this change save time on my next five applications?
If the benefit is uncertain, the feature goes into the backlog. The next evaluation will track qualified applications completed, responses received, actual time spent, and whether the automation reduces repetitive work.
These findings describe this implementation and the outputs tested, not a general benchmark of local models. The scope revision is documented; its effect on application volume, review time, and hiring outcomes remains to be measured.