Inspiration
As teens, we want l'argent ("money in French"). It seems kind of pointless, but in the short term, it's a stepping stone to gaining financial independence, and as teens progress into adulthood, it can help ease them into the various responsibilities they'll have when becoming completely independent.
How does a teen who may have never written a résumé, done a job search, or had an interview get a job, though? For us personally, it was quite a daunting prospect. Go to this magical site called "LinkedIn" with whimsical blue buttons and try to find a job there. Then you need to create something called a résumé, which is basically you as a PDF? After figuring out how to submit this résumé to a job, teens still need to do a thing called an interview, where they're asked questions, and they must showcase experience beyond a midterm or final
That's why we built JobAI, to make this whole process simpler.
What it does
With JobAI, teens can find jobs by simply entering their location and the position they are looking for. Then, our chatbot will provide them with all the necessary information, including the company name, title, description, and LinkedIn job listing link. Additionally, teens can enter information such as their contact information, skills, education, or experience, and JobAI will generate a formatted résumé. Finally, it can generate practice interview questions tailored towards the job they are applying for and provide feedback so teens can improve their interview skills. That way, when they're asked, "What are your strengths?" they can scoff and yap.
By the way, all of this is available through one unified glorious chat interface. Just the way these Discord nerds like it. 😎
How does it address the theme?
Since the theme is "Independence", we decided to go down the route of helping teens gain financial independence. Financial independence opens up a lot of opportunities in the short term, and in the long term, it teaches them how to become financially responsible or how to deal with any of the other responsibilities that come with being an independent adult.
How is this scalable?
Since we used MCP and agents (discussed further below), it makes it really easy to hook up external APIs to the LLM for extra context or to give it more features. For example, an email draft in the user's inbox can be created with Zapier (or make our own MCP server for Gmail) and just add it to the list of MCP servers.
How is this engaging?
Teens spend a fair bit of time on their phones, specifically with chat interfaces. Since they're already familiar with these interfaces, we made JobAI completely chat-based, so there is essentially no learning curve to using the app. It's also more engaging to talk to an AI that can understand you better, rather than having to click buttons and drop-downs, and everything else that comes with doing a job search and application.
How we built it
The whole app is built using Next JS and for the AI side of it, we chose Langchain JS for dealing with the LLMs. The actual LLM we used was Llama3.1 (we ran out of credits for Mistral 😔), running locally on-device. We also used Puppeteer for scraping the data from LinkedIn and in order to have the agent (created using Langchain) interface with this tool, we used MCP (Model Context Protocol) with Vercel's MCP SDK for Next JS.
The fact that we used MCP and agents makes this project really extensible and scalable because if we want the LLM to interface with some other API, then all we got to do is slap on another MCP server and we're set.
Challenges we ran into
- Our LLM would be inconsistent and format things in ways we didn't really want it formatted.
- The resume generation got particularly tricky because we needed to create some format that an LLM could easily output in, and then we also had to convert that to a downloadable PDF. We tried converting Typst and Latex to a PDF, but it couldn't be done client-side and required a compiler, which got quite complicated. We eventually settled on converting markdown data from the LLM to a PDF using JsPDF on the client side.
Accomplishments that we're proud of
- Using agents and MCP for the first time in a project (we've never used either of these technologies before in a project)
- Figuring out how to create a PDF from LLM outputs
What we learned
- That our dream job is becoming prompt engineers 😀 (yes, we learned prompt engineering as well through this project)
- We learned how to use Next JS to create slick little web apps.
- MCP
- Using LangSmith and Langchain to create agents
- How to use the funny words people use on LinkedIn
What's next for JobAI
Some of our next goals include:
- Adding a page for teenagers to track the status of their job application, with all the information about the job.
- Getting JobAI to draft an email to the employer using Zapier's MCP server or creating our own MCP server that deals with OAuth in order to connect to Gmail's API.
- Having the AI be able to schedule events if an email comes in and it says you're invited for an interview. This is essentially the integration with Gmail's API along with the Google Calendar API.
- Improve the prompting and make the agents smarter by having them follow several steps or make decisions based on the outputs.
- Have the AI scrape more data on LinkedIn to also find contact information.
Built With
- langchain
- langsmith
- llama3.1
- mcp
- nextjs
- ollama
- puppeteer
- react
- shadcn
Log in or sign up for Devpost to join the conversation.