{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/XxJMAWu7zNBDrjLgJHKF/0PVPO9St48SZCBuyQzBS/gBtRwX1bl.js"],
  "sourcesContent": ["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType, Link } from \"framer\";\nimport * as React from \"react\"; /**\n                                * @framerRecordIdKey id\n                                * @framerSlug vRVv9cjCC\n                                * @framerData\n                                */\nconst data = [{\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg?scale-down-to=4096\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg?scale-down-to=512\").href} 409w, ${new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg?scale-down-to=1024\").href} 819w, ${new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg?scale-down-to=2048\").href} 1638w, ${new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg?scale-down-to=4096\").href} 3276w, ${new URL(\"https://framerusercontent.com/images/REkmF5cxKMQiGCbqetfpFzpZL8.jpg\").href} 3840w`\n  },\n  ek2rS76d6: false,\n  ESsncUL3n: \"ClockClockwise\",\n  f6FcrOYPv: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"Our AI based solution reduced the tremendous amount of the manual user data entry the old system required and even \u201Creally increased our cool factor\u201D as our clients put it. The new system saw an average reduction in time required to use the feature by 67%, while simultaneously increasing feature usage by over 55%.\"\n    })\n  }),\n  FekRMGKg8: \"55%\",\n  gGKeXYMPB: \"Feature Adoption\",\n  id: \"z5T2uetyq\",\n  Ikcsbp8CV: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"A client in the mobile application space was looking to improve the usage of one of their core features, a payment splitter. This features allowed users to split bills and request payment from other members on the app. The issue was that the system to request payments was tedious and the user experience was extremely cumbersome if splitting many items. Our client asked us to build them a \u201Creceipt parser\u201D which could take take in a photo of a receipt, extract all the unique line items, separate the tax and the tip, and integrate all of this into their current mobile application.\"\n    })\n  }),\n  JnLoIdjK_: \"UserPlus\",\n  K8O9GHd3Y: \"67%\",\n  kyh95QtUr: \"\",\n  lAOFVThXM: \"Increase\",\n  M8nUoVdBa: \"\",\n  Nk0xkmtos: false,\n  qCWgwrdQq: \"Computer Vision\",\n  voGgXIA5B: \"Reduction\",\n  vRVv9cjCC: \"receipt-parser\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"A client in the mobile application space was looking to improve the usage of one of their core features, a payment splitter. This features allowed users to split bills and request payment from other members on the app. The issue was that the system to request payments was tedious and the user experience was extremely cumbersome if splitting many items. Our client asked us to build them a \u201Creceipt parser\u201D which could take take in a photo of a receipt, extract all the unique line items, separate the tax and the tip, and integrate all of this into their current mobile application.\"\n    })\n  }),\n  wX66AJr5U: \"\",\n  XMiVtgQvn: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"We built a multi-model Computer Vision pipeline that takes an image of a receipt as input and outputs an itemization of all charges tagged with applicable purchase categories.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"We utilized the latest model architectures proposed in recent research papers to create incredibly high performing Optical Character Recognition performance in the first step of the pipeline. When chaining models, it\u2019s critical to minimize the error early in the pipeline as much as possible so as to avoid compounding error down the chain. Further, we utilize a geometric model to associate items with their costs and quantities, as well as correct for variables such as glare and image skew.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"However, this problem is more than just OCR. In order to provide a service useful to customers in the context of an application we add another modeling layer: item classification. We leverage natural language embeddings to classify line items into predefined general categories such as food, clothing, automotive, etc. with each category having subcategories such as meat, baked goods, etc.\"\n    })]\n  }),\n  y62nFmMDR: \"Receipt Parser\",\n  YtuIEjdN7: \"Time Required\",\n  yZIbbGXlp: \"2023-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"House\"\n}, {\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg?scale-down-to=4096\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg?scale-down-to=2048\").href} 2048w, ${new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg?scale-down-to=4096\").href} 4096w, ${new URL(\"https://framerusercontent.com/images/pAYUdUQpLJe8djmDQC4AbiiSkko.jpg\").href} 5184w`\n  },\n  ek2rS76d6: false,\n  ESsncUL3n: \"Lightning\",\n  f6FcrOYPv: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"Flashparse was a huge success point for our last company. It dropped our average plan creation time from 2.6 minutes to less than 30 seconds consistently, and it significantly improved the number of plans being created. The stellar UI and unique creation engine that we constructed help garner attention and ultimately became a cornerstone for our acquisition.\"\n    })\n  }),\n  FekRMGKg8: \"< 1\",\n  gGKeXYMPB: \"Processing Time\",\n  id: \"XCa72sneL\",\n  Ikcsbp8CV: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"This was actually a project we worked on as part of our previous company, Gathr. The three founders of PressW built this solution together and it dramatically changed the way our previous product worked and became one of our core IPs as part of our acquisition.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"At Gathr we were looking to reinvent the way social events were planned from the ground up. We believed that filling out forms (think Facebook Events) were the way of the past, and wanted to build a system that was able to take in just a sentence like \u201CDinner tonight at 9pm at Red Lobster with Tarun, Liam, and Bryson\u201D, and in real-time extract all the relevant event details and setup the plan. The goal was to be able to create a plan faster than you could send a tweet.\"\n    })]\n  }),\n  JnLoIdjK_: \"CPU\",\n  K8O9GHd3Y: \"5.2x\",\n  kyh95QtUr: \"Per Second\",\n  lAOFVThXM: \"Second\",\n  M8nUoVdBa: \"Connections\",\n  Nk0xkmtos: false,\n  qCWgwrdQq: \"Other\",\n  voGgXIA5B: \"Increase\",\n  vRVv9cjCC: \"flashparse\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: /*#__PURE__*/_jsx(\"br\", {\n        className: \"trailing-break\"\n      })\n    })\n  }),\n  wX66AJr5U: \"10,000\",\n  XMiVtgQvn: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"FlashParse is a state of the art Natural Language Processing engine that combines the ability to reliably extract event details such as title, date, time, participants, and location from blocks of unstructured text by leveraging the latest Natural Language Processing techniques.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"We built Flashparse to also integrate with other services so when you typed \u201CRed Lobster\u201D it was even able to figure out the most relevant Red Lobster location and tag it on Google Maps for the plan creation.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"In addition we built a clean, highly functional UI to sit on top of the model, which allowed users to see event detail extraction in real time as they input their event as a freeform string (similar to a text message). This UI was crucial as it allowed the user to accept or decline the recommendations inline so event creation was a near instant process, with the added benefit of allowing us to gain additional training data to customize each user\u2019s experience from this yes/no paradigm.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"The entire web of models were each hosted on Google Cloud, and architected to be horizontally scalable as individual entities. This allowed us to achieve sub 1 second processing time per request and handle loads greater than 10,000 concurrent requests per second.\"\n    })]\n  }),\n  y62nFmMDR: \"Flashparse\",\n  YtuIEjdN7: \"Plan Creation Speed\",\n  yZIbbGXlp: \"2023-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"CellSignalFull\"\n}, {\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/4lG8XzTzd2sylXpIvhs75plhc0.jpg\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/4lG8XzTzd2sylXpIvhs75plhc0.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/4lG8XzTzd2sylXpIvhs75plhc0.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/4lG8XzTzd2sylXpIvhs75plhc0.jpg?scale-down-to=2048\").href} 2048w, ${new URL(\"https://framerusercontent.com/images/4lG8XzTzd2sylXpIvhs75plhc0.jpg\").href} 3840w`\n  },\n  ek2rS76d6: false,\n  ESsncUL3n: \"\",\n  f6FcrOYPv: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"The custom ChatGPT solution we built immediately became a critical feature used by their team. Now team members could add notes and comments on a client\u2019s project on the fly and even use shorthand, but now the content was captured and extracted through ChatGPT. The executives didn\u2019t have to waste time reading over each note because they could simply receive on demand summaries of any portion of the content.\"\n    })\n  }),\n  FekRMGKg8: \"\",\n  gGKeXYMPB: \"\",\n  id: \"BBRmXe4a4\",\n  Ikcsbp8CV: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"One of PressW\u2019s current clients approached us with a unique issue they were having with the application we were building for them. The original project was building a internal CRM and dashboard for their company that could help track revenue and deliverables. Nothing was wrong with the product itself, but one of the features we developed for them: a \u201Clive\u201D journal where team members could post notes on a client over time, was becoming confusing a difficult to keep up with. There was so much information being posted by team members, it was difficult for executives to keep track of what was going on and bubbling the important information up.\"\n    })\n  }),\n  JnLoIdjK_: \"House\",\n  K8O9GHd3Y: \"\",\n  kyh95QtUr: \"\",\n  lAOFVThXM: \"\",\n  M8nUoVdBa: \"\",\n  Nk0xkmtos: false,\n  qCWgwrdQq: \"ChatGPT\",\n  voGgXIA5B: \"\",\n  vRVv9cjCC: \"live-journal-bot\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"One of PressW\u2019s current clients approached us with a unique issue they were having with the application we were building for them. The original project was building a internal CRM and dashboard for their company that could help track revenue and deliverables. Nothing was wrong with the product itself, but one of the features we developed for them: a \u201Clive\u201D journal where team members could post notes on a client over time, was becoming confusing a difficult to keep up with. There was so much information being posted by team members, it was difficult for executives to keep track of what was going on and bubbling the important information up.\"\n    })\n  }),\n  wX66AJr5U: \"\",\n  XMiVtgQvn: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"We immediately knew that this was excellent project to utilize OpenAI\u2019s ChatGPT. By feeding all of these journal entries into ChatGPT we were able to build a custom implementation that was able to help team members and executives answer questions, summarize notes, and even search as a better search engine over their notes.\"\n    })\n  }),\n  y62nFmMDR: \"Live Journal Bot\",\n  YtuIEjdN7: \"\",\n  yZIbbGXlp: \"2023-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"House\"\n}, {\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg?scale-down-to=4096\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg?scale-down-to=2048\").href} 2048w, ${new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg?scale-down-to=4096\").href} 4096w, ${new URL(\"https://framerusercontent.com/images/sQSMZQKTQxwX7abHmETwX6wuyVo.jpg\").href} 5472w`\n  },\n  ek2rS76d6: true,\n  ESsncUL3n: \"\",\n  f6FcrOYPv: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"This was a particularly challenging problem from a technical aspect, but we were able to develop a solution that not only worked, shaved millions off of our client\u2019s bottom line. These type of results wouldn\u2019t have been possible without leveraging AI and in particular GA, and we rocketed their company and its efficiency forward by leaps and bounds.\"\n    })\n  }),\n  FekRMGKg8: \"\",\n  gGKeXYMPB: \"\",\n  id: \"zw9SUGTSF\",\n  Ikcsbp8CV: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"We worked with a client in the construction space to build an AI solution that would optimize their construction projects. The client wanted to build an optimization tool that would optimally schedule tasks among their workers to reduce time waste, increase efficiency, and ultimately lower costs.\"\n    })\n  }),\n  JnLoIdjK_: \"House\",\n  K8O9GHd3Y: \"\",\n  kyh95QtUr: \"\",\n  lAOFVThXM: \"\",\n  M8nUoVdBa: \"\",\n  Nk0xkmtos: false,\n  qCWgwrdQq: \"Recommender Systems\",\n  voGgXIA5B: \"\",\n  vRVv9cjCC: \"task-staff-scheduler\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"We worked with a client in the construction space to build an AI solution that would optimize their construction projects. The client wanted to build an optimization tool that would optimally schedule tasks among their workers to reduce time waste, increase efficiency, and ultimately lower costs.\"\n    })\n  }),\n  wX66AJr5U: \"\",\n  XMiVtgQvn: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"This problem is actually an extension of the Job Shop Scheduling (JSS) problem, which is an NP-Hard problem referred to as a \u201Cclearly harder than the Traveling Salesman problem.\u201D This system goes beyond the difficulty of the JSS problem via the introduction of more than 5x the amount of variables we had to optimize over, examples of which include individual staff skillsets, drive time, site visit ordering (traveling salesman), task ordering, resource availability, wage spend, and more.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"This vast set of optimization targets actually makes the problem space too difficult for current widely accepted AI solutions such as Neural Networks, which is where GAs come in. Their inference runtime is longer than Neural Networks, but with this they have the capacity to search vastly large parameter spaces to find semi-optimal solutions. We implemented a Genetic Algorithm based solution that was able to consider these multitude of factors effectively to optimally provide scheduling.\"\n    })]\n  }),\n  y62nFmMDR: \"Task & Staff Scheduler\",\n  YtuIEjdN7: \"\",\n  yZIbbGXlp: \"2023-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"House\"\n}, {\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg?scale-down-to=4096\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg?scale-down-to=512\").href} 409w, ${new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg?scale-down-to=1024\").href} 819w, ${new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg?scale-down-to=2048\").href} 1638w, ${new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg?scale-down-to=4096\").href} 3277w, ${new URL(\"https://framerusercontent.com/images/Irrj8R873RDzs6cf1FeV4QLGJNY.jpg\").href} 3890w`\n  },\n  ek2rS76d6: true,\n  ESsncUL3n: \"Funnel\",\n  f6FcrOYPv: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsxs(\"p\", {\n      children: [\"Our system far exceeded our client\u2019s expectations. What resulted from our work was an AI system that could factor in dozens of people\u2019s calendar availabilities, understand the context around a social event, \", /*#__PURE__*/_jsx(\"em\", {\n        children: \"and\"\n      }), \" each user\u2019s preferences and details to deliver highly relevant and accurate time suggestions. \", /*#__PURE__*/_jsx(\"strong\", {\n        children: \"All in real-time.\"\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"After integrating our time recommender, our client saw a 73% increase in suggested times usage and perhaps more importantly were able to unlock a new system that they could leverage into building more relevant suggestions and ultimately are looking to leverage into their ad network to improve CPM for their advertisers.\"\n    })]\n  }),\n  FekRMGKg8: \"73%\",\n  gGKeXYMPB: \"Suggest Time Usage\",\n  id: \"f_7t9Le1s\",\n  Ikcsbp8CV: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsxs(\"p\", {\n      children: [\"A client we worked with previously to build a \", /*#__PURE__*/_jsx(Link, {\n        href: {\n          pathVariables: {\n            vRVv9cjCC: \"location-recommender-engine\"\n          },\n          webPageId: \"rQ05VS7D_\"\n        },\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"a\", {\n          children: \"location recommender engine\"\n        })\n      }), \" approached us again to help them build a recommender system to suggest the best times for a given social event to take place. This was an interesting problem to solve because it required a combination of machine learning and efficient data algorithm work to create an effective solution. This was an interesting problem because the solution needed to not only be able to take in relevant event details and user preferences to it\u2019s time suggestions, but also suggest in real-time to be useful.\"]\n    })\n  }),\n  JnLoIdjK_: \"ArrowUp\",\n  K8O9GHd3Y: \"1.27s\",\n  kyh95QtUr: \"\",\n  lAOFVThXM: \"User Increase\",\n  M8nUoVdBa: \"\",\n  Nk0xkmtos: false,\n  qCWgwrdQq: \"Recommender Systems\",\n  voGgXIA5B: \"Across 100 Attempts\",\n  vRVv9cjCC: \"best-time-recommender\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsxs(\"p\", {\n      children: [\"A client we worked with previously to build a \", /*#__PURE__*/_jsx(Link, {\n        href: {\n          pathVariables: {\n            vRVv9cjCC: \"location-recommender-engine\"\n          },\n          webPageId: \"rQ05VS7D_\"\n        },\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"a\", {\n          children: \"location recommender engine\"\n        })\n      }), \" approached us again to help them build a recommender system to suggest the best times for a given social event to take place. This was an interesting problem to solve because it required a combination of machine learning and efficient data algorithm work to create an effective solution. This was an interesting problem because the solution needed to not only be able to take in relevant event details and user preferences to it\u2019s time suggestions, but also suggest in real-time to be useful.\"]\n    })\n  }),\n  wX66AJr5U: \"\",\n  XMiVtgQvn: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"An intelligent system for this problem must to account for many users, each often having many different calendars that an automated system would need to consider. It must also understand the context of the event. It wouldn\u2019t be appropriate for brunch to be at 9pm on a Tuesday, or Movie Night to happen at 6am. For this challenge, leveraging artificial intelligence became crucial. It was necessary to employ Natural Language Processing (NLP) techniques in order to both classify events, suggest sensical times, and optimize for event attendance simultaneously. Not to mention that many additional details like \u201Cwhen does the place close\u201D or \u201Creservation required\u201D complicates complete automation.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"We created an all encompassing system that was not only able to find the most appropriate blocks of time for an event utilizing user\u2019s calendars and preferences, but also understand the event details via NLP embeddings, account for everyone\u2019s travel time from their homes, and respect all of the aforementioned place details by integrating with a multitude of different location info providers such as Google Places, Foursquare, Opentable, TripAdvisor, and more.\"\n    })]\n  }),\n  y62nFmMDR: \"Best Time Recommender\",\n  YtuIEjdN7: \"Average Classification Time\",\n  yZIbbGXlp: \"2023-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"House\"\n}, {\n  a5xad3tpP: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg?scale-down-to=4096\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg?scale-down-to=2048\").href} 2048w, ${new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg?scale-down-to=4096\").href} 4096w, ${new URL(\"https://framerusercontent.com/images/rcv4HcmTqUbA9gVjhGzTREQZuU.jpg\").href} 4240w`\n  },\n  ek2rS76d6: false,\n  ESsncUL3n: \"ArrowUp\",\n  f6FcrOYPv: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"Our solution dramatically modified our client\u2019s location relevancy and ultimately resulted in a massive increase to their core KPI. Product surveys they conducted showed their user\u2019s felt a significant increase in suggestion relevancy and helped build trust with the product and platform.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Our client saw a 70% increase in location relevancy from their former system, and a 42% increase in plans created using suggested locations.\"\n    })]\n  }),\n  FekRMGKg8: \"42%\",\n  gGKeXYMPB: \"Plans Created\",\n  id: \"gHUn0F82b\",\n  Ikcsbp8CV: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"A startup in the social events space came to PressW with a unique challenge. This company wanted to build a recommendation engine that would deliver highly relevant location suggestions for users while on their application. The locations needed to be contextually relevant to the social event, factor in each user\u2019s individual preferences, and needed to be near real-time in order to drive their core KPI, number of events made on their platform.\"\n    })\n  }),\n  JnLoIdjK_: \"CalendarPlus\",\n  K8O9GHd3Y: \"70%\",\n  kyh95QtUr: \"\",\n  lAOFVThXM: \"Increase\",\n  M8nUoVdBa: \"\",\n  Nk0xkmtos: true,\n  qCWgwrdQq: \"Recommender Systems\",\n  voGgXIA5B: \"Increase\",\n  vRVv9cjCC: \"location-recommender-engine\",\n  WhqOv22If: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"A startup in the social events space came to PressW with a unique challenge. This company wanted to build a recommendation engine that would deliver highly relevant location suggestions for users while on their application. The locations needed to be contextually relevant to the social event, factor in each user\u2019s individual preferences, and needed to be near real-time in order to drive their core KPI, number of events made on their platform.\"\n    })\n  }),\n  wX66AJr5U: \"\",\n  XMiVtgQvn: /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/_jsx(\"p\", {\n      children: \"We built our client a custom recommendation engine that aggregated locations from a number of POI data providers and delivered real-time suggestions during a user\u2019s plan creation. We built a two step system that first matched recommendations based on the event details, distance, and reviews before then passing through a user preference model that further increased the relevancy and improved rankings of the relevant locations. To deal with the real-time requirement, we built this system utilizing cosine similarity vector search hosted through server-less functions that were able to handle a load into the millions of concurrent requests.\"\n    })\n  }),\n  y62nFmMDR: \"Location Recommender Engine\",\n  YtuIEjdN7: \"Location Relevancy\",\n  yZIbbGXlp: \"2022-03-22T00:00:00.000Z\",\n  ZRMaPxJsS: \"House\"\n}];\ndata.forEach(item => Object.freeze(item));\naddPropertyControls(data, {\n  Nk0xkmtos: {\n    defaultValue: true,\n    title: \"Featured\",\n    type: ControlType.Boolean\n  },\n  ek2rS76d6: {\n    defaultValue: false,\n    title: \"Show On Home\",\n    type: ControlType.Boolean\n  },\n  qCWgwrdQq: {\n    defaultValue: \"\",\n    title: \"Category\",\n    type: ControlType.String\n  },\n  y62nFmMDR: {\n    defaultValue: \"\",\n    title: \"Title\",\n    type: ControlType.String\n  },\n  vRVv9cjCC: {\n    title: \"Slug\",\n    type: ControlType.String\n  },\n  a5xad3tpP: {\n    title: \"Hero\",\n    type: ControlType.ResponsiveImage\n  },\n  WhqOv22If: {\n    defaultValue: \"\",\n    title: \"Overview\",\n    type: ControlType.RichText\n  },\n  Ikcsbp8CV: {\n    defaultValue: \"\",\n    title: \"Challenge\",\n    type: ControlType.RichText\n  },\n  XMiVtgQvn: {\n    defaultValue: \"\",\n    title: \"Solution\",\n    type: ControlType.RichText\n  },\n  f6FcrOYPv: {\n    defaultValue: \"\",\n    title: \"Outcome\",\n    type: ControlType.RichText\n  },\n  yZIbbGXlp: {\n    title: \"Posted At\",\n    type: ControlType.Date\n  },\n  ESsncUL3n: {\n    defaultValue: \"\",\n    placeholder: \"House\",\n    title: \"Stat 1 Icon\",\n    type: ControlType.String\n  },\n  YtuIEjdN7: {\n    defaultValue: \"\",\n    placeholder: \"Statistic \",\n    title: \"Stat 1 Title\",\n    type: ControlType.String\n  },\n  K8O9GHd3Y: {\n    defaultValue: \"\",\n    placeholder: \"64%\",\n    title: \"Stat 1 Value\",\n    type: ControlType.String\n  },\n  voGgXIA5B: {\n    defaultValue: \"\",\n    placeholder: \"Increase\",\n    title: \"Stat 1 Value Type\",\n    type: ControlType.String\n  },\n  JnLoIdjK_: {\n    defaultValue: \"House\",\n    placeholder: \"House\",\n    title: \"Stat 2 Icon\",\n    type: ControlType.String\n  },\n  gGKeXYMPB: {\n    defaultValue: \"\",\n    placeholder: \"Value Increased\",\n    title: \"Stat 2 Title\",\n    type: ControlType.String\n  },\n  FekRMGKg8: {\n    defaultValue: \"\",\n    placeholder: \"16%\",\n    title: \"Stat 2 Value\",\n    type: ControlType.String\n  },\n  lAOFVThXM: {\n    defaultValue: \"\",\n    placeholder: \"Percent Increase\",\n    title: \"Stat 2 Value Type\",\n    type: ControlType.String\n  },\n  ZRMaPxJsS: {\n    defaultValue: \"House\",\n    placeholder: \"House\",\n    title: \"Stat 3 Icon\",\n    type: ControlType.String\n  },\n  M8nUoVdBa: {\n    defaultValue: \"\",\n    placeholder: \"Events Classified\",\n    title: \"Stat 3 Title\",\n    type: ControlType.String\n  },\n  wX66AJr5U: {\n    defaultValue: \"\",\n    placeholder: \"2.45 Million\",\n    title: \"Stat 3 Value\",\n    type: ControlType.String\n  },\n  kyh95QtUr: {\n    defaultValue: \"\",\n    placeholder: \"Per Day\",\n    title: \"Stat 3 Value Type\",\n    type: ControlType.String\n  }\n});\ndata[\"displayName\"] = \"Case Studies\";\nexport default data;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"data\",\n      \"name\": \"data\",\n      \"annotations\": {\n        \"framerRecordIdKey\": \"id\",\n        \"framerContractVersion\": \"1\",\n        \"framerData\": \"\",\n        \"framerSlug\": \"vRVv9cjCC\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};"],
  "mappings": "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",
  "names": ["data", "p", "x", "u", "Link", "item", "addPropertyControls", "ControlType", "gBtRwX1bl_default", "__FramerMetadata__"]
}
