It sounds like what you are looking for is a data merge solution. Data merge is simply where you have a shell document with variables in it and a data file (usually a spreadsheet saved as a CSV file) that is used to replace the variables.
There are a lot of solutions for this. Here are a few (some of these will require that you re-create or import your design into a different program. This may be trivial or very hard, depending on your design. There are probably other ways that would allow you to re-use your existing PSD.)
Use Photoshop
If you're already doing your design work in Photoshop and that's your preferred application, doing it in Photoshop is probably the most natural solution. I am not a Photoshop user, but Adobe has some instructions for doing this.
Use InDesign
InDesign has a very robust data merge feature. I have used data merge with InDesign for complex, several hundred page reports without any issues. Instructions here.
Use Scribus
Scribus is an open source program that attempts to fill the void of a free InDesign replacement. It does not have a built in data merge feature, but the Scribus Generator script. I have done this with smaller documents (about 20 records), so I can't vouch for how well it will work with your 500.
Inkscape and scripting
Inkscape works with SVG files, which are just XML files. If you created your design as an SVG file and put some text variables in place (e.g. %CARDNAME%), you could script this. (For 500 cards, this is probably the method I would use because it would be very extensible and I'm comfortable with the command line).
The script would need to:
- For each record, copy the template SVG file.
- Replace each variable in the SVG file appropriately
- Convert the SVG file to whatever output you want (such as PDF)
- Do any additional processing (such as combining into a single PDF, special handling for specific files, etc)
There's more
There are a lot more ways to do this. If you have a preferred application, there's probably a way to make it do a data merge. Good searches will for "Program_Name
data merge" will find many other ways to do this.