Reframed a slow investor-research task as an ownership-relationship problem and built an AI-assisted system that turns CVR records into a reviewable workbook.
Before
Slow investor research
The earlier workflow was described as approximately one month of student work. I identified that the central task was not finding company names: it was following ownership through intermediate companies, stopping at natural persons and finding their active company relations. I shaped the result as a reviewable research record so the final judgment stayed with the researcher.
Problem reframed:From search → To ownership relationships
System
Ownership traversal
ApS / competitorSeed company
Holding companyContinue traversal
Intermediate ownerDepth + cycle controls
Natural personUltimate person owner
Active company relationsCollect active company relations
Generated ownership-path figure with live review labels.
Reviewable output
Reviewable workbook
VERIFIED ARTIFACT
1,818 final workbook rows
One preserved Leads sheet, plus a header, with three review-facing columns.
SOURCE-DERIVED CLAIM
Ownership, not ordinary search
The implemented pipeline follows company ownership until it reaches natural-person owners.
SELF-REPORTED CLAIM
One run under two hours
Compared with earlier work described as approximately one month; neither timing was independently benchmarked.
Business problem
Starting with one competitor, the goal was to find possible investor leads: the people behind it and their active businesses.
The existing process relied on company searches, ownership checks and copy-paste work. A larger run was described as taking about one month. The main challenge was following ownership through holding companies until a real person was identified.
START
One competitorThe first input to the research process.
MANUAL WORK
Search, check, copyCompany searches, ownership checks and output assembly were repeated by hand.
CORE CHALLENGE
Reach a real personOwnership could pass through several holding companies.
Business problem illustration.
Problem analysis
A stakeholder interview mapped the process from input to output. Researchers started with a company name, address, CVR number or spreadsheet. They searched company records, followed ownership links, found the natural-person owners and checked their active companies.
Search, analysis and output assembly were mixed together. The task was reframed around one useful record: an owner, a related company and its CVR number.
INPUTS
Name, address, CVR, spreadsheetThe existing process began from several input formats.
ANALYSIS
Search and follow ownershipThe interview exposed how research decisions were mixed with assembly work.
OUTPUT
Owner, company, CVRThree stable fields defined the useful handoff.
Problem analysis illustration.
System design
The workflow was built backwards from three fields: OwnerName, CompanyName and CompanyCVR.
Names and addresses used search rules and fallbacks. Exact CVR numbers went directly to record lookup. The workflow followed company ownership to natural people, found their active ApS companies, removed duplicate pairs and exported the results.
Depth limits and cycle detection stopped searches from running indefinitely. Logs and checkpoints supported review of longer runs.
Codex supported implementation. Problem framing, business rules, architecture direction, testing and output review remained my responsibility.
CONTRACT
OwnerName · CompanyName · CompanyCVRThe workflow was built backwards from the final record.
CONTROLS
Depth limit · cycle detectionTraversal was explicitly bounded.
Testing against the CVR endpoint exposed practical issues. Broad address searches could fail, addresses included suffixes and floor details, Elasticsearch paths varied, and external calls could be slow.
The workflow was updated with narrower searches, postcode and house-number filters, local address checks and broader fallbacks. Address parsing was expanded for suffixes, floors and doors. Timeouts, retries, traces and checkpoints improved reliability.
SEARCH
Narrower queries and fallbacksBroad requests were replaced with more focused paths.
ADDRESS
Suffix · floor · doorParsing expanded to match Danish address variation.
RELIABILITY
Timeouts · retries · tracesSlow or failed calls became visible and recoverable.
Testing and refinement illustration.
Result
Starting from one competitor, the system produced a list of potential investor leads. The workbook contains 1,818 rows, each with OwnerName, CompanyName and CompanyCVR. One potential investor can appear more than once because a person may be linked to multiple companies.
In this applied comparison, the system reduced the manual workflow from approximately one month to two hours.
VERIFIED ARTIFACT
1,818 rowsEach row contains OwnerName, CompanyName and CompanyCVR.
IMPORTANT CAVEAT
One owner, multiple companiesA potential investor can appear in more than one row.
APPLIED COMPARISON
About one month → two hoursProject-reported timing from this run, not a recurring benchmark.