Skip to content

frankstop/JobBoard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Company Career Radar

Refresh job data pages-build-deployment Live site Listings Sources

Direct-company job radar for software, data, and technology-adjacent roles.

Live page: https://frankstop.github.io/JobBoard/

This is the replacement shape for civil-service-watch: fewer broad public-sector pages, more company career boards, better fit ranking, and a public page that stays generic.

What It Does

  • Fetches enabled company career sources.
  • Normalizes public postings from ATS APIs.
  • Scores jobs using a private local profile.
  • Publishes docs/index.html as a generic searchable board.
  • Keeps personal targets out of the public dashboard and out of git.

Privacy Boundary

Tracked files are generic. Personal fit criteria belong in:

private/profile.local.json

That folder is ignored by git. Do not move personal salary, identity, resume, or exact target logic into docs/.

Supported Source Adapters

  • Greenhouse Job Board API: public JSON jobs from boards-api.greenhouse.io.
  • Lever Postings API: public JSON postings from api.lever.co.
  • Ashby public posting API: public JSON postings from api.ashbyhq.com.

Indeed is used as product inspiration only: search, filters, result density, direct apply links. This repo should not scrape Indeed.

Data Source Goal

See docs/data-source-goal.md.

Short version: prefer official company-owned feeds, measure quality before volume, and keep private candidate targeting outside the public site.

Expansion policy: 0.05 mutation target. Current accepted batch is locked as-is: fourteen aligned sources plus one mutation source.

Active Curation

GitHub Actions refreshes the public dashboard daily at 13:00 UTC and can also run manually from the Actions tab.

Current snapshot badges read from GitHub Pages badge JSON generated by the same refresh workflow as the public site.

Freshness path:

  1. Fetch configured employer feeds.
  2. Rank postings with CAREER_RADAR_PROFILE_JSON if the GitHub secret exists.
  3. Fall back to config/profile.example.json if no secret exists.
  4. Commit updated docs/index.html and docs/latest.json.
  5. GitHub Pages republishes from /docs.

The site is static. It is not a live database. Fresh data appears after the scheduled or manual workflow finishes.

Private Profile Secret

Add repo secret:

CAREER_RADAR_PROFILE_JSON

Value shape:

{
  "include_terms": ["software developer", "data analyst", "python", "sql"],
  "location_terms": ["new york", "remote", "hybrid"],
  "exclude_terms": ["intern", "unpaid"],
  "minimum_salary_usd": 100000
}

Never commit personal targeting criteria. Put exact fit logic in the GitHub secret or local private/profile.local.json.

Run Locally

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python -m career_radar.cli

Open:

docs/index.html

Add A Company

Edit config/sources.json.

Greenhouse example:

{
  "id": "company_greenhouse",
  "name": "Company Name",
  "adapter": "greenhouse",
  "url": "https://boards-api.greenhouse.io/v1/boards/company/jobs?content=true",
  "enabled": true
}

Lever example:

{
  "id": "company_lever",
  "name": "Company Name",
  "adapter": "lever",
  "url": "https://api.lever.co/v0/postings/company?mode=json",
  "enabled": true
}

Ashby example:

{
  "id": "company_ashby",
  "name": "Company Name",
  "adapter": "ashby",
  "url": "https://api.ashbyhq.com/posting-api/job-board/company",
  "enabled": true
}

OOSE Notes

See docs/engineering-plan.md.

Tests

python -m unittest discover -s tests -v

Sources Checked

  • Greenhouse Job Board API docs: https://developers.greenhouse.io/job-board
  • Lever Postings API docs: https://github.com/lever/postings-api
  • Ashby Job Postings API docs: https://developers.ashbyhq.com/docs/public-job-posting-api
  • Swipe reference: https://www.emilieaubry.com/work/

About

Company-first job board that refreshes daily from official career feeds and publishes a searchable GitHub Pages dashboard.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages