Skip to content

[Good First Issue]: align ci.yml config validation with current config["apis"] schemaΒ #133

@ambicuity

Description

@ambicuity

Welcome to New Grad Jobs! πŸŽ“

This template creates a Good First Issue β€” a small, guided task that helps new
contributors learn the codebase and contribution workflow.

Good First Issues are pre-approved by the maintainer. A contributor can claim it
immediately by commenting /assign.


πŸ†• Newcomer Friendly

This is a Good First Issue β€” a guided, well-scoped task designed for contributors
who are new to this repository.

What you'll do

  • βœ… Read a small part of the codebase
  • βœ… Make a focused, well-defined change
  • βœ… Write or extend a test
  • βœ… Submit and merge a pull request

Support

The maintainer actively monitors Good First Issues and will respond to questions
within 24–48 hours.

Important

This issue does not require prior scraping or API experience.

  • Basic Python and Git are sufficient
  • You must be assigned before starting β€” comment /assign to claim this issue
  • Read CONTRIBUTING.md
    before opening a PR

Note

⏱️ Typical time to complete: 30–90 minutes (once local setup is done)
🧩 Difficulty: Small, well-contained change
πŸŽ“ Best for: First-time contributors

🏁 When this issue is complete, you will have:

  • βœ… A merged PR in a real open-source project
  • βœ… Your name in the Contributors Hall of Fame
  • βœ… Confidence to take on larger issues next

Important

πŸ“‹ What makes a Good First Issue in this repo?

Often a good fit:

  • Adding a missing company to config.yml (Greenhouse, Lever endpoint)
  • Fixing a keyword in categorize_job() or get_company_tier()
  • Correcting a typo or broken link in documentation
  • Adding a test case for an existing, already-working function
  • Small CSS/HTML improvements to docs/

Not a good fit for GFI:

  • Changes to filter_jobs(), deduplicate_jobs(), or date parsing
  • New scraping source integrations (Workday, Google Careers)
  • Architectural changes to update_jobs.py

Those belong in Beginner, Intermediate, or Advanced issues.

πŸ‘Ύ Task Description

The Validate config.yml structure step in .github/workflows/ci.yml reads company counts from outdated key paths:

  • Current code reads config.get("greenhouse", {}) and config.get("lever", {})
  • Actual schema stores these under config["apis"]["greenhouse"] and config["apis"]["lever"]

Because of this mismatch, the workflow prints incorrect counts and does not validate the nested schema as intended.

Please update the inline validation script to match the current config structure.

Suggested scope:

  • Ensure required top-level keys include filtering, apis, and readme
  • Read company lists from config["apis"]["greenhouse"]["companies"] and config["apis"]["lever"]["companies"]
  • Keep behavior simple and non-breaking: fail only on true schema problems
  • Keep output logs clear for contributors debugging CI

Area touched:

  • .github/workflows/ci.yml

βœ… Acceptance Criteria

  • CI validation step reads Greenhouse/Lever company counts from config["apis"]
  • Required key checks include apis
  • Validation output reflects real company counts from current schema
  • Existing tests still pass (make test)
  • PR is linked to this issue with Fixes #<number>
  • PR title follows Conventional Commits format

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueGood for newcomers β€” welcoming entry pointhelp wantedExtra attention needed from the communityneeds-triageAwaiting maintainer review and categorizationtype: choreMaintenance or housekeeping task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions