Bioinformatics Job Market Analysis
A reproducible study of software-engineering and AI skills in bioinformatics hiring.
This long-running research-software project is building an evidence-backed, reproducible monthly analysis of U.S. bioinformatics and computational-biology job postings.
Rocky works on one bounded milestone per day, scheduled at midnight Eastern Time. This page is the project’s living report: every nightly run appends a dated entry describing the work, evidence, tests, blockers, and next milestone.
The roadmap covers source adapters, evidence capture, eligibility and deduplication, taxonomy coding, statistical analysis, AI capability horizon scanning, accessibility, reproducibility, and publication gates.
Current status
The project follows specification BSE-JMA-001 version 1.1.1. A dated, owner-authorized one-shot run completed the dependency-ready work through M37; the normal daily pacing rule is restored. M38 is blocked because the live pool cannot yet satisfy the required sample and diversity controls.
Canonical market findings require human verification. Until that review occurs, analytical outputs will remain clearly labeled drafts rather than being presented as validated results.
View the repository · Follow the roadmap · Read the progress log
Living progress report
August 8, 2026 — Project setup
Outcome: The project is initialized and scheduled. No implementation milestone was consumed during setup.
- Created a dedicated public repository with a Git-backed roadmap, state file, progress log, and append-only decision log.
- Divided the approved specification into 42 bounded daily milestones.
- Scheduled one unattended run for midnight Eastern Time each day.
- Established the human-review boundary: unreviewed analytical results remain drafts and cannot enter the canonical time series.
Validation: The repository was created and pushed successfully. The portfolio change passed formatting, CodeQL, and the GitHub Actions deployment build.
Next: M01 — import, checksum, and document specification 1.1.1.
August 9, 2026 — M01 specification baseline
Outcome: M01 was completed without starting any later milestone. The owner-approved BSE-JMA-001 version 1.1.1 baseline is now preserved in the project repository and pinned by SHA-256.
- Imported the complete 894-line specification byte-for-byte.
- Recorded checksum
7721e84c22c3ef07dbcb9a926bef6074f74847f9c257f184fe8f87cda78a9ed0with provenance and change-governance notes. - Advanced project state to M02 while preserving the human-only review and publication gates.
Evidence: Project PR #1 was merged to main. The repository now contains the approved baseline, checksum, and dated progress record. This public entry is published through portfolio PR #4.
Validation: The checksum passed sha256sum --check; byte comparison matched the owner-approved source; the state JSON parsed; specification identity, version, and line count assertions passed; and non-normative files passed Git whitespace validation. The portfolio update was formatted locally and is validated by the linked report PR’s GitHub Actions checks. A local Docker preview was unavailable because Docker is not installed on the automation host.
Blockers or limitations: None for M01. Baseline project CI does not exist yet; creating it is intentionally reserved for M02. No market findings were produced or presented as human-approved.
Next: M02 — scaffold the Python package, pinned tooling, and baseline CI.
August 10, 2026 — M02 Python package and CI baseline
Outcome: M02 was completed without starting M03. The repository now has an installable Python package, a fully locked development environment, and a baseline continuous-integration gate.
- Added the
market_analysissource package and an installation smoke test. - Pinned Python 3.13.11, uv 0.9.27, direct development tools, transitive dependencies, and GitHub Actions revisions.
- Added CI checks for linting, formatting, strict type checking, unit tests, and source and wheel builds.
- Documented reproducible setup and safeguards for restricted job-source data.
Evidence: Project PR #2 passed its required quality check and was merged to main. The resulting package configuration, CI workflow, and dated progress record are public and reviewable.
Validation: A locked environment sync passed along with Ruff lint and format checks, strict mypy checking, pytest (1 test passed), source and wheel builds, JSON parsing, the specification checksum and byte comparison, and Git whitespace validation. The project PR’s GitHub Actions quality job also passed.
Blockers or limitations: None for M02. This was infrastructure-only work: no postings were collected, no applicant or restricted source data entered Git, and no market findings or human approvals are claimed.
Next: M03 — define study configuration, controlled values, and run metadata.
August 11, 2026 — M03 study configuration and run metadata
Outcome: M03 was completed without starting M04. The study now has versioned, machine-readable defaults, exact non-taxonomy controlled values, and an explicitly pre-collection run-metadata example.
- Preserved specification 1.1.1 scope, sampling, review, analysis, quality, horizon-scan, and publication defaults in study configuration 1.0.0.
- Documented controlled identifiers in codebook 1.0.0 while leaving the skill taxonomy version unset for M05.
- Added typed YAML and JSON loaders plus configuration-focused tests.
- Kept collection timestamps null, all funnel counts at zero, and the human reviewer absent so the example cannot imply collection or approval.
Evidence: Project PR #3 passed its quality check and was merged to main. The reviewable artifacts are the study configuration, controlled-value codebook, run-metadata example, and dated progress record.
Validation: Locked dependency sync, Ruff lint and formatting, strict mypy, pytest (4 tests passed), source and wheel builds, JSON parsing, YAML loading, and Git whitespace checks passed locally. The PR quality job and the post-merge main CI run also passed. This portfolio entry passed Prettier and whitespace checks; the site build and deployment are validated by the portfolio repository’s GitHub Actions because Docker and Ruby are unavailable on the automation host.
Blockers or limitations: None for M03. No job collection was performed; candidate, included, reserve, evidence-validated, and human-reviewed counts are zero. Taxonomy work remains reserved for M05, and no human approval, canonical publication, or market finding is claimed. Local portfolio preview was limited by the unavailable Docker/Ruby toolchain.
Next: M04 — implement JSON Schemas and schema-validation tests.
August 12, 2026 — M04 JSON Schema contracts
Outcome: M04 was completed without starting M05. The project now has strict, machine-readable contracts for run metadata, screened jobs, atomic requirements, and verbatim evidence records.
- Added JSON Schema Draft 2020-12 contracts that require specification fields, reject undeclared properties, preserve explicit nulls, and enforce formats, hashes, identifier patterns, controlled values, and numeric ranges.
- Added a fail-closed, format-aware validation helper.
- Added schema self-validation, representative valid records, invalid-record rejection tests, and checks that schema enums cannot drift from codebook 1.0.0.
- Advanced the project state to M05 while leaving taxonomy identifiers unset and all collection and human-review counts at zero.
Evidence: Project PR #4 passed its required quality check and was merged to main. The reviewable artifacts include the schema contracts, validation helper, schema tests, and dated progress record.
Validation: Locked dependency sync, Ruff lint and formatting, strict mypy, pytest (32 tests passed), source and wheel builds, JSON parsing, and Git whitespace checks passed locally. The project PR quality job and the post-merge main CI run also passed.
Blockers or limitations: None for M04. Cross-record foreign-key checks and ordered comparisons remain later pipeline work; taxonomy identifiers remain nullable until M05 establishes taxonomy 1.0.0. No postings were collected, no restricted source text or applicant data entered Git, and no human approval, canonical publication, or market finding is claimed.
Next: M05 — establish taxonomy 1.0.0 and its governance changelog.
August 14, 2026 — M05 taxonomy 1.0.0
Outcome: M05 was completed without starting M06. The project now has a versioned, hierarchical taxonomy for coding explicit software-engineering, bioinformatics-context, AI, and durable AI-era competencies.
- Added 187 skill nodes across 13 top-level categories from approved specification 1.1.1 sections 8.1–8.13.
- Added stable identifiers, definitions, inclusion and exclusion rules, aliases, within-category parent links, tool and AI-related flags, and lifecycle metadata.
- Added append-only governance covering semantic versioning, human review, deprecation, migration, backcasting, and time-series breaks.
- Required taxonomy 1.0.0 in study configuration, run metadata, and atomic requirement contracts.
Evidence: Project PR #5 passed its required quality check and was merged to main. Reviewable artifacts include taxonomy 1.0.0, the taxonomy changelog, taxonomy tests, and the dated progress record.
Validation: Locked dependency sync, Ruff lint and formatting, strict mypy, pytest (39 tests passed), source and wheel builds, JSON parsing, and Git whitespace checks passed locally. The project PR quality job and the post-merge main CI run also passed.
Blockers or limitations: None for M05. The taxonomy implementation baseline is pending initial human review and remains ineligible for canonical market findings. No postings were collected; candidate, included, reserve, evidence-validated, and human-reviewed counts remain zero. No restricted job text, applicant data, secrets, or human-approval claim entered Git.
Next: M06 — add the versioned discovery-query catalogue.
August 14, 2026 — M06–M37 completion run and sample insufficiency
Outcome: The one-shot pacing override completed every dependency-ready milestone through M37. The run did not freeze a sample or generate market findings: 105 postings passed deterministic screening before human review, but the five-per-company cap leaves at most 80 of the required 150, before the 20-record reserve.
- Completed the acquisition, screening, evidence, deduplication, sampling, extraction, analysis, horizon-scan, publication-draft, safety-gate, pipeline, and synthetic integration foundations from M06 through M30.
- Validated the documented public Greenhouse, Lever, and Ashby read contracts, expanded the registry to 36 active employers across eight sectors, and recorded 918 hash-chained discovery events.
- Screened all 918 postings, retained hashes and audit excerpts no longer than 320 characters, found no exact duplicates, and queued eight near-duplicate pairs for later human adjudication. Raw descriptions were not committed.
- Took M37’s specification-defined insufficiency branch without weakening geography, eligibility, company caps, diversity, provenance, or human-review requirements. M38–M42 remain dependency-blocked.
Evidence: Project PR #6 passed its required quality check and was merged to main. The repository contains the insufficiency report, machine-readable screening report, and updated roadmap and state.
Validation: Ruff lint and format checks, strict mypy, 133 pytest tests, source and wheel builds, JSON validation, privacy, copyright, link, schema, provenance, and Git whitespace checks passed locally. The post-merge main CI run also passed.
Blockers or limitations: The cap-usable pool is 70 short of the required sample and 90 short of sample plus reserve. No manifest, canonical estimate, publication candidate, time-series update, or human-approval claim was produced. The dated pacing override is closed, and no recurring automation was created or re-enabled.
Next: Expand the publicly observed employer registry and run another one-shot collection within the allowed seven-day window. M38 can begin only after a compliant 150-record sample and 20-record reserve can be frozen.