Toyota
Automated lead sourcing feeding a drag-and-drop sales pipeline.
I built a B2B platform for Toyota's sales team. It finds prospects without anyone hunting them down and lands them on a board where the team tracks each deal. Two modules, a month and a half of work.
- My role
- Architecture, sourcing backend and CRM
- Sector
- Automotriz (B2B)
- Scope
- App web + Automatización de procesos
- A month and a half
- Delivery time
- 2
- Modules shipped
- Brave API
- Sourcing data source
- Automotive B2B
- Sector
Stack
- Vue 3
- Vuetify
- Node.js
- Express
- JavaScript
- MongoDB
- Docker
- Dokploy (CD/CI)
- Brave API
Screens
Screenshots from the live system.
App web
Prospección automatizada
Búsqueda por puesto y por empresa, recolección de los datos de contacto y lista ordenada por prioridad.
App web
CRM con tableros
Etapas que se mueven arrastrando con el mouse, captura de información y gráficas de resultados.
The problem
The sales team was finding contacts by hand. Hours spent assembling prospect lists before anyone could start a conversation. And once a contact existed, there was no single screen showing where a deal actually stood. Tracking a deal came down to whoever remembered to keep up with it.
What I built
I built two modules that feed each other. The first takes a job title and a company, collects publicly listed contact details and returns a list ranked by priority. The second is a CRM board: stages move by dragging, deal information is captured right there, and a results view charts deals won and lost. One screen, whole pipeline. Vue 3 and Vuetify up front, Node and Express with MongoDB behind it, deployed on Docker with Dokploy CI/CD. A month and a half end to end.
Technical decisions
- 01
Sourcing driven by title and company
I designed the search around two business inputs — who you want and where they work. Brave API collects contact details that are already published, so a search can be re-run any time the team shifts targets.
- 02
A ranked list, not a data dump
Results never land raw. They come back ordered by priority so reps work the best leads first. Automating the search is half the job; handing it back in a workable order is the other half.
- 03
Drag-and-drop stages, state that sticks
I modeled the pipeline as stages, and every move on the board writes state back to the API. The board is the record of deal progress, not a view sitting on top of some other system.
- 04
Capture and won/lost charts close the loop
Deal information is captured on the same board that drives the charts for deals won and lost. A CRM without an outcome view is just data entry.
- 05
Two modules in production in six weeks
Vue 3 with Vuetify kept me from rebuilding UI primitives, and Docker plus Dokploy CI/CD handled deployment. That is what held the pace to get sourcing and CRM into production in a month and a half.
Next project
Semsamex
Hundreds of workwear variants, and a product key nobody has to type anymore.