Tuesday, October 20, 2026

New Tuesday - new project

The resume-builder software is doing great.  I can expand on it, but it allowed me to cover off a few new skills as well as keeping old ones current:

Skills

  1.  LaTeX templates with Jinja2 - allows for flexible and custom output in a very clean, academic appearing format.
  2. Conversion of resume from .doc to .yml - now the resume is data.  It can be easily read in, manipulated, and modified at production time.
  3.  Introducing more ollama!  
  4.  Fierce testing with pytest and more fixture fun!

It's NEW!

I have toyed with this project for some time: a good idea/bad idea system to bounce ideas off another being to contemplate ideas that cross my plate.

The idea is to accept input from a user in the form of text such as: "I really enjoy sunsets but my neighbour's house is in the way - I want to burn it down."

Immediately, we would all agree that it's a bad idea.  What I want to see is the reaction and comments from multiple sources and then amalgamate those into a single response.

Currently, the basics are there - the ollama stuff, the spinning up of new prompt instances using the Jungian Archetypes as those to bounce ideas off of.

  • Magician
  • Sage
  • Sovereign
  • Hero
  • Rebel
  • Everyman
  • Creator
  • Explorer
  • Caregiver
  • Lover
  • Jester
  • Innocent

  Sample input:  

 
 
sample_idea = (
        """I really love sunsets.  My neighbour's house is in the way. I wish to
        burn down their house so I can enjoy the sunsets more."""
    )

 Sample output:

 

So of course, the next step is to:

WRITE ALL THE TESTS THAT WE DON'T HAVE NOW!!!

 

Thursday, October 15, 2026

Coverage, and more changes.

I omitted the tests folder from considered in the test coverage.  It drops down to 71%.  I might spend the next 30 minutes to bring that up a bit but I don't want to expend too much more effort.  I have enough functionality being covered off for adding more.

Bringing app2.py might be wise.

With some mocking, (thanks unittest.mock's patch), The coverage is up to 82% as shown below.  I learned a lot with being able to call directly into my Flask application.  This is a good reason to celebrate!


 

Wednesday, October 14, 2026

Refactoring is good.

The code is cleaner - a flat file with some really haphazardly written code is now in smaller, manageable methods, and existing test cases are passing.  Next, it's going to be all about showing the resume in the browser, and having an accept/reject button for it.

The alert box wasn't coming up - fixed that with a simple change out.

 

Tuesday, October 13, 2026

Post Thanksgiving Blues

And so the day starts again, clean slate w.r.t. git, test cases, and now time to mess with things to bring a simple stand alone Flask application into doing more things.

  

Renderer

Renderer needs to be put in a class so not only can it be easily tested, but also more manageable for the future.

It is comprised of some standalone functions to deal with cleaning ampersands from the text, and a huge monolithic function called: build_resume.

It really should be renamed as render_resume. 

Moved it into a class now and writing up additional test cases for going forward as I develop it.

Coverage

 

Enhanced coverage so I'm reasonably happy with the progress - the test did manage to push things further along with a flaw in the design.

 

 

 

Friday, October 9, 2026

Success!

All tests are passing, code is cleaned up!

 

The basic functionality does seem to be working despite some bodged together code.  The verbosity does seem to be working properly and the output is in the jobs/<company-name> folder.

The modified .yml file is not being populated but left as a stub for now. 

Thursday, October 8, 2026

More Test Cases for Ba'al!

The refactoring is slow right now - seriously I need more test cases in place before I do the next stage.

This way, if I make a mistake, I'll know it first hand.

I just found one bug that needs to be fixed for making the code testable.  Yay.

Almost through the flow

Just have to explore the cases of accepting/denying and checking if that logic works or not for pass/fail cases.

Then.  And only then, can the next round of functional improvements can begin.

It's all good.

 

Yikes!  Failures!  But to be honest, this is a good thing.  When testing, failures means that something needs to be fixed.

Instead of just letting a system die, it's time to fix things.  Otherwise, it's just giving up or what we used to call: Windows 3.0.

Yes, there is a reference to Tidy Bowl.  Product Function: It uses blue or lavender liquids and tablets placed inside the toilet tank to fight hard water stains, mineral buildup, and ring formation between regular scrubbings.  It was also marketed as Ty-D-Bol (sounds like the topic for a podcast).

I use it as my example of a job that I would not be good at:

Company: TidyBowl (avoids messy trademarking stuff)

Role: Taste Tester

Job Description: Must have excellent taste testing skills.   A sommelier for boxed wine.

This job, like boxed wines does not pair well with my skills, typically earning a 0 score, and None for a created cover letter.  A zero score should also invalidate the button to produce output.  The only option is to return to the system.

The 3 errors were introduced with some changes to the selenium (automated UI) tests.  The fourth is a dangling error from earlier that is proving to be annoying to fix at this time.

Much better

 

The fix was simple: a breakpoint() call while I was debugging the verbosity field coming back in the request.form.  Done and dusted - back to coding the flow tests and the actual flow code.


Wednesday, October 7, 2026

Pieces are coming together

The pieces are coming together.  Yay!

Refactor day

Okay - first before refactoring happens, more test cases need to be written.  The existing behaviour of the system should not change.  It should just run like usual.  Old tests should pass, new ones will most likely fail, and if old ones fail, I need to jump on that right away.

Minor crisis

gitea didn't survive the crash of my system and I had to register a new user.  This also means that my jenkins install is probably borked too.  For now, focus on the resume-builder and then later, recovery of jenkins.

Oh, and the suggestions from gemini was awful.  Sigh.  So I had to reinstall as the new user and then do the old git remote set-url origin http://localhost:3001... again and then git push -u origin main.

It sucks but we dust ourselves off and try to triage what went wrong and how to prevent this from happening again after doing up the meat and potatoes.

  

 Progress

gitea is up and running - checked in changes.  Good.

Refactored the  processing and analysis code into a class and a separate file for all that is good and happy in the universe.

Test cases are working - creating a bit more infrastructure around the test cases with some canned data for scenarios.  All job descriptions, etc... are but into a testing_data.yml file for reading in and then operating.

For example, one job description that does not match my skills is for a TasteTester at TidyBowl.  I should score a 0 with the analyzer on that one for sure.  I should also not have a cover letter produced by the LLM, and no skills gap.  There's no point in extra work when there isn't one needed. 

Now I can test the ResumeBuilder class in isolation.  Once this is under control, then some more test cases need to be written up to spark up the Flask application and then use selenium to test out the UI.  I like the UI as it is right now.  Might as well have concrete tests for it as I forge forward with the remainder of the functionality.


 

 

 

 

New Tuesday - new project

The resume-builder software is doing great.  I can expand on it, but it allowed me to cover off a few new skills as well as keeping old ones...