Inspiration

Looking for internships and summer programs as a student is not a simple task. You have to keep polishing your resume, applying to multiple places online, and most of the time, you get ghosted. To make matters worse, a lot of listings are outdated. We wanted to build a resource that gives feedback to the user. We wanted something that tells you, based on data, "Your current skill level makes you a great fit for this role," or "Avoid this listing, it isn't verified." We were inspired to this idea because we struggle with this same issue, as young teens going into the STEM workforce, we are faced with constant struggle to find opportunities and internships to further deepen our expertise. However, it takes so much time to find opportunities and sometimes they might not fit your price range after you spend so much time for applications, some problems we faced. In order to prevent this and help provide access for underprivileged people by exposing them to opportunities they might not been exposed to Ascend AI came to fruition. Although there are current apps like this many of the apps we used are not trustworthy and provide misleading information, furthermore it demotivates students as they hit these dead ends. We present both a novel approach by including a personalization feature for best fit while allowing students to choose whichever opportunity they want regardless of this, accurate prices and deadlines and improving existing, outdated, untrustworthy apps by adding our new contributions.

What it does

Ascend AI works as a search engine that combines the entire application process into one place. First, it uses an algorithm where you input your skills into a profile, and the app instantly calculates a percentage score for each job listing to show you exactly where your resume fits best. Next, it uses an employer verification system that tracks and flags legitimate, active listings so students can avoid scam posts or data scrapers. Finally, when a user finds a role they like, the program automatically generates an application which comes with a step-by-step interview preparation to help them all the way until they get the offer letter. It also includes step-by-step instructions on how to work the app and what each feature does and means allowing for easy and seamless user interaction.

How we built it

We built this application using HTML, CSS, Python and JavaScript for the frontend. We used the GraphQL API, which is connected to a Hasura and Momen database engine. To handle the backend along with security, we used Python to ensure that our API keys were protected. We used the browser's localStorage API to save user profiles and tracking information, which makes inputting data much safer since it never leaves the user's computer. We also include the location of each internship allowing this to potentially scale to the global audience signifying its impact upon the growing society. We used AI to help connect the frontend and backend by asking it for a seamless merge, however we made both the backend and frontend manually, we only used it to connect both ends as the data wasn't properly showing up. We will also utilize AI to gain and find new internships or opportunities that will be available. We also used Momen for the backend and VScode Python for the frontend. We also added an apply feature which takes you to the application website.

Challenges we ran into

Our biggest challenge was dealing with Cross-Origin Resource Sharing (CORS) errors, as soon as we tried to connect our frontend directly to the GraphQL backend. Instead of using a browser extension to bypass the security blocks, we researched how data flows and wrote the Python proxy server from scratch to route the traffic and delegate authentication tokens safely and efficiently. We also faced a data mapping constraint because the existing data we had access to was originally structured for tracking travel information such as destination and budget keys. We had to write a function in JavaScript to parse and translate those properties into standard job parameters like location and match score in order to avoid lag in our UI.

Accomplishments that we're proud of

We are proud of our offline fallback system because it provides more stability to our app. If the live GraphQL database goes down or the user suddenly loses Wi-Fi, the frontend catches the error and instantly swaps to a localized backup index of mock internships without the user even noticing. We are also proud of the privacy aspect of our project. By handling all the data storage locally in the browser instead of harvesting it on an external server, there is no data footprint, which completely protects user data. We can update this data manually through admin usage or in the future allow organizations to manually post their internships or opportunities here.

What we learned

This project taught us defensive programming, and we learned how to design a user interface that remains fully functional even if the server returns missing or broken data. Writing the Python proxy server also helped us understand backend development, web security, and how data safely moves between different applications on the internet.

What's next for Ascend AI

Right now, the match scoring only checks for a specific array of keywords, so our next step is to move towards semantic language processing. We plan to integrate a LLM API so that the app can analyze a student's actual resume text and a complex job description side by side, giving feedback such as telling them exactly what portfolio project to build to close a qualification gap. We also want to introduce an anonymous community board where users can share their interview experiences along with frequently asked questions by target companies. We want ot eventually scale this by adding more features such as resume builders to make this sa seamless operation for underprivileged users. We also want to go farther from internships to various programs, opportunities, and certifications that help a student excel. We want to essentially be able to bridge the gap from learning to earning.

Built With

Share this project:

Updates