Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions website/src/assets/text/volunteer-roles/Benefit Analyst.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Benefit Analyst (Program Rule Translation)
brief: You will be the expert in how benefit eligibility rules are written, documented, and applied.
---

**Your Role:**

You will be the expert in how benefit eligibility rules are written, documented, and applied. You will help create clear patterns and documentation so that the Benefit Toolbox can handle the vast diversity of rules across programs.

**Key Responsibilities:**

- Analyze diverse public benefit programs (e.g., local tax relief, utility assistance, food access) to identify common patterns and unique complexities in their eligibility rules.
- Advise the Engineering team on how to design the framework to accurately and robustly model rules.
- Develop a standardized documentation template for writing benefit rules that can be easily entered into the DMN editor by non-analysts.

**Requirements:**

- Professional experience researching, interpreting, or applying rules for government benefit programs (e.g., former analyst, policy researcher, or eligibility specialist).
- Strong attention to detail and ability to parse dense legal/regulatory documents.
- Ability to communicate complex logic clearly and structurally.
- Ability to commit 3–5 hours per week.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Grant Writer / Funding Strategist
brief: You will help secure the long-term sustainability of this critical infrastructure project by identifying and applying for grants.
---

**Your Role:**

You will help secure the long-term sustainability of this critical infrastructure project by identifying and applying for grants. This funding can eventually support dedicated project management, outreach, and maintenance.

**Key Responsibilities:**

- Research grant opportunities focused on **civic technology infrastructure, non-profit capacity building, or economic empowerment**.
- Draft compelling **proposals, narratives, and budgets**, using the Philly Property Tax Relief Screener as a key proof-of-concept.
- Work with the Project Manager to track and report on project metrics and impact.
- Develop a strategy for demonstrating the value of reusable open-source tools to funders.

**Requirements:**

- Proven experience in **grant writing or technical writing**.
- Ability to craft persuasive and detailed written materials that articulate both the technological solution and the human impact.
- Ability to commit 3–5 hours per week (often project-based around grant deadlines).
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Project Manager / Coordinator
brief: You will ensure the project team stays focused on delivering value for our user partners and advancing the core framework.
---

**Your Role:**

You will ensure the project team stays focused on delivering value for our user (non-profit partners) and advancing the core framework. You will coordinate efforts across engineering, research, and analysis.

**Key Responsibilities:**

- Facilitate weekly team meetings, managing agendas, and documenting decisions.
- Own and manage the **GitHub Issues backlog**, translating high-level goals into actionable user stories for technical and non-technical volunteers.
- Help define and track **milestones** for the development of the reusable framework.
- Maintain project documentation and ensure new volunteers have a clear path to contribution.

**Requirements:**

- Experience in **Agile/Scrum methodologies** is strongly preferred.
- Excellent organizational, time management, and written communication skills.
- Familiarity with collaboration tools like **GitHub Issues, Slack, or Trello**.
- Ability to commit 3–5 hours per week.
22 changes: 22 additions & 0 deletions website/src/assets/text/volunteer-roles/Software Engineer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Software Engineer (Full-Stack or Backend Focus)
brief: You will build and refine the core engine of the Benefit Toolbox, creating reusable components for defining complex benefit rules.
---

**Your Role:**

You will be building and refining the core "engine" of the Benefit Toolbox: the reusable components that allow a user to define complex benefit rules (the "DMN" component) and generate a web-based screener.

**Key Responsibilities:**

- Write **clean, modular, and well-tested code** for the framework's architecture (we currently use Python and JavaScript/React, but the core logic is key).
- Focus on developing the **low-code/no-code interface** that non-profit users will use to define benefit eligibility rules.
- Help containerize and document the deployment process to make it easy for partners to launch their own screeners.
- Participate in code reviews and follow open-source best practices.

**Requirements:**

- Proficiency in **Python** (for backend logic) or strong skills in **JavaScript/React** (for the editor interface).
- Familiarity with **data modeling, APIs, and rule engines** (or a strong interest in learning about them).
- Experience with **Git/GitHub** and collaborative software development.
- Ability to commit 5+ hours per week.
22 changes: 22 additions & 0 deletions website/src/assets/text/volunteer-roles/UX Designer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: UX Designer (Focus on Admin/Builder Interface)
brief: You will design the intuitive interface that allows non-profit staff to define complex logic and deploy screening tools without writing code.
---

**Your Role:**

Your primary user is the non-profit _staff member_ who needs to build a screener. You will design the intuitive interface that allows them to define complex logic, manage questions, and deploy their tool _without_ writing code.

**Key Responsibilities:**

- Design the **administrative interface** for defining benefit rules (the "DMN" editor) and managing benefit data.
- Create **wireframes and user flows** that minimize friction and cognitive load for the non-technical non-profit user.
- Collaborate closely with Engineers to ensure the admin interface is feasible and meets usability goals.
- Maintain the design system for both the builder tool and the resulting client-facing screeners.

**Requirements:**

- Experience using design tools like **Figma or Sketch**.
- A portfolio showing examples of designing **complex data entry tools, admin panels, or "builder" interfaces** (not just marketing sites).
- Strong understanding of accessibility and information architecture.
- Ability to commit 3–5 hours per week.
22 changes: 22 additions & 0 deletions website/src/assets/text/volunteer-roles/UX Researcher.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: UX Researcher (Focus on Non-Profit Needs)
brief: You will focus on understanding the non-technical needs, workflows, and pain points of non-profit staff and their clients.
---

**Your Role:**

You will focus on understanding the non-technical needs, workflows, and pain points of non-profit staff who currently screen clients for eligibility or want to build a tool like this.

**Key Responsibilities:**

- Plan and conduct research (interviews, surveys) with **non-profit managers, benefits navigators, and program staff** to understand their current methods.
- Validate the usability of the **Benefit Toolbox admin interface** with non-technical users.
- Synthesize research findings into clear, actionable recommendations for the UX and Engineering teams.
- Help define user personas for the non-profit _builder_ and the end _client_.

**Requirements:**

- Experience planning and executing **UX research** activities.
- Strong interviewing, synthesis, and presentation skills.
- Experience working with or interviewing non-profit organizations is a significant asset.
- Ability to commit 3–5 hours per week.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Volunteer Recruitment and Management
brief: You will grow and nurture our volunteer community, ensuring we have the right mix of technical and non-technical talent.
---

**Your Role:**

You will grow and nurture our volunteer community, ensuring we have the right mix of technical and non-technical talent to meet our roadmap goals.

**Key Responsibilities:**

- Develop targeted outreach for the highly specific roles needed (e.g., Benefit Analysts, specific Engineer roles).
- Manage the **onboarding process**, ensuring new contributors feel welcome, have clear first tasks, and access to necessary documentation.
- Monitor volunteer engagement and proactively address communication gaps or burnout.
- Maintain a positive, inclusive, and goal-oriented project culture.

**Requirements:**

- Excellent interpersonal and written communication skills.
- Experience in **recruiting, community management, or volunteer coordination**.
- A passion for civic tech and team building.
- Ability to commit 3–5 hours per week.
61 changes: 61 additions & 0 deletions website/src/components/VolunteerRoles.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
import { getCollection } from "astro:content";
import { render } from "astro:content";
const roles = await getCollection("roles");
---

<section id="volunteer-roles" class="bg-bdt-blue/50">
<div class="flex flex-col gap-6 py-12 px-6 max-w-[130ch] mx-auto">
<h2>Volunteer Roles</h2>
<ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{
roles.map(async (role) => {
const { Content } = await render(role);
return (
<li class=" bg-white/50 rounded-2xl p-6 min-w-30 h-fit role-card">
<h3>{role.data.title}</h3>
<p>{role.data.brief}</p>
<details name="roles">
<summary class="[&::marker]:content-[''] mx-auto px-6 py-2 pt-3.5 mt-6 bg-white w-fit rounded-full border-bdt-blue border-2 cursor-pointer select-none text-sky-700 font-serif text-xl font-bold">
<span class="show-more">Show more</span>
<span class="show-less hidden">Show less</span>
</summary>
<div class="prose py-6 prose-li:text-black prose-li:marker:text-black">
<Content />
</div>
</details>
</li>
);
})
}
</ul>
</div>
</section>

<style>
details[open] .show-more {
display: none;
}

details[open] .show-less {
display: inline;
}

.role-card:has(details[open]) {
grid-column: 1 / -1;
}
</style>

<script>
document
.querySelectorAll<HTMLDetailsElement>(".role-card details")
.forEach((details) => {
details.addEventListener("toggle", () => {
if (details.open) {
details.closest(".role-card")?.scrollIntoView({
block: "start",
});
}
});
});
</script>
13 changes: 12 additions & 1 deletion website/src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,15 @@ const team = defineCollection({
}),
});

export const collections = { projects, team };
const roles = defineCollection({
loader: glob({
pattern: "**/*.md",
base: "./src/assets/text/volunteer-roles",
}),
schema: z.object({
title: z.string(),
brief: z.string(),
}),
});

export const collections = { projects, team, roles };
2 changes: 2 additions & 0 deletions website/src/pages/about.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
import Layout from "../layouts/Layout.astro";
import Team from "../components/Team.astro";
import Volunteer from "../components/Volunteer.astro";
import VolunteerRoles from "../components/VolunteerRoles.astro";
---

<Layout>
<Team />
<Volunteer />
<VolunteerRoles />
</Layout>
6 changes: 3 additions & 3 deletions website/svelte.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { vitePreprocess } from '@astrojs/svelte';
import { vitePreprocess } from "@astrojs/svelte";

export default {
preprocess: vitePreprocess(),
}
preprocess: vitePreprocess(),
};