Draft Idea

This commit is contained in:
Sam Poder 2021-12-01 10:40:54 +00:00 committed by GitHub
parent 5e248002be
commit 5d636363db
16 changed files with 2100 additions and 709 deletions

73
components/ content.js Normal file
View file

@ -0,0 +1,73 @@
import { BaseStyles } from 'theme-ui'
import theme from '@hackclub/theme'
import styled from '@emotion/styled'
export const Styled = styled(BaseStyles)`
font-size: 1.25rem;
a {
word-break: break-word;
}
.heading a {
color: inherit;
text-decoration: none;
}
@media print {
font-size: 1rem;
color: black;
pre,
code,
pre code span {
background-color: ${theme.colors.snow};
color: black;
font-size: 1rem !important;
}
a {
color: ${theme.colors.blue};
}
a::after {
content: ' (' attr(href) ') ';
}
}
.details-video summary {
list-style: none;
}
.details-video summary::-webkit-details-marker { // I hate safari
display: none !important;
}
.details-video-summary {
cursor: pointer;
display: flex;
gap: 6px;
align-items: center;
font-weight: bold;
padding: 5px 0;
}
.details-video-caret {
width: 0;
height: 0;
border-top: 6px solid transparent;
border-bottom: 6px solid transparent;
border-left: 8px solid currentColor; // Create a right-facing triangle
}
details[open] .details-video-caret {
transform: rotate(90deg);
}
.video-summary-camera-icon {
fill: currentColor;
flex: 0 0 auto;
}
.details-video video {
max-width: 100%;
}
`
const Content = ({ html }) => (
<Styled
as="article"
className="docs"
dangerouslySetInnerHTML={{ __html: html }}
/>
)
export default Content

View file

@ -12,6 +12,7 @@
"dependencies": {
"@emotion/react": "^11.7.0",
"@hackclub/icons": "^0.0.9",
"@hackclub/markdown": "^0.0.43",
"@hackclub/meta": "1.1.32",
"@hackclub/theme": "^0.3.3",
"@mdx-js/loader": "^1.6.22",
@ -20,6 +21,8 @@
"animated-value": "^0.2.4",
"animejs": "^3.2.1",
"globby": "^11.0.4",
"graphql": "^16.0.1",
"graphql-request": "^3.6.1",
"lodash": "^4.17.21",
"next": "^12.0.4",
"next-compose-plugins": "^2.2.1",

121
pages/jobs/[job].js Normal file
View file

@ -0,0 +1,121 @@
import { Box, Container, Heading, Card, Text, Grid, BaseStyles } from 'theme-ui'
import Head from 'next/head'
import Meta from '@hackclub/meta'
import ForceTheme from '/components/force-theme'
import Nav from '../../components/nav'
import Footer from '../../components/footer'
import NotFoundPage from '../404'
import Content from '../../components/ content'
export default function page({ html, title, fourOhFour }) {
if (fourOhFour) {
return (
<>
<NotFoundPage />
</>
)
} else {
return (
<>
<Meta
as={Head}
title="Jobs"
description="Hack Club is looking to hire please find our job listings below."
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('purple', 'red')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30} sx={{ fontSize: [5, 5] }}>
{title}
</Heading>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<Content html={html} />
</Container>
<Footer key="footer" />
</>
)
}
}
export async function getStaticPaths() {
const { GraphQLClient, gql } = require('graphql-request')
const client = new GraphQLClient('https://api.github.com/graphql', {
headers: {
Authorization: `Bearer ${process.env.GITHUB}`
}
})
const slugsQuery = gql`
query RepoFiles($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
object(expression: "HEAD:directory") {
... on Tree {
entries {
name
type
}
}
}
}
}
`
let slugs = (
await client.request(slugsQuery, {
owner: 'hackclub',
name: 'jobs'
})
).repository.object.entries
.map(x => ({
params: {
job: x.name.replace('.md', '')
}
}))
.filter(path => !['img', 'lib', 'README'].includes(path.params.job))
console.log(slugs)
return {
paths: slugs,
fallback: true
}
}
export async function getStaticProps({ params }) {
const markdownToHtml = require('@hackclub/markdown')
try {
const res = await fetch(
`https://raw.githubusercontent.com/hackclub/jobs/main/directory/${params.job}.md`
)
const md = await res.text()
const splitMd = md.split('\n');
let title = "";
for(let x = 0; x < splitMd.length; x++){
if(splitMd[x].includes("# ") & !splitMd[x].includes("##")){
title = splitMd[x].replace("# ", "")
}
}
if (md == '404: Not Found') {
return { props: { fourOhFour: true } }
}
const html = await markdownToHtml(md, `${params.job}.md`, '', true)
return { props: { html, title } }
} catch {
return { props: { fourOhFour: true } }
}
}

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/bank-ops-associate/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Bank Operations Associate"
description="Hack Club is a hiring a Bank Operations Associate as the 8th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Bank Ops Associate @ Hack Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('yellow', 'red')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Bank Operations Associate
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of May 21st, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/bank-ops-lead/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Bank Operations Lead"
description="Hack Club is a hiring a Bank Operations Lead as the 7th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Bank Ops Lead @ Hack Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('red', 'purple')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Bank Operations Lead
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
Closed as of March 5th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/bank-tech-lead/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Bank Tech Lead"
description="Hack Club is a hiring a Tech Lead for Hack Club Bank as the 9th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Bank Tech Lead @ Hack Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('purple', 'red')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30} sx={{ fontSize: [5, 5] }}>
Tech Lead for Hack Club Bank
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of November 10th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/brand-director/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Brand Director"
description="Hack Club is a hiring a Brand Director as the 7th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Brand Director @ Hack Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('blue', 'purple')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Hack Club Brand Director
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
Tell the story of Hack Club. New job open as of February 8th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/clubs-lead/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Clubs Lead"
description="Hack Club is a hiring a Clubs Lead as the 8th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Clubs Lead @ Hack Club.png?fontSize=200px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('blue', 'purple')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Clubs Lead @ Hack Club
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of May 18th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/communications-manager/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Communications Manager"
description="Hack Club is looking for a lead to focus on communications."
image="https://workshop-cards.hackclub.com/Communications%20Manager%20@%20Hack%20Club.png?fontSize=169px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('blue', 'cyan')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title">
Communications Manager @&nbsp;Hack&nbsp;Club
</Heading>
<Text variant="headline">
New job open as of November 20th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/education-engineer/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Education Engineer"
description="Hack Club is a hiring for an engineer/educator to create and lead on technical projects for Hack Clubbers, with a strong focus on girls at Hack Club."
image="https://workshop-cards.hackclub.com/Education%20Engineer%20@%20Hack%20Club.png?fontSize=180px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('red', 'orange')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title">
Education Engineer @&nbsp;Hack&nbsp;Club
</Heading>
<Text variant="headline">
New job open as of November 20th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,200 +0,0 @@
import { Link, Box, Container, Heading, Text, Grid, Flex, Card } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import ForceTheme from '../../components/force-theme'
import Photo from '../../components/photo'
export default () => (
<>
<Meta
as={Head}
title="Events Designer"
description="Hack Club is looking for an events designer / producer with coding skills to create events for Hack Clubbers."
image="https://workshop-cards.hackclub.com/Events Designer@ Hack Club.png?fontSize=185px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('#516395', '#614385')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Events Designer @&nbsp;Hack&nbsp;Club
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of October 21st, 2021.
</Text>
</Container>
</Box>
<Container
as="section"
sx={{
py: [4, 5],
fontSize: [2, 3]
}}
>
<Heading variant="headline" sx={{ fontWeight: 700, fontSize: [4, 5], mb: 4 }}>
Hack Club is hiring an Events Designer!
</Heading>
<Text as="p" sx={{ fontWeight: 700 }}>We do crazy things...</Text>
<Grid
my={3}
gap={3}
columns={[null, null, 3]}
sx={{
'> div': {
p: 3,
fontSize: 2,
}
}}
>
<Card variant="sunken">42 Hack Clubbers <Link href="https://www.youtube.com/watch?v=2BID8_pGuqA" target="_blank" rel="noopener noreferrer">rode a train</Link> across America to SpaceX.</Card>
<Card variant="sunken">We hosted <Link href="https://hackclub.com/amas/" target="_blank" rel="noopener noreferrer">AMAs</Link> with people like <Link href="https://www.youtube.com/watch?v=riru9OzScwk" target="_blank" rel="noopener noreferrer">Elon Musk</Link> and <Link href="https://www.youtube.com/watch?v=gw3vyFZ4oeU" target="_blank" rel="noopener noreferrer">Grant Sanderson</Link>.</Card>
<Card variant="sunken">We gave 300 teenagers $50,000 for <Link href="https://summer.hackclub.com/" target="_blank" rel="noopener noreferrer">their hardware projects</Link>.</Card>
</Grid>
<Text as="p">We're looking for someone <strong>fun, creative, and technical</strong> to excite and grow the community.</Text>
<Grid my={5} gap={5} columns={[null, null, 2]}>
<Box>
<strong>Couple things about you:</strong>
<Flex
sx={{
flexDirection: 'column',
my: 3,
gap: 3,
pr: [0, 0, 5],
'> div': {
p: 3,
fontSize: 2,
}
}}
>
<Card sx={{
background: 'radial-gradient(ellipse farthest-corner at top left, #ff8c37, #ec3750)',
color: 'white'
}}>
You're passionate about building technical projects and find tinkering fun
</Card>
<Card sx={{
background: 'linear-gradient(-32deg, #6f31b7 14%, #c6479e 82%)',
color: 'white'
}}>
You've worked with teenagers and are excited to work 1:1 with them every day
</Card>
<Card sx={{
background: 'linear-gradient(120deg, #0e5ea0 0%, #338eda 100%)',
color: 'white'
}}>
You have event planning or media production experience and want to apply it
</Card>
</Flex>
<Box sx={{ fontSize: 2, p: { my: 3 } }}>
<Text as="p">We have a strong preference for someone in-person in Vermont, but we will consider applications from people who want to work remotely, provided they are willing to travel to our offices.</Text>
<Text as="p">Relocation assistance available. We have COVID protocols and take them seriously.</Text>
</Box>
</Box>
<Box>
<strong>Projects you'll lead on:</strong>
<Flex
sx={{
flexDirection: 'column',
gap: 3,
my: 3,
pr: [0, 0, 5],
'> div': {
p: 3,
fontSize: 2
}
}}
>
<Card variant="sunken">Produce and project manage the big, crazy things we do every few months</Card>
<Card variant="sunken">Support Hack Clubbers in creating and executing <Link href="https://scrapbook.hackclub.com/" target="_blank" rel="noopener noreferrer">their awesome ideas</Link></Card>
<Card variant="sunken">Revive <Link href="https://hackclub.com/night/" target="_blank" rel="noopener noreferrer">Hack Night</Link>, our weekly casual technical hangout with the community</Card>
<Card variant="sunken">Lead on organizing AMAs and conversations with famous tech leaders</Card>
<Card variant="sunken">Game design events at Hack Club to better help students form meaningful relationships</Card>
</Flex>
</Box>
</Grid>
<Heading variant="headline" sx={{ fontWeight: 700, fontSize: [4, 5], mb: 4 }}>
Hack Club is where 16,000+ teenage programmers talk, build, and have fun together.
</Heading>
<Grid my={4} gap={3} columns={[null, 2, 3]}>
<Photo
src="/home/flagship_4.jpg"
alt={<>Hack Clubbers at <Link href="https://photos.app.goo.gl/F5JDxq5FzfhofTMD9" target="_blank" rel="noopener noreferrer">Flagship</Link></>}
width={500}
height={326.5}
showAlt
/>
<Photo
src="/home/golden-train.png"
alt={<>The <Link href="https://zephyr.hackclub.com/" target="_blank" rel="noopener noreferrer">world's longest hackathon</Link> on land</>}
width={500}
height={326.5}
sx={{ display: ['none', 'none', 'block'] }}
showAlt
/>
<Photo
src="/home/workshops.jpg"
alt="One of the workshops run by community members"
width={500}
height={326.5}
sx={{ display: ['none', 'block', 'block'] }}
showAlt
/>
</Grid>
<Box sx={{ p: { my: [3, 4] } }}>
<Text as="p">This is not a normal job. For the last 18 months, a <Link href="https://hackclub.com/team/" target="_blank" rel="noopener noreferrer">small team</Link> has produced a series of online events, and we're excited to hire an incredible, technical person to carry forward and build on these ideas. You'd be our 9th or so full-time staff member.</Text>
<Text as="p">In the <Link href="https://hackclub.com/slack/" target="_blank" rel="noopener noreferrer">Hack Club Slack</Link>, you'll work with our community to create the best and most inclusive place on the internet for technical teenagers. To work at Hack Club, you need to have a background in programming, but <strong>you should be inspired by making things fun.</strong></Text>
<Text as="p">We are actively looking for candidates who have worked successfully with girl hackers before. We invite and encourage all interested candidates to apply even if they don't feel they meet all of the criteria.</Text>
<Text as="p">This role pays between $60K - $100K, depending on your experience&mdash; and we know that's probably less than you'd make elsewhere. We offer healthcare and 4 weeks paid vacation.</Text>
</Box>
<Flex sx={{ flexDirection: ['column', 'column', 'row'], gap: 4, fontSize: 2, my: 5 }}>
<Box sx={{ flex: 1, maxWidth: [null, null, 400] }}>
<Photo
src="/hq.jpg"
alt="Our headquarters in beautiful Shelburne, Vermont"
width={500}
height={326.5}
showAlt
/>
</Box>
<Box sx={{ flex: 1, p: { mb: 3 } }}>
<Box as="p">The mission of Hack Club is to be a place where teenagers can become more technical, feel welcome in getting started, and feel inspired to build with code in ways that are always honest, transparent, high-integrity, kind, and friendly. We want teenagers to self-organize and assert themselves as persons.</Box>
<Box as="p">Already, Hack Club is the <strong>largest network of teen coders in the country</strong>. We hope for a world where Hack Club becomes a nationwide cultural institution, creating a new generation of young people with the skills, network, and value system to become problem-solvers and builders for the 21st century&mdash; a new Boy and Girl Scouts.</Box>
</Box>
</Flex>
<Box as="p" mt={5}>
<strong>How to apply:</strong> Email <Link href="mailto:jobs@hackclub.com" target="_blank" rel="noopener noreferrer">jobs@hackclub.com</Link> with "golden" in the subject line, 3 bullet points demonstrating why you would be exceptional for the role, and your resume.
</Box>
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/executive-assistant/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Executive Assistant"
description="Hack Club is a hiring an Executive Assistant to join our team in Shelburne, Vermont."
image="https://workshop-cards.hackclub.com/Executive Assistant @ Hack Club.png?fontSize=180px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('blue', 'green')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Executive Assistant @&nbsp;Hack&nbsp;Club
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of October 18th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -145,35 +145,35 @@ export default () => (
<JobListing
positionName="Executive Assistant"
positionDesc="Someone to play a role in supporting the leadership in administrative management of day-to-day operations."
positionLink="/jobs/executive-assistant/"
positionLink="/jobs/executive_assistant/"
color={theme.util.cx('blue')}
color1={theme.util.cx('green')}
></JobListing>
<JobListing
positionName="Events Designer"
positionDesc="We're looking for someone fun, creative, and technical to excite and grow the community."
positionLink="/jobs/events-designer/"
positionLink="/jobs/events_designer/"
color="#516395"
color1="#614385"
></JobListing>
<JobListing
positionName="Philanthropy Position"
positionDesc="We are looking for a highly-experienced senior executive, who has advised donors, and who has proven success in stewarding collaborations and closing major gifts."
positionLink="/jobs/philanthropy-position/"
positionLink="/jobs/philanthropy_position/"
color={theme.util.cx('purple')}
color1={theme.util.cx('blue')}
></JobListing>
<JobListing
positionName="Education Engineer"
positionDesc="We are looking for an engineer & educator to create and lead on technical projects for Hack Clubbers, with a strong focus on young women and non-binary individuals at Hack&nbsp;Club."
positionLink="/jobs/education-engineer/"
positionLink="/jobs/education_engineer/"
color={theme.util.cx('red')}
color1={theme.util.cx('orange')}
></JobListing>
<JobListing
positionName="Bank Tech Lead"
positionDesc="Hack Club Bank is our in-house financial software used by 1,500 Hack Clubbers to financially power their Hack Clubs, hackathons, and student-organized nonprofits."
positionLink="/jobs/bank-tech-lead/"
positionLink="/jobs/tech_lead/"
color={theme.util.cx('red')}
color1={theme.util.cx('purple')}
></JobListing>

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/journalist/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Journalist"
description="Hack Club is a hiring a talented reporter/editor as the 9th full-time member of our team in Burlington, Vermont."
image="https://workshop-cards.hackclub.com/Journalist @ Hack Club.png?fontSize=175px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('purple', 'yellow')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Hack Club Journalist
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
Tell the story of Hack Club. New job open as of March 9, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

View file

@ -1,47 +0,0 @@
import { BaseStyles, Box, Container, Heading, Text } from 'theme-ui'
import Head from 'next/head'
import Nav from '../../components/nav'
import Meta from '@hackclub/meta'
import JobDescription from '../../components/jobs/philanthropy-position/jd.mdx'
import ForceTheme from '../../components/force-theme'
export default () => (
<>
<Meta
as={Head}
title="Philanthropy Position"
description="Hack Club is a hiring for a deputy to the COO to focus on philanthropy."
image="https://workshop-cards.hackclub.com/Philanthropy Position @ Hack Club.png?fontSize=160px&brand=HQ"
/>
<ForceTheme theme="light" />
<Nav />
<Box
as="section"
sx={{
pt: [5, 6],
pb: [4, 5],
backgroundImage: theme => theme.util.gx('purple', 'blue')
}}
>
<Container sx={{ textAlign: 'center', color: 'white' }}>
<Heading as="h1" variant="title" mb={30}>
Philanthropy Position @&nbsp;Hack&nbsp;Club
</Heading>
<Text variant="headline" sx={{ fontWeight: 400 }}>
New job open as of October 20th, 2021.
</Text>
</Container>
</Box>
<Container
as={BaseStyles}
variant="copy"
sx={{
pt: [3, 4],
pb: [4, 5],
fontSize: [2, 3]
}}
>
<JobDescription />
</Container>
</>
)

1932
yarn.lock

File diff suppressed because it is too large Load diff