[Feature Request]: Add Application Status Kanban Board — Replace Flat Status Filter with Visual Pipeline View
@anshul23102 is already working on this.
Since Jul 31, 2026.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- css, fastapi, html, javascript, python
- Domain
- backend, frontend, full-stack
Research direction
Start with gateway/dashboard.html, aggregator-service/main.py, and gateway/proxy.py; check the existing dashboard data flow and job update routes first. The request describes a Kanban view with drag updates, a view toggle, and responsive layout. Done means those pieces work with the existing job statuses and PATCH requests update the displayed jobs.
Written by the indexing model from the issue text.
Description
Summary
Arachnode tracks three job statuses: new, applied, and ignored. The current dashboard displays these as a filtered table view accessible via status query parameters. For a tool designed to manage active job hunt pipelines, a flat table with status filters is significantly less usable than a visual Kanban board where jobs can be dragged between columns. The current index.html dashboard uses vanilla JS and Chart.js — adding a lightweight drag-and-drop Kanban is achievable without a framework rewrite.
Problem
- The flat table view requires users to mentally track which jobs are in which stage — there is no visual pipeline representation.
- Moving a job from
newtoappliedcurrently requires an API call (PATCH /api/jobs/:id) with no visual affordance in the dashboard — the user must either use the CLI or know the API. - The dashboard shows aggregate counts at the top (total jobs, applied jobs, discovered contacts, drafted emails) but provides no per-job workflow management capability.
- For a student approaching placement season (the stated use case), managing 50-100 job applications in a flat table is cognitively expensive.
Impact
- The primary daily-driver use case — checking pipeline status and updating job progress — is more cumbersome than it should be.
- Users revert to external tools (Notion, spreadsheets) for pipeline tracking, defeating Arachnode's dashboard purpose.
Proposed Solution
I would like to add a Kanban board view to gateway/dashboard.html using the lightweight SortableJS library:
HTML structure:
<div class="kanban-board">
<div class="kanban-column" id="col-new" data-status="new">
<h3>🆕 New <span class="count" id="count-new"></span></h3>
<div class="kanban-cards" id="cards-new"></div>
</div>
<div class="kanban-column" id="col-applied" data-status="applied">
<h3>✅ Applied <span class="count" id="count-applied"></span></h3>
<div class="kanban-cards" id="cards-applied"></div>
</div>
<div class="kanban-column" id="col-ignored" data-status="ignored">
<h3>❌ Ignored <span class="count" id="count-ignored"></span></h3>
<div class="kanban-cards" id="cards-ignored"></div>
</div>
</div>
JavaScript drag handler:
import Sortable from 'https://cdn.jsdelivr.net/npm/[email protected]/+esm';
['new', 'applied', 'ignored'].forEach(status => {
Sortable.create(document.getElementById(`cards-${status}`), {
group: 'jobs',
animation: 150,
onEnd: async (evt) => {
const jobId = evt.item.dataset.jobId;
const newStatus = evt.to.closest('.kanban-column').dataset.status;
await fetch(`/api/jobs/${jobId}/status`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ status: newStatus })
});
}
});
});
New backend route:
@app.patch("/api/jobs/{job_id}/status")
async def update_job_status(job_id: str, body: StatusUpdate):
await db.execute(
"UPDATE jobs SET status = $1 WHERE id = $2",
body.status, job_id
)
return {"status": "updated"}
Job card design:
<div class="job-card" data-job-id="{id}">
<span class="company">{company}</span>
<span class="role">{role}</span>
<span class="source badge">{source}</span>
<div class="actions">
<button onclick="triggerApplyWorkflow('{id}')">⚡ Apply Workflow</button>
</div>
</div>
Deliverables
- Kanban board section added to
gateway/dashboard.html. PATCH /api/jobs/:id/statusroute inaggregator-service/main.py.gateway/proxy.pyproxy mapping for the status update endpoint.- Toggle button in dashboard to switch between "Table View" and "Kanban View".
- Responsive CSS for the Kanban layout (3-column on desktop, stacked on mobile).
Labels: enhancement, feature, frontend, UX, GSSoC 2026
Could you assign this issue to me?
- Dominant language
- Python
- Stars
- 24
- Forks
- 46
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sharmavaibhav31/arachnode
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
sharmavaibhav31/arachnode#153 ·
-
Add Historical Job Funnel Analytics to the DashboardMay be free again @anushkap0 claimed this 22 days ago, and no pull request is open. Open
Difficulty 4/5 3-5 days Newbie friendliness 45/100
sharmavaibhav31/arachnode#181 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 56/100
sharmavaibhav31/arachnode#178 · 1 comment ·
-
[Feature Request]: Add Browser-Based Onboarding Wizard to Replace Manual .env ConfigurationMay be free again @anshul23102 claimed this 105 days ago, and no pull request is open. Open
Difficulty 5/5 Over a week Newbie friendliness 25/100
sharmavaibhav31/arachnode#177 · 2 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
sharmavaibhav31/arachnode#176 · 2 comments ·
All issues in sharmavaibhav31/arachnode
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dbt-labs/spark-utils#51 ·
-
bug pydanty:is-working
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
pydantic/pydantic-ai#13444 ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
good first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
changelog investigate
Difficulty 1/5 Under an hour Newbie friendliness 68/100
ramnes/notion-sdk-py#502 ·