{"id":51104537,"url":"https://github.com/minervarose/applysignal","last_synced_at":"2026-06-24T13:02:01.462Z","repository":{"id":363189849,"uuid":"1262270053","full_name":"MinervaRose/applysignal","owner":"MinervaRose","description":"Candidate-side recruitment intelligence dashboard for tracking job applications, scoring process signals, and prioritizing opportunities.","archived":false,"fork":false,"pushed_at":"2026-06-07T19:55:25.000Z","size":613,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-07T21:22:20.296Z","etag":null,"topics":["candidate-experience","career-tools","dashboard","data-visualization","decision-support","job-search","portfolio-project","python","recruitment","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MinervaRose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-07T19:37:49.000Z","updated_at":"2026-06-07T19:55:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MinervaRose/applysignal","commit_stats":null,"previous_names":["minervarose/applysignal"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/MinervaRose/applysignal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fapplysignal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fapplysignal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fapplysignal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fapplysignal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MinervaRose","download_url":"https://codeload.github.com/MinervaRose/applysignal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fapplysignal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34733256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["candidate-experience","career-tools","dashboard","data-visualization","decision-support","job-search","portfolio-project","python","recruitment","streamlit"],"created_at":"2026-06-24T13:02:01.289Z","updated_at":"2026-06-24T13:02:01.452Z","avatar_url":"https://github.com/MinervaRose.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ApplySignal\n\n![Python](https://img.shields.io/badge/Python-3.10%2B-blue)\n![Streamlit](https://img.shields.io/badge/Streamlit-dashboard-ff4b4b)\n![Status](https://img.shields.io/badge/status-portfolio%20MVP-success)\n![Version](https://img.shields.io/badge/version-v1.2-informational)\n![License](https://img.shields.io/badge/license-MIT-lightgrey)\n\n**Candidate-side recruitment intelligence dashboard for tracking job applications, scoring process signals, and prioritizing opportunities.**\n\nApplySignal helps job seekers turn scattered applications, mixed recruiter signals, and hidden candidate effort into a clear opportunity pipeline. It is intentionally framed as a **personal workflow and decision-support utility**.\n\n---\n\n## Preview\n\n![ApplySignal hero and pipeline overview](images/image-1.png)\n\n![ApplySignal opportunity cards](images/image-2.png)\n\n![ApplySignal pipeline table and charts](images/image-3.png)\n\n![ApplySignal recommendation explanations](images/image-4.png)\n\n---\n\n## What it does\n\nApplySignal lets candidates track each opportunity and score it across several practical dimensions:\n\n- **Signal strength** — is the opportunity visibly moving?\n- **Process clarity** — are next steps, contacts, salary, and timeline clear?\n- **Candidate effort cost** — how much work is the candidate being asked to provide?\n- **Reciprocity** — is the company giving enough information and attention in return?\n- **Opportunity score** — a combined score that helps prioritize where to invest energy.\n\nThe app then suggests neutral next actions such as:\n\n- **Invest**\n- **Monitor**\n- **Follow up once**\n- **Low-effort only**\n- **Deprioritize**\n- **Archive**\n\n---\n\n## Why this exists\n\nModern job searches can create asymmetrical experience. Candidates may be asked for tailored CVs, cover letters, forms, asynchronous videos, tests, and work samples before receiving clear information about salary, timeline, remote policy, or next steps.\n\nApplySignal turns that uncertainty into a calm decision-support process:\n\n\u003e **Invest proportionally to the clarity and reciprocity of the opportunity.**\n\nThe goal is to help candidates manage uncertainty, document signals, and protect their time during a complex recruitment pipeline.\n\n---\n\n## Features\n\n- Local job application tracking\n- Manual opportunity entry\n- Demo data loader for portfolio screenshots\n- Signal, clarity, effort, reciprocity, and opportunity scoring\n- Recommendation logic for next actions\n- Application cards with score badges\n- Pipeline table\n- Charts for:\n  - applications by status\n  - recommended actions\n  - opportunity score by company\n  - effort cost vs signal strength\n- Scoring guide and status guide\n- CSV export\n- Local CSV persistence\n\n---\n\n## Screenshots\n\n### Recruitment signal overview\n\n![ApplySignal dashboard overview](images/image-1.png)\n\n### Opportunity triage cards\n\n![ApplySignal opportunity cards](images/image-2.png)\n\n### Pipeline and visual analysis\n\n![ApplySignal charts](images/image-3.png)\n\n### Recommendation rationale\n\n![ApplySignal recommendation explanations](images/image-4.png)\n\n---\n\n## Installation\n\nClone the repository:\n\n```bash\ngit clone https://github.com/MinervaRose/applysignal.git\ncd applysignal\n```\n\nCreate a virtual environment and install dependencies.\n\n### Windows PowerShell\n\n```powershell\npython -m venv .venv\n.venv\\Scripts\\python.exe -m pip install -r requirements.txt\n.venv\\Scripts\\python.exe -m streamlit run app.py\n```\n\n### macOS / Linux\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\nstreamlit run app.py\n```\n\n---\n\n## Data storage\n\nApplySignal stores application data locally in:\n\n```text\ndata/applications.csv\n```\n\nThis keeps the MVP simple, transparent, and easy to export or reset.\n\nThe repository can include:\n\n```text\ndata/.gitkeep\n```\n\nso that the `data/` folder exists without committing personal application data.\n\n---\n\n## Product positioning\n\nApplySignal does **not** claim that a weak process signal means a company is bad.\n\nIt simply helps candidates manage uncertainty by asking practical questions:\n\n- Is there a concrete next step?\n- Has a human decision-maker engaged?\n- Is the salary or contract information clear?\n- Is the requested effort proportionate?\n- Is the company giving enough reciprocal signal to justify more candidate time?\n\nThis makes the project useful as a small example of:\n\n- human-centered product design\n- decision-support logic\n- candidate experience tooling\n- recruitment pipeline analysis\n- Streamlit dashboard development\n- practical data visualization\n\n---\n\n## New in v1.2\n\n- Polished dashboard layout\n- Better visual hierarchy and metric cards\n- Priority application cards\n- Cleaner status guide\n- Improved chart layout\n- Better small-data empty state\n\n---\n\n## Roadmap ideas\n\nPossible future improvements:\n\n- Job description parser\n- Email/import workflow\n- Follow-up reminders\n- Salary benchmark helper\n- LLM-generated opportunity summary\n- Privacy-first local desktop version\n- Streamlit Community Cloud deployment\n- Export to Markdown or Notion\n\n---\n\n## License\n\nThis project is released under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminervarose%2Fapplysignal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminervarose%2Fapplysignal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminervarose%2Fapplysignal/lists"}